From: <fre...@we...> - 2003-07-26 14:58:01
|
> Hello, > > i try to refactoring the "show last Selection" stuff. I need your help with the following problem: > > Each action from mail.table and mail.tree and mail.folder should store the lastSelected uid for the current folder (this is currently done for any actions). If the action is finished the lastSelection for the current folder should be shown. But this is tricky. When is the action complete finished so that i can show the lastSelection? In wich component should i call the showLastSelection? For example: > > I have try to implement this into the apply filter action from mail.gui.tree. This action calls the applyFilterCommand which self creates a componentCommand to move all filtered message to the destination folders (if i have choose the move action on filter). I have called the ViewMessageCommand after the ApplyFilterCommand from the ApplyFilterAction. But the ViewMessageCommand is called before the other componentCommands are done. Where is the place to put the call viewMessageCommand that this command is called after all the other commands? > > Second it would be fine if we have a layer between commands that are updating the mail.table. These commands should call the viewMessageCommand to show the lastSelection (in the viewMessageCommand this stuff is currently implemented). But any Commands driven from Command and others from FolderCommand (which is self driven from Command). So should we make a new Command Class where all the actions which are updating the table are derived and automaticly calling the ViewMessageCommand or what do you think? And must we call the ViewMessageCommand to show the lastSelection or should this do the TableController? (if i do this in the tableController i have the problem that the viewMessageCommand self calls the TableController to update itself. So if i call inside the TableController the viewMessageCommand is brings columba into a endless loop) > We already have that layer in place. This layer is responsible for mapping between folder->uids and table->messagenodes. You already fixed the selection stuff for the "mark message" command in: org.columba.mail.gui.table.TableController->tableChanged() This is the right place for updating the selection. It is called in the updateGUI-methods() of Commands which send updates to the table. Dont' try to update the selection in any command. Commands shouldn't deal with such a thing, because its specific to the table. Commands only send notifications to the table, which can be: add/remove messages or update complete table. The table component looks a bit messy, because I didn't had the time yet to clean things up, but TableController->tableChanged() is the right position to apply your selection changes. Cheers, Frederik |