diff options
author | mkersten | 2009-07-24 04:18:35 +0000 |
---|---|---|
committer | mkersten | 2009-07-24 04:18:35 +0000 |
commit | e3283b1abefaaa5e538eeb806d6101d63a18d291 (patch) | |
tree | a49b6c9604bf9afdfcfc3d5bd3ad42dcd446e885 | |
parent | 831ab384adb2918b58509bf75a7ca53fd23e70b9 (diff) | |
download | org.eclipse.mylyn.tasks-e3283b1abefaaa5e538eeb806d6101d63a18d291.tar.gz org.eclipse.mylyn.tasks-e3283b1abefaaa5e538eeb806d6101d63a18d291.tar.xz org.eclipse.mylyn.tasks-e3283b1abefaaa5e538eeb806d6101d63a18d291.zip |
NEW - bug 284155: support overlay of product and component on attributes section header
https://bugs.eclipse.org/bugs/show_bug.cgi?id=284155
2 files changed, 53 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java index 5188c7b15..656c09088 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorAttributePart.java @@ -163,6 +163,21 @@ public class TaskEditorAttributePart extends AbstractTaskEditorPart { setSection(toolkit, section); } + @Override + protected String getInfoOverlayText() { + TaskAttribute product = getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.PRODUCT); + TaskAttribute component = getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.COMPONENT); + if (product != null && component != null) { + return product.getValue() + " / " + component.getValue(); //$NON-NLS-1$ + } else if (product != null) { + return product.getValue(); + } else if (component != null) { + return component.getValue(); + } else { + return null; + } + } + /** * Integrator requested the ability to control whether the attributes section is expanded on creation. */ diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java index eedb78d14..7b4269558 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java @@ -23,7 +23,11 @@ import org.eclipse.swt.graphics.Font; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; import org.eclipse.ui.forms.AbstractFormPart; +import org.eclipse.ui.forms.IFormColors; +import org.eclipse.ui.forms.events.ExpansionAdapter; +import org.eclipse.ui.forms.events.ExpansionEvent; import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; @@ -138,10 +142,12 @@ public abstract class AbstractTaskEditorPart extends AbstractFormPart { Composite toolbarComposite = toolkit.createComposite(section); toolbarComposite.setBackground(null); RowLayout rowLayout = new RowLayout(); - rowLayout.marginTop = 0; + rowLayout.marginTop = 2; rowLayout.marginBottom = 0; toolbarComposite.setLayout(rowLayout); + createInfoOverlay(toolbarComposite, section, toolkit); + toolBarManager.createControl(toolbarComposite); section.clientVerticalSpacing = 0; section.descriptionVerticalSpacing = 0; @@ -151,6 +157,37 @@ public abstract class AbstractTaskEditorPart extends AbstractFormPart { setControl(section); } + /** + * Clients can implement to provide attribute overlay text + * + * @param section + */ + private void createInfoOverlay(Composite composite, Section section, FormToolkit toolkit) { + String text = getInfoOverlayText(); + if (text == null) { + return; + } + + final Label label = toolkit.createLabel(composite, text); + label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); + label.setBackground(null); + label.setVisible(!section.isExpanded()); + + section.addExpansionListener(new ExpansionAdapter() { + @Override + public void expansionStateChanging(ExpansionEvent e) { + label.setVisible(!e.getState()); + } + }); + } + + /** + * Clients can override to show summary information for the part. + */ + protected String getInfoOverlayText() { + return null; + } + protected boolean setSelection(ISelection selection) { return false; } |