Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Mylyn/Refactoring
Requirements
- Persistence
- Provide a generic API for storing task attributes
- Configuration extraction
- Presenation api
API
Task Attributes
RepositoryTaskAttribute { boolean isModified() boolean hasIncomingChanges() void write(IMemento) void read(IMemento) }
Mylar Task Model
Make this model explicit and define it in terms of Java classes. This could be separate from the offline storage so connectors without a TaskDataHandler could provide attachment support.
RepositoryTaskData { boolean isNew String description String summary String newComment String[] cc String[] addCC String[] removeCC }
RepositoryTaskComment { String author Date created ... }
RepositoryTaskAttachment { String filename String description ... }
RepositoryTaskOperation { ... }
Editor/UI
Connectors provide a factory for UI representation of attributes:
AbstractConnectorUi { abstract ITaskUiFactory getTaskUiFactory() }
ITaskUiFactory { String getLabel(RepositoryTaskAttribute attr) Control createEditor(RepositoryTaskAttribute attr, Composite parent) String getToolTip(RepositoryTaskAttribute attr) }
Mylar provides default implementations to create an editor for an attribute:
MylarEditorFactory { Control createComboEditor(RepositoryTaskAttribute attr, Composite parent, String[] options); }