At 9:53 PM +0800 5/29/01, Gunther Birznieks wrote:
>At 05:17 PM 5/28/01 -0400, Stephen Adkins wrote:
>> >
>>>I don't understand the Widget::Controller.  Can you say more about this?
>>>
>>>Also will we require XML to configure? Or is this also an optional feature
>>>that you more or less want for yourself but others can choose to not use?
>>>
>>
>>Hi,
>>
>>Below is running code for the Perl Widget Library.
>>So far, there are only two widgets.
>>
>> * a generic Widget::HTML::Element
>> * a drop-down menu Widget::HTML::Select
>>
>>Are there early comments on the interface from Perl?
>>Is this shaping up into what was desired?
>>
>>Stephen
>>
>>shark:/usr/ov/acoc/dev/src/Widget/examples> more Widget.xml Widget.2
>>::::::::::::::
>>Widget.xml
>>::::::::::::::
>><config>
>> <widget      name="first_name" tag='input' type='text' size='14'
>>maxlength='99'/>
>> <widget      name="last_name"  widget-class='Widget::HTML::Element'
>>tag='input' type='text' size='14' maxlength='99'/>
>> <widget      name="birth_dt"   widget-type='date'/>
>> <widget      name="sex"        widget-type='sex'/>
>> <widget-type name="date" tag='input' type='text' size='14' maxlength='99'/>
>> <widget-type name="sex"  widget-class='Widget::HTML::Select' domain='sex'/>
>> <domain      name="sex">
>>   <item      name="M" label="Male"/>
>>   <item      name="F" label="Female"/>
>> </domain>
>></config>
>
>This config seems simple enough that it doesn't seem that necessary 
>to use XML.

Yes, but that's only because it defines 4 widgets...  I'd probably 
expect somewhere between 50-100 widgets on average, and more the 500 
in extreme cases.

A perl hashref config file requires knowledge of perl data 
structures, which most designers won't grasp.  Since I'm not the 
designer for my site, nor am I the guy developing the underlying data 
structure, I wouldn't feel comfortable using perl as the config file. 
XML makes for a nice, easily understood medium for communicating 
configuration directives.



>>::::::::::::::
>>Widget.2
>>::::::::::::::
>>#!/usr/local/bin/perl
>>
>>use lib "..";
>>
>>  use Widget;
>>
>>  my ($wc, $widget, @widgets);
>>  $wc = Widget->controller();
>
>Don't you need to provide the controller with a CGI object? I guess 
>this part hasn't been necessary yet, so the widget controller is 
>just like a hash allowing widgets to be associated by name.
>
>>  $widget = $wc->widget("first_name");
>>  print "First Name: ", $widget->html(), "\n";
>
>A widget type has already been defined. So I don't see that the 
>method to output it's display should be called html() which is, 
>well, HTML specific. I prefer
>
>print "First Name: ", $widget->display(), "\n";
>Since widgets are components that know how to display themselves 
>whether its WML or HTML or whatever.

What about draw?  display might be misinterpreted.  If I draw 
something, does that mean I've displayed it?  Under the Xwindow 
system, widgets are drawn and then shown, IIRC...

print "First Name: ", $widget->draw(),"\n";

Robert Landrum

--
As soon as you make something foolproof, someone will create a better fool.

Reply via email to