diff options
author | Thomas Schindl | 2011-03-10 22:06:50 +0000 |
---|---|---|
committer | Thomas Schindl | 2011-03-10 22:06:50 +0000 |
commit | d1fdd6728a10a2c5e4db7f8254a82db1db49c6c1 (patch) | |
tree | b60b3627af7f02577c4ece147f2cccb756e98b82 | |
parent | 36a91f6979dcdb8a124d24b0d9b2ba227bf7807f (diff) | |
download | org.eclipse.e4.tools-d1fdd6728a10a2c5e4db7f8254a82db1db49c6c1.tar.gz org.eclipse.e4.tools-d1fdd6728a10a2c5e4db7f8254a82db1db49c6c1.tar.xz org.eclipse.e4.tools-d1fdd6728a10a2c5e4db7f8254a82db1db49c6c1.zip |
Bug 339598 - [ModelTooling] Add UI-Widget-Tree inspector
55 files changed, 803 insertions, 11 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF index 8af951f2..92554df3 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF @@ -29,7 +29,8 @@ Require-Bundle: org.eclipse.core.databinding;bundle-version="1.3.0", javax.annotation;bundle-version="1.0.0", org.eclipse.e4.tools.services;bundle-version="1.0.0", org.eclipse.e4.core.di.extensions;bundle-version="0.9.0", - org.eclipse.jface.text;bundle-version="3.7.0" + org.eclipse.jface.text;bundle-version="3.7.0", + org.eclipse.e4.ui.widgets;bundle-version="1.0.0" Bundle-ActivationPolicy: lazy Import-Package: javax.inject;version="1.0.0", org.eclipse.core.runtime.jobs, diff --git a/bundles/org.eclipse.e4.tools.emf.ui/OSGI-INF/resources.properties b/bundles/org.eclipse.e4.tools.emf.ui/OSGI-INF/resources.properties index 4ad8645f..43901a3a 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/OSGI-INF/resources.properties +++ b/bundles/org.eclipse.e4.tools.emf.ui/OSGI-INF/resources.properties @@ -98,6 +98,32 @@ IMG_org.eclipse.e4.tools.emf.ui.wizban.newexp_wiz=/icons/full/wizban/newexp_wiz. IMG_org.eclipse.e4.tools.emf.ui.wizban.typerefact_wiz=/icons/full/wizban/typerefact_wiz.png IMG_org.eclipse.e4.tools.emf.ui.wizban.extstr_wiz=/icons/full/wizban/extstr_wiz.png +IMG_org.eclipse.e4.tools.emf.ui.widgets.ctabfolder_obj = /icons/full/widgets/ctabfolder_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.tabfolder_obj = /icons/full/widgets/tabfolder_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.shell_obj = /icons/full/widgets/shell_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.group_obj = /icons/full/widgets/group_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.ccombo_obj = /icons/full/widgets/ccombo_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.comboviewer_obj = /icons/full/widgets/comboviewer_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.table_obj = /icons/full/widgets/table_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.tree_obj = /icons/full/widgets/tree_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.sashform_obj = /icons/full/widgets/sashform_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.text_obj = /icons/full/widgets/text_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.label_obj = /icons/full/widgets/label_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.button_obj = /icons/full/widgets/button_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.composite_obj = /icons/full/widgets/composite_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.progressbar_obj = /icons/full/widgets/progressbar_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.separator_obj = /icons/full/widgets/separator_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.clabel_obj = /icons/full/widgets/clabel_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.coolbar_obj = /icons/full/widgets/coolbar_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.toolbar_obj = /icons/full/widgets/toolbar_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemcheck_obj = /icons/full/widgets/toolitemcheck_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemdrop_obj = /icons/full/widgets/toolitemdrop_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitempush_obj = /icons/full/widgets/toolitempush_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemradio_obj = /icons/full/widgets/toolitemradio_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemseparator_obj = /icons/full/widgets/toolitemseparator_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.checkbox_obj = /icons/full/widgets/checkbox_obj.gif +IMG_org.eclipse.e4.tools.emf.ui.widgets.group_obj = /icons/full/widgets/group_obj.gif + COLOR_org.eclipse.e4.tools.emf.ui.XML_COMMENT=rgb(128, 0, 0) COLOR_org.eclipse.e4.tools.emf.ui.PROC_INSTR=rgb(128, 128, 128) COLOR_org.eclipse.e4.tools.emf.ui.STRING=rgb(0, 128, 0) diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/button_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/button_obj.gif Binary files differnew file mode 100644 index 00000000..d143fcf6 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/button_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/ccombo_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/ccombo_obj.gif Binary files differnew file mode 100644 index 00000000..6bd017e8 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/ccombo_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/checkbox_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/checkbox_obj.gif Binary files differnew file mode 100644 index 00000000..9cacb96d --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/checkbox_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/clabel_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/clabel_obj.gif Binary files differnew file mode 100644 index 00000000..8588b69e --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/clabel_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/comboviewer_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/comboviewer_obj.gif Binary files differnew file mode 100644 index 00000000..9ac63fc1 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/comboviewer_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/composite_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/composite_obj.gif Binary files differnew file mode 100644 index 00000000..3e53cbdc --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/composite_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/coolbar_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/coolbar_obj.gif Binary files differnew file mode 100644 index 00000000..d71af7a6 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/coolbar_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/ctabfolder_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/ctabfolder_obj.gif Binary files differnew file mode 100644 index 00000000..7a93c669 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/ctabfolder_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/group_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/group_obj.gif Binary files differnew file mode 100644 index 00000000..d91ebdf8 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/group_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/label_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/label_obj.gif Binary files differnew file mode 100644 index 00000000..cf00ad26 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/label_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/progressbar_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/progressbar_obj.gif Binary files differnew file mode 100644 index 00000000..af41a172 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/progressbar_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/radiobutton_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/radiobutton_obj.gif Binary files differnew file mode 100644 index 00000000..3901d055 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/radiobutton_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/sashform_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/sashform_obj.gif Binary files differnew file mode 100644 index 00000000..bbbdd559 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/sashform_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/separator_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/separator_obj.gif Binary files differnew file mode 100644 index 00000000..579587dc --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/separator_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/shell_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/shell_obj.gif Binary files differnew file mode 100644 index 00000000..37aad784 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/shell_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/tabfolder_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/tabfolder_obj.gif Binary files differnew file mode 100644 index 00000000..edd6060d --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/tabfolder_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/table_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/table_obj.gif Binary files differnew file mode 100644 index 00000000..b99b45ca --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/table_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/text_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/text_obj.gif Binary files differnew file mode 100644 index 00000000..cf20952b --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/text_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolbar_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolbar_obj.gif Binary files differnew file mode 100644 index 00000000..64173281 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolbar_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemcheck_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemcheck_obj.gif Binary files differnew file mode 100644 index 00000000..9421f563 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemcheck_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemdrop_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemdrop_obj.gif Binary files differnew file mode 100644 index 00000000..c03f91d8 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemdrop_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitempush_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitempush_obj.gif Binary files differnew file mode 100644 index 00000000..619f79d6 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitempush_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemradio_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemradio_obj.gif Binary files differnew file mode 100644 index 00000000..3cf12264 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemradio_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemseparator_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemseparator_obj.gif Binary files differnew file mode 100644 index 00000000..81d54f31 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/toolitemseparator_obj.gif diff --git a/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/tree_obj.gif b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/tree_obj.gif Binary files differnew file mode 100644 index 00000000..82b3bed1 --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/icons/full/widgets/tree_obj.gif 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 475fb90b..97ca0695 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 @@ -23,7 +23,8 @@ public class Messages { public String ModelTooling_Common_TabDefault; public String ModelTooling_Common_TabSupplementary; public String ModelEditor_AddChild; - public String ModelTooling_Common_TabRuntime; + public String ModelTooling_Common_RuntimeContributionInstance; + public String ModelTooling_Common_RuntimeWidgetTree; public String ModelTooling_UIElement_ToBeRendered; public String ModelTooling_UIElement_Visible; 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 b45be4ff..d5170110 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 @@ -19,7 +19,8 @@ ModelTooling_Common_FindEllipsis=Find ... ModelTooling_Common_TabDefault=Default ModelTooling_Common_TabSupplementary=Supplementary ModelEditor_AddChild=Add child -ModelTooling_Common_TabRuntime=Runtime +ModelTooling_Common_RuntimeContributionInstance=Contrib. Instance +ModelTooling_Common_RuntimeWidgetTree=Widget Tree ModelTooling_UIElement_ToBeRendered=To Be Rendered ModelTooling_UIElement_Visible=Visible diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ResourceProvider.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ResourceProvider.java index e0d49035..fd80845d 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ResourceProvider.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ResourceProvider.java @@ -103,6 +103,32 @@ public class ResourceProvider extends BasicResourceProvider { public static final String IMG_Wizban16_typerefact_wiz = "IMG_org.eclipse.e4.tools.emf.ui.wizban.typerefact_wiz"; //$NON-NLS-1$ public static final String IMG_Wizban16_extstr_wiz = "IMG_org.eclipse.e4.tools.emf.ui.wizban.extstr_wiz"; //$NON-NLS-1$ + public static final String IMG_Widgets_ctabfolder_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.ctabfolder_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_tabfolder_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.tabfolder_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_shell_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.shell_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_group_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.group_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_ccombo_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.ccombo_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_comboviewer_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.comboviewer_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_table_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.table_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_tree_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.tree_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_sashform_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.sashform_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_text_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.text_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_label_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.label_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_button_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.button_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_composite_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.composite_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_progressbar_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.progressbar_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_separator_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.separator_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_clabel_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.clabel_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_coolbar_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.coolbar_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_toolbar_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.toolbar_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_toolitemcheck_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemcheck_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_toolitemdrop_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemdrop_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_toolitempush_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitempush_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_toolitemradio_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemradio_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_toolitemseparator_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.toolitemseparator_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_checkbox_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.checkbox_obj"; //$NON-NLS-1$ + public static final String IMG_Widgets_radiobutton_obj = "IMG_org.eclipse.e4.tools.emf.ui.widgets.radiobutton_obj"; //$NON-NLS-1$ + public static final String COLOR_XML_COMMENT = "COLOR_org.eclipse.e4.tools.emf.ui.XML_COMMENT"; //$NON-NLS-1$ public static final String COLOR_PROC_INSTR = "COLOR_org.eclipse.e4.tools.emf.ui.PROC_INSTR"; //$NON-NLS-1$ public static final String COLOR_STRING = "COLOR_org.eclipse.e4.tools.emf.ui.STRING"; //$NON-NLS-1$ diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java index fe964e6d..8b934ef3 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AddonsEditor.java @@ -202,7 +202,7 @@ public class AddonsEditor extends AbstractComponentEditor { private void createInstanceInspection(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabRuntime); + item.setText(Messages.ModelTooling_Common_RuntimeContributionInstance); Composite container = new Composite(folder, SWT.NONE); container.setLayout(new GridLayout()); item.setControl(container); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java index e2abbe9d..f926d05c 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ApplicationEditor.java @@ -14,10 +14,13 @@ import javax.inject.Inject; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.list.WritableList; import org.eclipse.core.databinding.property.list.IListProperty; +import org.eclipse.core.resources.IProject; +import org.eclipse.e4.core.di.annotations.Optional; 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.ModelEditor; import org.eclipse.e4.tools.emf.ui.internal.common.VirtualEntry; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.commands.impl.CommandsPackageImpl; import org.eclipse.e4.ui.model.application.descriptor.basic.impl.BasicPackageImpl; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; @@ -30,10 +33,13 @@ import org.eclipse.emf.databinding.FeaturePath; import org.eclipse.emf.databinding.edit.EMFEditProperties; import org.eclipse.jface.databinding.swt.IWidgetValueProperty; import org.eclipse.jface.databinding.swt.WidgetProperties; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; @@ -56,6 +62,10 @@ public class ApplicationEditor extends AbstractComponentEditor { private IListProperty BINDING_TABLE_CONTAINER__ROOT_CONTEXT = EMFProperties.list(CommandsPackageImpl.Literals.BINDING_TABLE_CONTAINER__ROOT_CONTEXT); @Inject + @Optional + private IProject project; + + @Inject public ApplicationEditor() { super(); } @@ -125,11 +135,27 @@ public class ApplicationEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.ModelTooling_Context_Variables, UiPackageImpl.Literals.CONTEXT__VARIABLES, VERTICAL_LIST_WIDGET_INDENT); ControlFactory.createStringListWidget(parent, Messages, this, Messages.AddonsEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(final Object element) { final WritableList list = new WritableList(); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java index 146e20a6..0e1f878f 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/AreaEditor.java @@ -27,6 +27,7 @@ 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.AreaIconDialogEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; 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; @@ -60,6 +61,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -416,11 +418,27 @@ public class AreaEditor extends AbstractComponentEditor { ControlFactory.createTextField(parent, Messages.ModelTooling_UIElement_AccessibilityPhrase, getMaster(), context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__ACCESSIBILITY_PHRASE)); ControlFactory.createStringListWidget(parent, Messages, this, Messages.ModelTooling_ApplicationElement_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + protected void handleAddChild(EClass eClass) { EObject eObject = EcoreUtil.create(eClass); setElementId(eObject); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectMenuItemEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectMenuItemEditor.java index f452e920..9cb85eef 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectMenuItemEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectMenuItemEditor.java @@ -88,7 +88,7 @@ public class DirectMenuItemEditor extends MenuItemEditor { private void createInstanceInspection(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabRuntime); + item.setText(Messages.ModelTooling_Common_RuntimeContributionInstance); Composite container = new Composite(folder, SWT.NONE); container.setLayout(new GridLayout()); item.setControl(container); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectToolItemEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectToolItemEditor.java index 13b8741b..c22e08eb 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectToolItemEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/DirectToolItemEditor.java @@ -127,7 +127,7 @@ public class DirectToolItemEditor extends ToolItemEditor { private void createInstanceInspection(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabRuntime); + item.setText(Messages.ModelTooling_Common_RuntimeContributionInstance); Composite container = new Composite(folder, SWT.NONE); container.setLayout(new GridLayout()); item.setControl(container); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/HandlerEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/HandlerEditor.java index 558024b3..53a58181 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/HandlerEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/HandlerEditor.java @@ -224,7 +224,7 @@ public class HandlerEditor extends AbstractComponentEditor { private void createInstanceInspection(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabRuntime); + item.setText(Messages.ModelTooling_Common_RuntimeContributionInstance); Composite container = new Composite(folder, SWT.NONE); container.setLayout(new GridLayout()); item.setControl(container); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java index 3245d567..8aadbcad 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuEditor.java @@ -36,6 +36,7 @@ import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.Text import org.eclipse.e4.tools.emf.ui.internal.common.component.MenuItemEditor.EClass2EObject; import org.eclipse.e4.tools.emf.ui.internal.common.component.MenuItemEditor.EObject2EClass; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.MenuIconDialogEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; 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.MExpression; @@ -72,6 +73,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -440,11 +442,27 @@ public class MenuEditor extends AbstractComponentEditor { ControlFactory.createTextField(parent, Messages.ModelTooling_UIElement_AccessibilityPhrase, getMaster(), context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__ACCESSIBILITY_PHRASE)); ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { final WritableList list = new WritableList(); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java index 3561de7c..5b1542ff 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuItemEditor.java @@ -29,6 +29,7 @@ import org.eclipse.e4.tools.emf.ui.internal.Messages; import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.TextPasteHandler; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.MenuItemIconDialogEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MUIElement; import org.eclipse.e4.ui.model.application.ui.MUILabel; @@ -53,6 +54,7 @@ import org.eclipse.jface.databinding.viewers.ViewerProperties; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -60,6 +62,7 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -307,6 +310,10 @@ public abstract class MenuItemEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; @@ -314,6 +321,18 @@ public abstract class MenuItemEditor extends AbstractComponentEditor { protected abstract void createFormSubTypeForm(Composite parent, EMFDataBindingContext context, WritableValue master); + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return null; diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuSeparatorEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuSeparatorEditor.java index 19368822..1fa6af05 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuSeparatorEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/MenuSeparatorEditor.java @@ -13,10 +13,13 @@ package org.eclipse.e4.tools.emf.ui.internal.common.component; import javax.inject.Inject; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.WritableValue; +import org.eclipse.core.resources.IProject; +import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl; import org.eclipse.emf.databinding.EMFDataBindingContext; @@ -24,10 +27,13 @@ import org.eclipse.emf.databinding.edit.EMFEditProperties; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.databinding.swt.IWidgetValueProperty; import org.eclipse.jface.databinding.swt.WidgetProperties; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; @@ -38,6 +44,10 @@ public class MenuSeparatorEditor extends AbstractComponentEditor { private EStackLayout stackLayout; @Inject + @Optional + private IProject project; + + @Inject public MenuSeparatorEditor() { super(); } @@ -128,14 +138,29 @@ public class MenuSeparatorEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { - // TODO Auto-generated method stub return null; } diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartEditor.java index 1939c2f4..1fe518a5 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartEditor.java @@ -35,6 +35,7 @@ import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.Text import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.ContributionClassDialog; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.PartIconDialogEditor; import org.eclipse.e4.tools.emf.ui.internal.common.objectdata.ObjectViewer; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.MContribution; import org.eclipse.e4.ui.model.application.commands.impl.CommandsPackageImpl; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; @@ -299,6 +300,7 @@ public class PartEditor extends AbstractComponentEditor { if (project == null) { createInstanceInspection(folder); + createUITreeInspection(folder); } folder.setSelection(0); @@ -308,7 +310,7 @@ public class PartEditor extends AbstractComponentEditor { private void createInstanceInspection(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabRuntime); + item.setText(Messages.ModelTooling_Common_RuntimeContributionInstance); Composite container = new Composite(folder, SWT.NONE); container.setLayout(new GridLayout()); item.setControl(container); @@ -316,7 +318,18 @@ public class PartEditor extends AbstractComponentEditor { ObjectViewer objectViewer = new ObjectViewer(); TreeViewer viewer = objectViewer.createViewer(container, ApplicationPackageImpl.Literals.CONTRIBUTION__OBJECT, getMaster(), resourcePool, Messages); viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); } private void addToolBar() { diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java index c8fe39bd..71ed4788 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartSashContainerEditor.java @@ -17,11 +17,14 @@ import javax.inject.Inject; 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.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; 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; @@ -52,6 +55,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -76,6 +80,10 @@ public class PartSashContainerEditor extends AbstractComponentEditor { private List<Action> actions = new ArrayList<Action>(); @Inject + @Optional + private IProject project; + + @Inject public PartSashContainerEditor() { super(); } @@ -363,11 +371,27 @@ public class PartSashContainerEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java index 7b018a32..b46d5432 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PartStackEditor.java @@ -17,11 +17,14 @@ import javax.inject.Inject; 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.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; 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; @@ -49,6 +52,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -74,6 +78,10 @@ public class PartStackEditor extends AbstractComponentEditor { private List<Action> actions = new ArrayList<Action>(); @Inject + @Optional + private IProject project; + + @Inject public PartStackEditor() { super(); } @@ -307,11 +315,27 @@ public class PartStackEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveEditor.java index 51bf7556..c5f8bc06 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveEditor.java @@ -27,6 +27,7 @@ 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.PerspectiveIconDialogEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; 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; @@ -57,6 +58,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -388,11 +390,27 @@ public class PerspectiveEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java index 2cbbcf68..0e6ba7cb 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PerspectiveStackEditor.java @@ -17,11 +17,14 @@ import javax.inject.Inject; 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.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; 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; @@ -44,6 +47,7 @@ import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -67,6 +71,10 @@ public class PerspectiveStackEditor extends AbstractComponentEditor { private List<Action> actions = new ArrayList<Action>(); @Inject + @Optional + private IProject project; + + @Inject public PerspectiveStackEditor() { super(); } @@ -280,11 +288,27 @@ public class PerspectiveStackEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PlaceholderEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PlaceholderEditor.java index 61969545..0e14cfdf 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PlaceholderEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/PlaceholderEditor.java @@ -15,6 +15,8 @@ import org.eclipse.core.databinding.UpdateValueStrategy; import org.eclipse.core.databinding.conversion.Converter; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.WritableValue; +import org.eclipse.core.resources.IProject; +import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; import org.eclipse.e4.tools.emf.ui.common.IModelResource; import org.eclipse.e4.tools.emf.ui.common.Util; @@ -22,6 +24,7 @@ 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.component.ControlFactory.TextPasteHandler; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.SharedElementsDialog; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MUIElement; import org.eclipse.e4.ui.model.application.ui.MUILabel; @@ -33,6 +36,7 @@ import org.eclipse.emf.databinding.edit.EMFEditProperties; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.databinding.swt.IWidgetValueProperty; import org.eclipse.jface.databinding.swt.WidgetProperties; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -40,6 +44,7 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -53,6 +58,10 @@ public class PlaceholderEditor extends AbstractComponentEditor { private EStackLayout stackLayout; @Inject + @Optional + private IProject project; + + @Inject private IModelResource resource; @Inject @@ -229,11 +238,27 @@ public class PlaceholderEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return null; diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java index d0bcef2d..88110efa 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarContributionEditor.java @@ -15,11 +15,14 @@ import javax.inject.Inject; 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.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; 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; @@ -46,6 +49,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -67,6 +71,10 @@ public class ToolBarContributionEditor extends AbstractComponentEditor { private IListProperty ELEMENT_CONTAINER__CHILDREN = EMFProperties.list(UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN); private EStackLayout stackLayout; + @Inject + @Optional + private IProject project; + private static class Struct { private final String label; private final EClass eClass; @@ -313,11 +321,27 @@ public class ToolBarContributionEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarSeparatorEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarSeparatorEditor.java index b2b33820..4cc8b945 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarSeparatorEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolBarSeparatorEditor.java @@ -13,10 +13,13 @@ package org.eclipse.e4.tools.emf.ui.internal.common.component; import javax.inject.Inject; import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.WritableValue; +import org.eclipse.core.resources.IProject; +import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MUIElement; import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl; @@ -26,10 +29,13 @@ import org.eclipse.emf.databinding.edit.EMFEditProperties; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.databinding.swt.IWidgetValueProperty; import org.eclipse.jface.databinding.swt.WidgetProperties; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; @@ -40,6 +46,10 @@ public class ToolBarSeparatorEditor extends AbstractComponentEditor { private EStackLayout stackLayout; @Inject + @Optional + private IProject project; + + @Inject public ToolBarSeparatorEditor() { super(); } @@ -139,11 +149,27 @@ public class ToolBarSeparatorEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return null; diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolControlEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolControlEditor.java index fbb8f094..0e90d536 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolControlEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolControlEditor.java @@ -22,6 +22,7 @@ import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.TextPasteHandler; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.ContributionClassDialog; import org.eclipse.e4.tools.emf.ui.internal.common.objectdata.ObjectViewer; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.MContribution; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MUIElement; @@ -184,7 +185,12 @@ public class ToolControlEditor extends AbstractComponentEditor { item.setControl(parent.getParent()); ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); - createInstanceInspection(folder); + + if (project == null) { + createInstanceInspection(folder); + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; @@ -192,7 +198,7 @@ public class ToolControlEditor extends AbstractComponentEditor { private void createInstanceInspection(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); - item.setText(Messages.ModelTooling_Common_TabRuntime); + item.setText(Messages.ModelTooling_Common_RuntimeContributionInstance); Composite container = new Composite(folder, SWT.NONE); container.setLayout(new GridLayout()); item.setControl(container); @@ -203,6 +209,18 @@ public class ToolControlEditor extends AbstractComponentEditor { } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { // TODO Auto-generated method stub diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java index 8f100cf0..db0ce046 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/ToolItemEditor.java @@ -28,6 +28,7 @@ import org.eclipse.e4.tools.emf.ui.internal.Messages; import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.TextPasteHandler; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.ToolItemIconDialogEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MUILabel; import org.eclipse.e4.ui.model.application.ui.impl.UiPackageImpl; @@ -47,12 +48,14 @@ import org.eclipse.jface.databinding.viewers.ViewerProperties; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -130,11 +133,27 @@ public abstract class ToolItemEditor extends AbstractComponentEditor { createFormSubTypeForm(parent, folder, context, master); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + protected void createFormSubTypeForm(Composite parent, CTabFolder folder, EMFDataBindingContext context, final WritableValue master) { IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify); IWidgetValueProperty checkProp = WidgetProperties.selection(); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimBarEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimBarEditor.java index c302c3da..072ba2f1 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimBarEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimBarEditor.java @@ -18,12 +18,15 @@ import org.eclipse.core.databinding.observable.list.IObservableList; import org.eclipse.core.databinding.observable.value.IObservableValue; 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.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.ModelEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; 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.MGenericTrimContainer; @@ -53,6 +56,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -77,6 +81,10 @@ public class TrimBarEditor extends AbstractComponentEditor { private List<Action> actions = new ArrayList<Action>(); @Inject + @Optional + protected IProject project; + + @Inject private ModelEditor editor; @Inject @@ -320,11 +328,27 @@ public class TrimBarEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java index 024b7973..bd85be0f 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/TrimContributionEditor.java @@ -15,11 +15,14 @@ import javax.inject.Inject; 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.di.annotations.Optional; import org.eclipse.e4.tools.emf.ui.common.EStackLayout; 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.uistructure.UIViewer; 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; @@ -45,6 +48,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -67,6 +71,10 @@ public class TrimContributionEditor extends AbstractComponentEditor { private EStackLayout stackLayout; @Inject + @Optional + protected IProject project; + + @Inject public TrimContributionEditor() { super(); } @@ -289,11 +297,27 @@ public class TrimContributionEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + @Override public IObservableList getChildList(Object element) { return ELEMENT_CONTAINER__CHILDREN.observe(element); diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/WindowEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/WindowEditor.java index d16e3b9d..efc20524 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/WindowEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/WindowEditor.java @@ -31,6 +31,7 @@ import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; import org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor; import org.eclipse.e4.tools.emf.ui.internal.common.VirtualEntry; import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.WindowIconDialogEditor; +import org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer; import org.eclipse.e4.ui.model.application.commands.impl.CommandsPackageImpl; import org.eclipse.e4.ui.model.application.impl.ApplicationPackageImpl; import org.eclipse.e4.ui.model.application.ui.MUIElement; @@ -51,6 +52,7 @@ import org.eclipse.emf.edit.command.SetCommand; import org.eclipse.jface.action.Action; import org.eclipse.jface.databinding.swt.IWidgetValueProperty; import org.eclipse.jface.databinding.swt.WidgetProperties; +import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; @@ -292,11 +294,27 @@ public class WindowEditor extends AbstractComponentEditor { ControlFactory.createStringListWidget(parent, Messages, this, Messages.ModelTooling_Context_Variables, UiPackageImpl.Literals.CONTEXT__VARIABLES, VERTICAL_LIST_WIDGET_INDENT); ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); + if (project == null) { + createUITreeInspection(folder); + } + folder.setSelection(0); return folder; } + private void createUITreeInspection(CTabFolder folder) { + CTabItem item = new CTabItem(folder, SWT.NONE); + item.setText(Messages.ModelTooling_Common_RuntimeWidgetTree); + Composite container = new Composite(folder, SWT.NONE); + container.setLayout(new GridLayout()); + item.setControl(container); + + UIViewer objectViewer = new UIViewer(); + TreeViewer viewer = objectViewer.createViewer(container, UiPackageImpl.Literals.UI_ELEMENT__WIDGET, getMaster(), resourcePool, Messages); + viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); + } + void removeMenu() { Command cmd = SetCommand.create(getEditingDomain(), getMaster().getValue(), BasicPackageImpl.Literals.WINDOW__MAIN_MENU, null); if (cmd.canExecute()) { diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/UIViewer.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/UIViewer.java new file mode 100644 index 00000000..e27d5bef --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/UIViewer.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * Copyright (c) 2011 BestSolution.at and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation + ******************************************************************************/ +package org.eclipse.e4.tools.emf.ui.internal.common.uistructure; + +import java.util.Collections; +import org.eclipse.core.databinding.observable.value.IObservableValue; +import org.eclipse.core.databinding.observable.value.IValueChangeListener; +import org.eclipse.core.databinding.observable.value.ValueChangeEvent; +import org.eclipse.e4.tools.emf.ui.internal.Messages; +import org.eclipse.e4.tools.emf.ui.internal.common.ControlHighlighter; +import org.eclipse.e4.tools.services.IResourcePool; +import org.eclipse.emf.databinding.EMFProperties; +import org.eclipse.emf.databinding.IEMFValueProperty; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +public class UIViewer { + public TreeViewer createViewer(Composite parent, EStructuralFeature feature, IObservableValue master, IResourcePool resourcePool, final Messages messages) { + final TreeViewer viewer = new TreeViewer(parent); + viewer.setContentProvider(new WidgetContentProvider()); + viewer.setLabelProvider(new WidgetLabelProvider(resourcePool)); + IEMFValueProperty property = EMFProperties.value(feature); + IObservableValue value = property.observeDetail(master); + value.addValueChangeListener(new IValueChangeListener() { + + public void handleValueChange(ValueChangeEvent event) { + if (event.diff.getNewValue() != null) { + viewer.setInput(Collections.singleton(event.diff.getNewValue())); + viewer.expandToLevel(2); + } else { + viewer.setInput(Collections.emptyList()); + } + } + }); + + MenuManager mgr = new MenuManager(); + mgr.setRemoveAllWhenShown(true); + mgr.addMenuListener(new IMenuListener() { + + public void menuAboutToShow(IMenuManager manager) { + final Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); + if (o instanceof Control) { + manager.add(new Action(messages.ModelEditor_ShowControl) { + @Override + public void run() { + ControlHighlighter.show((Control) o); + } + }); + } + } + }); + + viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl())); + + return viewer; + } +} diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/WidgetContentProvider.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/WidgetContentProvider.java new file mode 100644 index 00000000..f3f6e13c --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/WidgetContentProvider.java @@ -0,0 +1,113 @@ +package org.eclipse.e4.tools.emf.ui.internal.common.uistructure; + +import java.util.Collection; +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.CoolBar; +import org.eclipse.swt.widgets.CoolItem; +import org.eclipse.swt.widgets.List; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.swt.widgets.Tree; + +public class WidgetContentProvider implements ITreeContentProvider { + + public void dispose() { + + } + + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + + } + + public Object[] getElements(Object inputElement) { + return ((Collection<?>) inputElement).toArray(); + } + + public Object[] getChildren(Object parentElement) { + if (parentElement instanceof ToolBar) { + ToolBar toolbar = (ToolBar) parentElement; + ToolItem[] items = toolbar.getItems(); + Object[] rv = new Object[items.length]; + System.arraycopy(items, 0, rv, 0, rv.length); + return rv; + } else if (parentElement instanceof CoolBar) { + CoolBar coolbar = (CoolBar) parentElement; + CoolItem[] items = coolbar.getItems(); + Object[] rv = new Object[items.length]; + System.arraycopy(items, 0, rv, 0, rv.length); + return rv; + } else if (parentElement instanceof TabItem) { + TabItem item = (TabItem) parentElement; + if (item.getControl() != null) { + return new Object[] { item.getControl() }; + } + } else if (parentElement instanceof CTabItem) { + CTabItem item = (CTabItem) parentElement; + if (item.getControl() != null) { + return new Object[] { item.getControl() }; + } + } else if (parentElement instanceof org.eclipse.e4.ui.widgets.CTabItem) { + org.eclipse.e4.ui.widgets.CTabItem item = (org.eclipse.e4.ui.widgets.CTabItem) parentElement; + if (item.getControl() != null) { + return new Object[] { item.getControl() }; + } + } else if (parentElement instanceof Tree) { + Tree tree = (Tree) parentElement; + + } else if (parentElement instanceof Tree) { + Table table = (Table) parentElement; + + } else if (parentElement instanceof List) { + List list = (List) parentElement; + + } else if (parentElement instanceof Combo) { + Combo combo = (Combo) parentElement; + + } else if (parentElement instanceof CTabFolder) { + CTabFolder tabFolder = (CTabFolder) parentElement; + CTabItem[] items = tabFolder.getItems(); + Object[] rv = new Object[items.length]; + System.arraycopy(items, 0, rv, 0, rv.length); + return rv; + } else if (parentElement instanceof org.eclipse.e4.ui.widgets.CTabFolder) { + org.eclipse.e4.ui.widgets.CTabFolder tabFolder = (org.eclipse.e4.ui.widgets.CTabFolder) parentElement; + org.eclipse.e4.ui.widgets.CTabItem[] items = tabFolder.getItems(); + Object[] rv = new Object[items.length]; + System.arraycopy(items, 0, rv, 0, rv.length); + return rv; + } else if (parentElement instanceof TabFolder) { + TabFolder tabFolder = (TabFolder) parentElement; + TabItem[] items = tabFolder.getItems(); + Object[] rv = new Object[items.length]; + System.arraycopy(items, 0, rv, 0, rv.length); + return rv; + } else if (parentElement instanceof Composite) { + Composite comp = (Composite) parentElement; + Control controls[] = comp.getChildren(); + Object[] rv = new Object[controls.length]; + System.arraycopy(controls, 0, rv, 0, rv.length); + return rv; + } + + return new Object[0]; + } + + public Object getParent(Object element) { + // TODO Auto-generated method stub + return null; + } + + public boolean hasChildren(Object element) { + return getChildren(element).length > 0; + } + +} diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/WidgetLabelProvider.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/WidgetLabelProvider.java new file mode 100644 index 00000000..9aa305ce --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/uistructure/WidgetLabelProvider.java @@ -0,0 +1,165 @@ +package org.eclipse.e4.tools.emf.ui.internal.common.uistructure; + +import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; +import org.eclipse.e4.tools.services.IResourcePool; +import org.eclipse.jface.viewers.StyledCellLabelProvider; +import org.eclipse.jface.viewers.StyledString; +import org.eclipse.jface.viewers.ViewerCell; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CCombo; +import org.eclipse.swt.custom.CLabel; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.CoolBar; +import org.eclipse.swt.widgets.CoolItem; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.ProgressBar; +import org.eclipse.swt.widgets.Sash; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.swt.widgets.Tree; + +public class WidgetLabelProvider extends StyledCellLabelProvider { + private IResourcePool resourcePool; + + public WidgetLabelProvider(IResourcePool resourcePool) { + this.resourcePool = resourcePool; + } + + @Override + public void update(ViewerCell cell) { + Object element = cell.getElement(); + if (element instanceof CLabel) { + StyledString s = new StyledString("Label"); //$NON-NLS-1$ + s.append(" - " + ((CLabel) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ + cell.setStyleRanges(s.getStyleRanges()); + cell.setText(s.getString()); + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj)); + } else if (element instanceof ToolBar) { + cell.setText("Toolbar"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolbar_obj)); + } else if (element instanceof ToolItem) { + cell.setText("ToolItem"); //$NON-NLS-1$ + ToolItem item = (ToolItem) element; + if ((item.getStyle() & SWT.PUSH) == SWT.PUSH) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitempush_obj)); + } else if ((item.getStyle() & SWT.DROP_DOWN) == SWT.DROP_DOWN) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemdrop_obj)); + } else if ((item.getStyle() & SWT.CHECK) == SWT.CHECK) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemcheck_obj)); + } else if ((item.getStyle() & SWT.RADIO) == SWT.RADIO) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemradio_obj)); + } else if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemseparator_obj)); + } + } else if (element instanceof CoolItem) { + cell.setText("CoolItem"); //$NON-NLS-1$ + CoolItem item = (CoolItem) element; + if ((item.getStyle() & SWT.PUSH) == SWT.PUSH) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitempush_obj)); + } else if ((item.getStyle() & SWT.DROP_DOWN) == SWT.DROP_DOWN) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemdrop_obj)); + } else if ((item.getStyle() & SWT.CHECK) == SWT.CHECK) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemcheck_obj)); + } else if ((item.getStyle() & SWT.RADIO) == SWT.RADIO) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemradio_obj)); + } else if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemseparator_obj)); + } + } else if (element instanceof CoolBar) { + cell.setText("Coolbar"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_coolbar_obj)); + } else if (element instanceof Shell) { + StyledString s = new StyledString("Shell"); //$NON-NLS-1$ + s.append(" - " + ((Shell) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ + cell.setStyleRanges(s.getStyleRanges()); + cell.setText(s.getString()); + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_shell_obj)); + } else if (element instanceof ProgressBar) { + cell.setText("ProgressBar"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_progressbar_obj)); + } else if (element instanceof Group) { + StyledString s = new StyledString("Group"); //$NON-NLS-1$ + s.append(" - " + ((Group) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ + cell.setStyleRanges(s.getStyleRanges()); + cell.setText(s.getString()); + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_group_obj)); + } else if (element instanceof TabFolder) { + cell.setText("TabFolder"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_tabfolder_obj)); + } else if (element instanceof CTabFolder || element instanceof org.eclipse.e4.ui.widgets.CTabFolder) { + cell.setText("CTabFolder"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_ctabfolder_obj)); + } else if (element instanceof Combo) { + cell.setText("Combo"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_comboviewer_obj)); + } else if (element instanceof CCombo) { + cell.setText("CCombo"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_ccombo_obj)); + } else if (element instanceof Table) { + cell.setText("Table"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_table_obj)); + } else if (element instanceof Tree) { + cell.setText("Tree"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_tree_obj)); + } else if (element instanceof Text) { + cell.setText("Text"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_text_obj)); + } else if (element instanceof Sash) { + cell.setText("Sash"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_sashform_obj)); + } else if (element instanceof Label) { + Label l = (Label) element; + if ((l.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { + cell.setText("Separator"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_separator_obj)); + } else { + StyledString s = new StyledString("Label"); //$NON-NLS-1$ + s.append(" - " + l.getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_label_obj)); + } + + } else if (element instanceof TabItem) { + cell.setText("TabItem"); //$NON-NLS-1$ + } else if (element instanceof CTabItem) { + StyledString s = new StyledString("CTabItem"); //$NON-NLS-1$ + s.append(" - " + ((CTabItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ + cell.setStyleRanges(s.getStyleRanges()); + cell.setText(s.getString()); + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj)); + } else if (element instanceof org.eclipse.e4.ui.widgets.CTabItem) { + StyledString s = new StyledString("CTabItem"); //$NON-NLS-1$ + s.append(" - " + ((org.eclipse.e4.ui.widgets.CTabItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ + cell.setStyleRanges(s.getStyleRanges()); + cell.setText(s.getString()); + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj)); + } else if (element instanceof Button) { + Button b = (Button) element; + if ((b.getStyle() & SWT.PUSH) == SWT.PUSH) { + cell.setText("Button"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_button_obj)); + } else if ((b.getStyle() & SWT.CHECK) == SWT.CHECK) { + cell.setText("Checkbox"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_checkbox_obj)); + } else if ((b.getStyle() & SWT.RADIO) == SWT.RADIO) { + cell.setText("Radiobox"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_radiobutton_obj)); + } + } else if (element instanceof Composite) { + cell.setText("Composite"); //$NON-NLS-1$ + cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_composite_obj)); + } else { + cell.setText(element + ""); //$NON-NLS-1$ + } + super.update(cell); + } +} |