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.