[Dev] XML for CPIA
Bryan Stearns
stearns at osafoundation.org
Wed Aug 10 12:51:05 PDT 2005
There's an important tool that I've got in Python that you don't have in
XML: "def". :-)
There's a lot of duplicated block definitions in detail's parcel.xml,
and it'd be just as big (item for item, attribute for attribute) in your
proposal. I could get rid of most of the duplication with a function
whose interface might start out looking like this:
def MakeDetailViewRow(parcel, namePrefix, label,
areaClass=ContentItemDetail, position=None, presentationStyle=None):
...
and would build the area block, the label, spacers, and AEBlock; it'd
encapsulate detail-view-specific defaults like 'borders' that would be
different from the raw attribute defaults).
I'm sure this function's parameter list would grow, but at least I could
see at a glance what the possibilities are (another problem with XML is
that I need to look at the schema, in several places because of
inheritance, to see what attributes defaults are; using a function
definition for common cases shortens my learning curve.
You call this a "specialized use", but I'd suggest that your definitions
of menuitems could use exactly the same sort of specialization.
...Bryan
Alec Flett wrote:
> Bryan Stearns wrote:
>
>> I'm looking forward to declaring UI elements in Python because Python
>> is much more flexible and concise than XML. For instance, if you
>> look at the detail view's parcel.xml today, you see a lot of the same
>> structures (like "an area containing a label and an attribute
>> editor") and constants (like the borders around various blocks).
>
>> The thing I hate most about parcel.xml is that there's no way for me
>> to represent or encapsulate this repetiton; the new proposal suffers
>> from the same problem.
>
> Fair enough. It sounds like you have a specialized use and this
> particular proposal may not suit the detail view. However, I wonder
> how much effort is going into parameterizing the creation of these
> detail-specific blocks, when the CPIA xml might be fairly simple. I
> hate redundancy as well, but maybe its enough better than parcel.xml
> that it might be worth looking at? Let's try.
>
> <CalendarAllDayBlock id="CalendarAllDayArea">
> <StaticText id="CalDetailsAllDayLabel" border="4,0,0,0"
> title="all-day".../>
> <StaticText minimumSize="8,-1"/>
> <AEBlock id="EditAllDay" viewAttribute="allDay" border="2,2,2,2"/>
> </DetailRow>
>
> So the "Cal" or "Calendar" appears 3 times here.. plus I imagine the
> text/spacer/AEBlock is part of the repetition you're talking about. So
> I'd be curious what the parameterized python might be like. This is
> obviously a very simplistic version of what you're trying to do as
> well, so I'm sure it only gets more complicated, not less :)
>
> So you're probably right, this might not be appropriate for complex
> stuff in the detail view... worth the exercise, anyway!
>
> But as the UI gets more complex (dashboard, toolbar, menus, etc) I can
> still see value in being able to declare a large part of it in XML.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osafoundation.org/pipermail/dev/attachments/20050810/1a2cb59f/attachment.html
More information about the Dev
mailing list