Loading plugins/org.etsi.mts.tdl.tx.ui/plugin.xml +11 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,17 @@ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> </page> </extension> <extension point="org.eclipse.ui.preferencePages"> <page category="org.etsi.mts.tdl.TDLtx" class="org.etsi.mts.tdl.ui.contentassist.PropertyPage" id="org.etsi.mts.tdl.ui.contentassist.propertyPage" name="Content Assist" > </page> </extension> <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration"> <command Loading plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/PropertyPage.java 0 → 100644 +133 −0 Original line number Diff line number Diff line package org.etsi.mts.tdl.ui.contentassist; import java.util.Arrays; import java.util.Hashtable; import java.util.List; import java.util.Map; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.IWorkbenchPropertyPage; import org.eclipse.ui.preferences.ScopedPreferenceStore; public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String TRACE_UI = "TraceUI"; public static final String PREFERENCE_SCOPE = "org.etsi.mts.tdl.tx.ui"; private static final List<String> REQUIRED_SETTINGS = Arrays.asList(new String[] { /* TODO */ }); protected IAdaptable element; protected Map<FieldEditor, String> fields = new Hashtable<FieldEditor, String>(); public PropertyPage() { super(GRID); } // @Override public IAdaptable getElement() { return element; } // @Override public void setElement(IAdaptable element) { this.element = element; } @Override protected IPreferenceStore doGetPreferenceStore() { ProjectScope ps = new ProjectScope((IProject) this.element); ScopedPreferenceStore scopedStore = new ScopedPreferenceStore(ps, PREFERENCE_SCOPE); scopedStore.setDefault(TRACE_UI, false); return scopedStore; } @Override protected void initialize() { for (FieldEditor e : fields.keySet()) { String value = getPreferenceStore().getString(e.getPreferenceName()); fields.put(e, value); initialize(e.getPreferenceName(), value, e); } super.initialize(); } protected void initialize(String name, String value, FieldEditor e) { if (name.equals(TRACE_UI)) { } } @Override protected void addField(FieldEditor editor) { super.addField(editor); fields.put(editor, ""); } @Override public void propertyChange(PropertyChangeEvent event) { super.propertyChange(event); if (event.getProperty().equals(FieldEditor.VALUE)) { FieldEditor e = (FieldEditor) event.getSource(); String name = e.getPreferenceName(); Object valueObj = event.getNewValue(); String value = valueObj.toString(); fields.put(e, value); initialize(name, value, e); checkState(); } } @Override protected void checkState() { setErrorMessage(null); super.checkState(); } @Override protected void createFieldEditors() { Composite parent = getFieldEditorParent(); BooleanFieldEditor traceUI = new BooleanFieldEditor(TRACE_UI, "Trace Content Assist", parent); addField(traceUI); // TODO } private boolean isValid(FieldEditor e) { String name = e.getPreferenceName(); String value = fields.get(e); if (REQUIRED_SETTINGS.contains(name)) { if (value.isEmpty()) { setErrorMessage(String.format("%s must be selected!", e.getLabelText())); return false; } } return true; } @Override public void init(IWorkbench workbench) { setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE, PREFERENCE_SCOPE)); setDescription("Content Assist Configuration"); } } No newline at end of file plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/TDLtxProposalProvider.java +7 −2 Original line number Diff line number Diff line Loading @@ -8,10 +8,13 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.viewers.StyledString; import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.xtext.AbstractElement; import org.eclipse.xtext.AbstractRule; import org.eclipse.xtext.Assignment; Loading Loading @@ -139,8 +142,10 @@ public class TDLtxProposalProvider extends AbstractTDLtxProposalProvider { @Override public void createProposals(ContentAssistContext context, ICompletionProposalAcceptor acceptor) { traceCompletions = false; traceCompletionsInUI = false; IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, PropertyPage.PREFERENCE_SCOPE); boolean traceEnabled = store.getBoolean(PropertyPage.TRACE_UI); traceCompletions = traceEnabled; traceCompletionsInUI = traceEnabled; superRule = true; superReference = true; superContainment = true; Loading Loading
plugins/org.etsi.mts.tdl.tx.ui/plugin.xml +11 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,17 @@ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/> </page> </extension> <extension point="org.eclipse.ui.preferencePages"> <page category="org.etsi.mts.tdl.TDLtx" class="org.etsi.mts.tdl.ui.contentassist.PropertyPage" id="org.etsi.mts.tdl.ui.contentassist.propertyPage" name="Content Assist" > </page> </extension> <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration"> <command Loading
plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/PropertyPage.java 0 → 100644 +133 −0 Original line number Diff line number Diff line package org.etsi.mts.tdl.ui.contentassist; import java.util.Arrays; import java.util.Hashtable; import java.util.List; import java.util.Map; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.IWorkbenchPropertyPage; import org.eclipse.ui.preferences.ScopedPreferenceStore; public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String TRACE_UI = "TraceUI"; public static final String PREFERENCE_SCOPE = "org.etsi.mts.tdl.tx.ui"; private static final List<String> REQUIRED_SETTINGS = Arrays.asList(new String[] { /* TODO */ }); protected IAdaptable element; protected Map<FieldEditor, String> fields = new Hashtable<FieldEditor, String>(); public PropertyPage() { super(GRID); } // @Override public IAdaptable getElement() { return element; } // @Override public void setElement(IAdaptable element) { this.element = element; } @Override protected IPreferenceStore doGetPreferenceStore() { ProjectScope ps = new ProjectScope((IProject) this.element); ScopedPreferenceStore scopedStore = new ScopedPreferenceStore(ps, PREFERENCE_SCOPE); scopedStore.setDefault(TRACE_UI, false); return scopedStore; } @Override protected void initialize() { for (FieldEditor e : fields.keySet()) { String value = getPreferenceStore().getString(e.getPreferenceName()); fields.put(e, value); initialize(e.getPreferenceName(), value, e); } super.initialize(); } protected void initialize(String name, String value, FieldEditor e) { if (name.equals(TRACE_UI)) { } } @Override protected void addField(FieldEditor editor) { super.addField(editor); fields.put(editor, ""); } @Override public void propertyChange(PropertyChangeEvent event) { super.propertyChange(event); if (event.getProperty().equals(FieldEditor.VALUE)) { FieldEditor e = (FieldEditor) event.getSource(); String name = e.getPreferenceName(); Object valueObj = event.getNewValue(); String value = valueObj.toString(); fields.put(e, value); initialize(name, value, e); checkState(); } } @Override protected void checkState() { setErrorMessage(null); super.checkState(); } @Override protected void createFieldEditors() { Composite parent = getFieldEditorParent(); BooleanFieldEditor traceUI = new BooleanFieldEditor(TRACE_UI, "Trace Content Assist", parent); addField(traceUI); // TODO } private boolean isValid(FieldEditor e) { String name = e.getPreferenceName(); String value = fields.get(e); if (REQUIRED_SETTINGS.contains(name)) { if (value.isEmpty()) { setErrorMessage(String.format("%s must be selected!", e.getLabelText())); return false; } } return true; } @Override public void init(IWorkbench workbench) { setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE, PREFERENCE_SCOPE)); setDescription("Content Assist Configuration"); } } No newline at end of file
plugins/org.etsi.mts.tdl.tx.ui/src/org/etsi/mts/tdl/ui/contentassist/TDLtxProposalProvider.java +7 −2 Original line number Diff line number Diff line Loading @@ -8,10 +8,13 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.viewers.StyledString; import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.xtext.AbstractElement; import org.eclipse.xtext.AbstractRule; import org.eclipse.xtext.Assignment; Loading Loading @@ -139,8 +142,10 @@ public class TDLtxProposalProvider extends AbstractTDLtxProposalProvider { @Override public void createProposals(ContentAssistContext context, ICompletionProposalAcceptor acceptor) { traceCompletions = false; traceCompletionsInUI = false; IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE, PropertyPage.PREFERENCE_SCOPE); boolean traceEnabled = store.getBoolean(PropertyPage.TRACE_UI); traceCompletions = traceEnabled; traceCompletionsInUI = traceEnabled; superRule = true; superReference = true; superContainment = true; Loading