diff options
author | Thomas Schindl | 2011-04-25 06:59:25 +0000 |
---|---|---|
committer | Thomas Schindl | 2011-04-25 06:59:25 +0000 |
commit | b5ca1233b5ecaa4cfdaa0d2fa82d68c1af7a6c36 (patch) | |
tree | 0cc122589745e5702ab0f71e718df06e7ff549fa | |
parent | c55a2f5bee31e26232cedd69900eebb8e3783686 (diff) | |
download | org.eclipse.e4.tools-b5ca1233b5ecaa4cfdaa0d2fa82d68c1af7a6c36.tar.gz org.eclipse.e4.tools-b5ca1233b5ecaa4cfdaa0d2fa82d68c1af7a6c36.tar.xz org.eclipse.e4.tools-b5ca1233b5ecaa4cfdaa0d2fa82d68c1af7a6c36.zip |
Bug 343717 - [ModelTooling] Make rendered / visible color a preferencev20110425-1930
6 files changed, 171 insertions, 51 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/ModelEditorPreferencePage.java b/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/ModelEditorPreferencePage.java index 7bb2547f..64315c76 100644 --- a/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/ModelEditorPreferencePage.java +++ b/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/ModelEditorPreferencePage.java @@ -1,28 +1,27 @@ package org.eclipse.e4.tools.emf.editor3x; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.preference.BooleanFieldEditor; +import org.eclipse.jface.preference.ColorFieldEditor; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; -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; -import org.eclipse.swt.widgets.Label; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; -import org.osgi.service.prefs.BackingStoreException; +import org.eclipse.ui.preferences.ScopedPreferenceStore; public class ModelEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - private boolean autoCreateElementId; - private boolean showXMIId; - - private IEclipsePreferences node; - + private BooleanFieldEditor fAutoGeneratedId; + private BooleanFieldEditor fShowXMIId; + private ColorFieldEditor fColorValueNotRendered; + private ColorFieldEditor fColorValueNotVisible; + private ColorFieldEditor fColorValueNotVisibleAndRendered; + public ModelEditorPreferencePage() { } @@ -35,57 +34,77 @@ public class ModelEditorPreferencePage extends PreferencePage implements } public void init(IWorkbench workbench) { - node = new InstanceScope().getNode("org.eclipse.e4.tools.emf.ui"); - autoCreateElementId = node.getBoolean("autoCreateElementId", false); - showXMIId = node.getBoolean("showXMIId", false); + setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE,"org.eclipse.e4.tools.emf.ui")); } @Override protected Control createContents(Composite parent) { - Composite result= new Composite(parent, SWT.NONE); - result.setLayout(new GridLayout(2,false)); + Composite result = new Composite(parent, SWT.NONE); + result.setLayout(new GridLayout()); + + { + fColorValueNotRendered = new ColorFieldEditor("notRenderedColor", "Not rendered color", result); + fColorValueNotRendered.setPage(this); + fColorValueNotRendered.setPreferenceStore(getPreferenceStore()); + fColorValueNotRendered.load(); + } + + { + fColorValueNotVisible = new ColorFieldEditor("notVisibleColor", "Not visible color", result); + fColorValueNotVisible.setPage(this); + fColorValueNotVisible.setPreferenceStore(getPreferenceStore()); + fColorValueNotVisible.load(); + } { - Label l = new Label(result, SWT.NONE); - l.setText("Autogenerate Element-Id"); - final Button b = new Button(result, SWT.CHECK); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - autoCreateElementId = b.getSelection(); - } - }); + fColorValueNotVisibleAndRendered = new ColorFieldEditor("notVisibleAndRenderedColor", "Not visible and not rendered color", result); + fColorValueNotVisibleAndRendered.setPage(this); + fColorValueNotVisibleAndRendered.setPreferenceStore(getPreferenceStore()); + fColorValueNotVisibleAndRendered.load(); } { - Label l = new Label(result, SWT.NONE); - l.setText("Show XMI:ID"); - final Button b = new Button(result, SWT.CHECK); - b.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - showXMIId = b.getSelection(); - } - }); + Composite container = new Composite(result, SWT.NONE); + container.setLayoutData(new GridData(GridData.FILL,GridData.CENTER,false,false,2,1)); + fAutoGeneratedId = new BooleanFieldEditor("autoCreateElementId", "Autogenerate Element-Id", container); + fAutoGeneratedId.setPage(this); + fAutoGeneratedId.setPreferenceStore(getPreferenceStore()); + fAutoGeneratedId.load(); + } + + { + Composite container = new Composite(result, SWT.NONE); + container.setLayoutData(new GridData(GridData.FILL,GridData.CENTER,false,false,2,1)); + fShowXMIId = new BooleanFieldEditor("showXMIId", "Show XMI:ID", container); + fShowXMIId.setPage(this); + fShowXMIId.setPreferenceStore(getPreferenceStore()); + fShowXMIId.load(); } return result; } - + @Override public boolean performOk() { - node.putBoolean("autoCreateElementId", autoCreateElementId); - node.putBoolean("showXMIId", showXMIId); - try { - node.flush(); - } catch (BackingStoreException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + fAutoGeneratedId.store(); + fShowXMIId.store(); + fColorValueNotRendered.store(); + fColorValueNotVisible.store(); + fColorValueNotVisibleAndRendered.store(); return super.performOk(); } @Override + protected void performDefaults() { + fAutoGeneratedId.loadDefault(); + fShowXMIId.loadDefault(); + fColorValueNotRendered.loadDefault(); + fColorValueNotVisible.loadDefault(); + fColorValueNotVisibleAndRendered.loadDefault(); + super.performDefaults(); + } + + @Override public void dispose() { super.dispose(); } 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 92554df3..8d3f7496 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 @@ -30,7 +30,8 @@ Require-Bundle: org.eclipse.core.databinding;bundle-version="1.3.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.e4.ui.widgets;bundle-version="1.0.0" + org.eclipse.e4.ui.widgets;bundle-version="1.0.0", + org.eclipse.equinox.preferences;bundle-version="3.4.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/plugin.xml b/bundles/org.eclipse.e4.tools.emf.ui/plugin.xml index e01f13b9..91859ac6 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/plugin.xml +++ b/bundles/org.eclipse.e4.tools.emf.ui/plugin.xml @@ -9,5 +9,11 @@ uri="css/default.css"> </stylesheet> </extension> + <extension + point="org.eclipse.equinox.preferences.preferences"> + <initializer + class="org.eclipse.e4.tools.emf.ui.internal.PreferenceInitializer"> + </initializer> + </extension> </plugin> diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/PreferenceInitializer.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/PreferenceInitializer.java new file mode 100644 index 00000000..bcfc2bbe --- /dev/null +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/PreferenceInitializer.java @@ -0,0 +1,31 @@ +package org.eclipse.e4.tools.emf.ui.internal; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.resource.StringConverter; +import org.eclipse.swt.graphics.RGB; + +public class PreferenceInitializer extends AbstractPreferenceInitializer { + + @Override + public void initializeDefaultPreferences() { + IEclipsePreferences pref = InstanceScope.INSTANCE.getNode("org.eclipse.e4.tools.emf.ui"); + + if (pref.get("notRenderedColor", null) == null) { + String val = StringConverter.asString(new RGB(200, 200, 200)); + pref.put("notRenderedColor", val); + } + + if (pref.get("notVisibleColor", null) == null) { + String val = StringConverter.asString(new RGB(200, 200, 200)); + pref.put("notVisibleColor", val); + } + + if (pref.get("notVisibleAndRenderedColor", null) == null) { + String val = StringConverter.asString(new RGB(200, 200, 200)); + pref.put("notVisibleAndRenderedColor", val); + } + } + +} diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ComponentLabelProvider.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ComponentLabelProvider.java index f7e54e99..187d5d08 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ComponentLabelProvider.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ComponentLabelProvider.java @@ -22,27 +22,42 @@ import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; -import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.graphics.TextStyle; public class ComponentLabelProvider extends StyledCellLabelProvider { private ModelEditor editor; - private static final String NOT_RENDERED_KEY = "NOT_RENDERED_STYLER";//$NON-NLS-1$ + public static final String NOT_RENDERED_KEY = "NOT_RENDERED_STYLER";//$NON-NLS-1$ + + public static final String NOT_VISIBLE_KEY = "NOT_VISIBLE_KEY";//$NON-NLS-1$ + + public static final String NOT_VISIBLE_AND_RENDERED_KEY = "NOT_VISIBLE_AND_RENDERED_KEY";//$NON-NLS-1$ private Font font; private Messages Messages; - private static Styler NOT_RENDERED_STYLER = new Styler() { - { - JFaceResources.getColorRegistry().put(NOT_RENDERED_KEY, new RGB(200, 200, 200)); + private static Styler BOTH_STYLER = new Styler() { + @Override + public void applyStyles(TextStyle textStyle) { + textStyle.foreground = JFaceResources.getColorRegistry().get(NOT_VISIBLE_AND_RENDERED_KEY); + textStyle.strikeout = true; } + }; + private static Styler NOT_RENDERED_STYLER = new Styler() { @Override public void applyStyles(TextStyle textStyle) { textStyle.foreground = JFaceResources.getColorRegistry().get(NOT_RENDERED_KEY); + textStyle.strikeout = true; + } + }; + + private static Styler NOT_VISIBLE_STYLER = new Styler() { + @Override + public void applyStyles(TextStyle textStyle) { + textStyle.foreground = JFaceResources.getColorRegistry().get(NOT_VISIBLE_KEY); } }; @@ -63,9 +78,13 @@ public class ComponentLabelProvider extends StyledCellLabelProvider { Styler styler = null; if (o instanceof MUIElement) { - if (!((MUIElement) o).isVisible()) { + + if (!((MUIElement) o).isVisible() && !((MUIElement) o).isToBeRendered()) { + label += "<" + Messages.ComponentLabelProvider_invisible + "/" + Messages.ComponentLabelProvider_notrendered + ">"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ + styler = BOTH_STYLER; + } else if (!((MUIElement) o).isVisible()) { label += "<" + Messages.ComponentLabelProvider_invisible + ">"; //$NON-NLS-1$//$NON-NLS-2$ - styler = NOT_RENDERED_STYLER; + styler = NOT_VISIBLE_STYLER; } else if (!((MUIElement) o).isToBeRendered()) { label += "<" + Messages.ComponentLabelProvider_notrendered + ">"; //$NON-NLS-1$ //$NON-NLS-2$ styler = NOT_RENDERED_STYLER; diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java index d704b82c..486a16d7 100644 --- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java +++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java @@ -169,6 +169,7 @@ import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider; import org.eclipse.jface.databinding.viewers.TreeStructureAdvisor; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.jface.resource.StringConverter; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentPartitioner; @@ -197,6 +198,7 @@ import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.dnd.TransferData; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; @@ -971,6 +973,48 @@ public class ModelEditor { registerEditor(FragmentPackageImpl.Literals.STRING_MODEL_FRAGMENT, ContextInjectionFactory.make(StringModelFragment.class, context)); } + @Inject + public void setNotVisibleColor(@Preference("notVisibleColor") String color) { + RGB current = JFaceResources.getColorRegistry().getRGB(ComponentLabelProvider.NOT_VISIBLE_KEY); + + if (current == null || !current.equals(color)) { + JFaceResources.getColorRegistry().put(ComponentLabelProvider.NOT_VISIBLE_KEY, StringConverter.asRGB(color, new RGB(200, 200, 200))); + } + + if (viewer != null) { + viewer.refresh(); + viewer.getControl().redraw(); + } + } + + @Inject + public void setNotRenderedColor(@Preference("notRenderedColor") String color) { + RGB current = JFaceResources.getColorRegistry().getRGB(ComponentLabelProvider.NOT_RENDERED_KEY); + + if (current == null || !current.equals(color)) { + JFaceResources.getColorRegistry().put(ComponentLabelProvider.NOT_RENDERED_KEY, StringConverter.asRGB(color, new RGB(200, 200, 200))); + } + + if (viewer != null) { + viewer.refresh(); + viewer.getControl().redraw(); + } + } + + @Inject + public void setNotVisibleRenderedColor(@Preference("notVisibleAndRenderedColor") String color) { + RGB current = JFaceResources.getColorRegistry().getRGB(ComponentLabelProvider.NOT_VISIBLE_AND_RENDERED_KEY); + + if (current == null || !current.equals(color)) { + JFaceResources.getColorRegistry().put(ComponentLabelProvider.NOT_VISIBLE_AND_RENDERED_KEY, StringConverter.asRGB(color, new RGB(200, 200, 200))); + } + + if (viewer != null) { + viewer.refresh(); + viewer.getControl().redraw(); + } + } + public void registerEditor(EClass eClass, AbstractComponentEditor editor) { editorMap.put(eClass, editor); |