package org.nightlabs.jfire.issuetracking.ui.issue.editor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.composite.XComposite.LayoutMode;
import org.nightlabs.base.ui.editor.ToolBarSectionPart;
import org.nightlabs.jfire.issue.Issue;
/**
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*
*/
public abstract class AbstractIssueEditorGeneralSection extends ToolBarSectionPart {
private IssueEditorPageController controller;
private XComposite client;
private Issue issue;
/**
* @param page
* @param parent
* @param style
* @param title
*/
public AbstractIssueEditorGeneralSection(FormPage page, Composite parent, IssueEditorPageController controller) {
super(
page, parent,
ExpandableComposite.EXPANDED | ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE,
"Section title" //$NON-NLS-1$ // this should be overridden somehow by subclasses - and it seems it is. Marco.
);
this.controller = controller;
getSection().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
getSection().setLayout(new GridLayout());
client = new XComposite(getSection(), SWT.NONE, LayoutMode.TIGHT_WRAPPER);
client.getGridLayout().numColumns = 1;
getSection().setClient(client);
}
public IssueEditorPageController getController() {
return controller;
}
public XComposite getClient() {
return client;
}
public void setIssue(Issue issue) {
this.issue = issue;
doSetIssue(issue);
}
public Issue getIssue() {
return issue;
}
protected abstract void doSetIssue(Issue issue);
}