[Dev] RecurrenceDialog in Table
John Anderson
john at osafoundation.org
Wed Oct 5 10:07:45 PDT 2005
Alec Flett wrote:
>> It would be unfortunate if we ended up with all of Chandler being
>> build only from Chandler specific blocks.
>>
> But ultimately, we're building chandler, we're going to need to write
> chandler-specific code somewhere.
>
> I understand the delegate option, but it seems like whats going to
> happen is that as we add more and more chandler-specific behavior
> (triage, etc) to the table summary view, we're going to keep having to
> add more and more hooks to call the delegate to the base Table class,
> in order to delegate this application-specific behavior. Its the same
> thing that happened with the sidebar, and you yourself moved that to
> main/view/SideBar.py. (and I think that was the right decision)
Obviously there is a line beyond which we should make a specialized
block -- the Sidebar is already over that edge. Maybe the Summary will
get there someday too. But we shouldn't go there until we need to.
>
> My concern with heading down the delegate path is that we're going to
> have to constantly complicate the Table class to make the delegate be
> able to handle more and more - this adds complexity to both the Table
> class and its delegate.
>
> For example, Jeffrey's recurrence dialog has to be hooked up when we
> change attributes of an item. So to use the delegate, it seems like
> we'd have to add code to Table to delegate attribute setting, and then
> add code tot he chandler-specific delegate to hook up the recurrence
> dialog. If we just derive from Table (or contain it) then the
> complexity falls almost entirely to the subclass of Table.
It might make more sense to add this behavior to the AttributeEditors
instead of the Table.
>
> Further, I'd like to address this:
>
>> It would be nice if we didn't also need additional subclasses. If
>> and when we have a GUI builder, the fewer the number of specialized
>> blocks the better.
>
> We don't have a GUI builder. Even if we did, there would always be a
> need for handling subclasses of existing blocks - I think that would
> be a requirement for the actual use of a GUI builder.
>
> That said, I don't foresee any GUI builder springing into existence
> anytime soon. Too often we use this "if/when we have a GUI builder..."
> as an argument towards one design or another, and it gets used to
> trump any other architectural arguments. Lets deal with what we have now.
All I'm suggesting is that, if possible, we should choose a design that
doesn't make a GUI builder difficult or impossible. I also don't think
the needs of a GUI builder will require drastic changes to our architecture.
>
> Alec
>
>
>> John
>>
>> Alec Flett wrote:
>>
>>> I think we're blurring the line between a block and a view with the
>>> Table/wxTable class. Tables are useful for sure as widget-level
>>> blocks, but as we move forward the table summary view is going to
>>> become more specialized.
>>>
>>> Table should be a regular low-level block, and a new class,
>>> TableSummaryView, should derive from it, and add capabilities like
>>> recurrence support. This would also allow TableSummaryView and
>>> CalendarCanvas to then both derive from sort of SummaryView mixin
>>> which would allow for a common place for things like menu updating
>>> and so forth.
>>>
>>> So my propsal, in python:
>>>
>>> class Table(Block):
>>> ... as it stands now...
>>>
>>> class SummaryView(object):
>>> """
>>> mixin class for event updating, and so forth
>>> """
>>> def onRemoveUpdateUI(...):
>>> etc...
>>>
>>> class TableSummaryView(Table, SummaryView):
>>> """
>>> provides chandler-specific behavior in the summary view -
>>> dashboard, and so forth
>>> """
>>>
>>> class CalendarCanvas(CollectionCanvas, SummaryView, ....)
>>> """
>>> similar to the existing class
>>> """
>>>
>>> Thoughts?
>>>
>>> Alec
>>>
>>> John Anderson wrote:
>>>
>>>> Hi:
>>>>
>>>> I noticed that in revision 7115 you added RecurrenceDialog to
>>>> Table. On first glance it doesn't seem like all Tables should know
>>>> anything about recurrence since Tables are used in lots of
>>>> situations besides the summary view.
>>>>
>>>> John
>>>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>>>
>>>> Open Source Applications Foundation "Dev" mailing list
>>>> http://lists.osafoundation.org/mailman/listinfo/dev
>>>
>>>
>>>
>
More information about the Dev
mailing list