diff options
author | Tom Schindl | 2014-07-25 08:18:36 +0000 |
---|---|---|
committer | Tom Schindl | 2014-07-25 08:18:36 +0000 |
commit | 8f11d5098da7803f2ae7129981967c3226cdcaf6 (patch) | |
tree | c7add9f9a2ab7d57179e8f1f9d814dcea3e8438a | |
parent | 68bc96c9d229c26042043cd0dde7ef78df74c5fc (diff) | |
download | org.eclipse.e4.tools-8f11d5098da7803f2ae7129981967c3226cdcaf6.tar.gz org.eclipse.e4.tools-8f11d5098da7803f2ae7129981967c3226cdcaf6.tar.xz org.eclipse.e4.tools-8f11d5098da7803f2ae7129981967c3226cdcaf6.zip |
Bug 440417 - [ModelTooling] CompositePart editor should support to set
icon, label and tooltip
3 files changed, 58 insertions, 0 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java index 4a052e7a..622dfba0 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java @@ -708,4 +708,8 @@ public class Messages { public String CompositePartEditor_SelectedElement; public String CompositePartEditor_ContainerData; public String CompositePartEditor_Controls; + public String CompositePartEditor_LabelLabel; + public String CompositePartEditor_Tooltip; + public String CompositePartEditor_IconURI; + public String CompositePartEditor_IconURI_Tooltip; } diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties index 2cda3138..f41c3c33 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties @@ -719,3 +719,7 @@ CompositePartEditor_Vertical=Vertical CompositePartEditor_SelectedElement=Selected Element CompositePartEditor_ContainerData=Container Data CompositePartEditor_Controls=Controls +CompositePartEditor_LabelLabel=Label +CompositePartEditor_Tooltip=Tooltip +CompositePartEditor_IconURI=Icon URI +CompositePartEditor_IconURI_Tooltip=Choose the icon of your part here diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java index cfd4b6ce..9974d3b6 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CompositePartEditor.java @@ -8,24 +8,30 @@ import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.WritableValue; import org.eclipse.core.databinding.property.list.IListProperty; import org.eclipse.core.resources.IProject; +import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.IEditorFeature.FeatureClass; +import org.eclipse.e4.tools.emf.ui.common.ImageTooltip; import org.eclipse.e4.tools.emf.ui.common.Util; import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor; import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.ComponentLabelProvider; +import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.TextPasteHandler; +import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.PartIconDialogEditor; import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.tools.emf.ui.internal.imp.ModelImportWizard; import org.eclipse.e4.tools.emf.ui.internal.imp.RegistryUtil; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MElementContainer; import org.eclipse.e4.ui.model.application.ui.MUIElement; +import org.eclipse.e4.ui.model.application.ui.MUILabel; import org.eclipse.e4.ui.model.application.ui.advanced.impl.AdvancedPackageImpl; import org.eclipse.e4.ui.model.application.ui.basic.MCompositePart; import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.model.application.ui.basic.impl.BasicPackageImpl; import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl; import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.databinding.EMFDataBindingContext; import org.eclipse.emf.databinding.EMFProperties; import org.eclipse.emf.databinding.FeaturePath; @@ -67,6 +73,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; public class CompositePartEditor extends AbstractComponentEditor { @@ -86,6 +93,9 @@ public class CompositePartEditor extends AbstractComponentEditor { private Shell shell; @Inject + IEclipseContext eclipseContext; + + @Inject public CompositePartEditor() { super(); } @@ -239,6 +249,46 @@ public class CompositePartEditor extends AbstractComponentEditor { ControlFactory.createTextField(parent, Messages.ModelTooling_Common_Id, master, context, textProp, EMFEditProperties.value(getEditingDomain(), ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__ELEMENT_ID)); ControlFactory.createTextField(parent, Messages.ModelTooling_UIElement_AccessibilityPhrase, getMaster(), context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__ACCESSIBILITY_PHRASE)); + ControlFactory.createTextField(parent, Messages.CompositePartEditor_LabelLabel, master, context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_LABEL__LABEL)); + ControlFactory.createTextField(parent, Messages.CompositePartEditor_Tooltip, master, context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_LABEL__TOOLTIP)); + + // ------------------------------------------------------------ + { + Label l = new Label(parent, SWT.NONE); + l.setText(Messages.CompositePartEditor_IconURI); + l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); + l.setToolTipText(Messages.CompositePartEditor_IconURI_Tooltip); + + final Text t = new Text(parent, SWT.BORDER); + TextPasteHandler.createFor(t); + t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + context.bindValue(textProp.observeDelayed(200, t), EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_LABEL__ICON_URI).observeDetail(master)); + + new ImageTooltip(t, Messages) { + + @Override + protected URI getImageURI() { + MUILabel part = (MUILabel) getMaster().getValue(); + String uri = part.getIconURI(); + if (uri == null || uri.trim().length() == 0) { + return null; + } + return URI.createURI(part.getIconURI()); + } + }; + + final Button b = new Button(parent, SWT.PUSH | SWT.FLAT); + b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); + b.setImage(createImage(ResourceProvider.IMG_Obj16_zoom)); + b.setText(Messages.ModelTooling_Common_FindEllipsis); + b.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + PartIconDialogEditor dialog = new PartIconDialogEditor(b.getShell(), eclipseContext, project, getEditingDomain(), (MPart) getMaster().getValue(), Messages); + dialog.open(); + } + }); + } // ------------------------------------------------------------ { |