Skip to main content

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.

Jump to: navigation, search

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);
}

Back to the top