</fragment>
</extension>
<extension
- point="org.eclipse.ui.preferencePages">
+ point="eu.etaxonomy.taxeditor.store.preferencePage">
<page
category="eu.etaxonomy.taxeditor.preferences.bulkeditor.general"
class="eu.etaxonomy.taxeditor.bulkeditor.preference.BulkEditorMarkerPreferencePage"
package eu.etaxonomy.taxeditor.bulkeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* @author n.hoffmann
* @created Dec 13, 2010
* @version 1.0
*/
-public class BulkEditorGeneralPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+public class BulkEditorGeneralPreferencePage extends FieldEditorPreferencePageE4 {
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
@Override
protected void createFieldEditors() {
addField(new BooleanFieldEditor(IPreferenceKeys.BULK_EDITOR_OCCURRENCE_SHOW_FIELD_UNITS,
getFieldEditorParent()));
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
-
}
package eu.etaxonomy.taxeditor.bulkeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.TermStore;
* @created 17.08.2009
* @version 1.0
*/
-public class BulkEditorMarkerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+public class BulkEditorMarkerPreferencePage extends FieldEditorPreferencePageE4 {
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
@Override
protected void createFieldEditors() {
if(CdmStore.isActive()){
<?eclipse version="3.2"?>
<plugin>
<extension-point id="eu.etaxonomy.taxeditor.store.cdmViewer" name="Cdm Viewer" schema="schema/eu.etaxonomy.taxeditor.store.cdmViewer.exsd"/>
+ <extension-point id="eu.etaxonomy.taxeditor.store.preferencePage" name="Preference Page" schema="schema/eu.etaxonomy.taxeditor.store.preferencePage.exsd"/>
<extension
point="org.eclipse.ui.menus">
<menuContribution
</fragment>
</extension>
<extension
- point="org.eclipse.ui.preferencePages">
- <page
+ point="eu.etaxonomy.taxeditor.store.preferencePage">
+<page
category="eu.etaxonomy.taxeditor.preferences.general"
class="eu.etaxonomy.taxeditor.preference.DebugPreferences"
id="eu.etaxonomy.taxeditor.preference.DebugPreferences"
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="eu.etaxonomy.taxeditor.store" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="eu.etaxonomy.taxeditor.store" id="eu.etaxonomy.taxeditor.store.preferencePage" name="Preference Page"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <element ref="page"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="page">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ a unique name that will be used to identify this page.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name that will be used in the UI for this page.
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ a name of the fully qualified class that implements
+<samp>eu.etaxonomy.taxeditor.preference.IE4PreferencePage</samp>.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":eu.etaxonomy.taxeditor.preference.IE4PreferencePage"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="category" type="string">
+ <annotation>
+ <documentation>
+ a path indicating the location of the page in the preference tree. The path may either be a parent node ID or a sequence
+ of IDs separated by '/', representing the full path from the root node.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="identifier" basedOn="eu.etaxonomy.taxeditor.store.preferencePage/page/@id"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
import javax.inject.Inject;
import javax.inject.Named;
+import org.eclipse.e4.core.commands.ECommandService;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.e4.ui.di.UIEventTopic;
@Inject
private static IEventBroker eventBroker;
+ @Inject
+ private static ECommandService commandService;
+
@PostConstruct
public void create(){
//nothing
eventBroker.post(topic, data);
}
+ public static ECommandService getCommandService() {
+ return commandService;
+ }
+
@Inject
@Optional
private void updateCurrentActiveShell(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell){
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* @author k.luther
* @date 01.11.2016
*
*/
-public class AdminGeneralPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
-
-
- }
+public class AdminGeneralPreferences extends FieldEditorPreferencePageE4 {
/* (non-Javadoc)
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+++ /dev/null
-/**
-* Copyright (C) 2016 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.preference;
-
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * @author k.luther
- * @date 01.11.2016
- *
- */
-public class AdminPreferencesPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
- @Override
- protected void createFieldEditors() {
-
- }
-
-
-}
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
* @date 21.07.2014
*
*/
-public class ChecklistEditorGeneralPreference extends PreferencePage implements IWorkbenchPreferencePage {
+public class ChecklistEditorGeneralPreference extends PreferencePage {
boolean isEditorActivated;
Composite child ;
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
- * ()
- */
+
@Override
protected Control createContents(Composite parent) {
return composite;
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- }
-
}
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* @author k.luther
* @date 01.04.2016
*
*/
-public class DebugPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
-
- }
+public class DebugPreferences extends FieldEditorPreferencePageE4 {
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
@Override
protected void createFieldEditors() {
addField(new BooleanFieldEditor(IPreferenceKeys.IS_SHOW_UP_WIDGET_IS_DISPOSED,
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
import eu.etaxonomy.cdm.model.description.FeatureTree;
* @created Sep 16, 2010
* @version 1.0
*/
-public class DefaultFeatureTreePreferenecs extends CdmPreferencePage implements IWorkbenchPreferencePage {
+public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
private FeatureTree defaultFeatureTreeForTextualDescription;
private FeatureTree defaultFeatureTreeForStructuredDescription;
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
/** {@inheritDoc} */
@Override
protected Control createContents(Composite parent) {
}
}
- /** {@inheritDoc} */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
/** {@inheritDoc} */
@Override
public boolean performOk() {
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* <p>DescriptionPreferences class.</p>
* @created 20.05.2008
* @version 1.0
*/
-public class DescriptionPreferences extends FieldEditorPreferencePage implements
- IWorkbenchPreferencePage {
+public class DescriptionPreferences extends FieldEditorPreferencePageE4 {
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.desc"{trunked}</code> */
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.description";
- /** {@inheritDoc} */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
-
- }
-
@Override
protected void createFieldEditors() {
addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS,
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+/**
+ * Interface for e4 compatible preference extension point.
+ * @author pplitzner
+ * @date 14.02.2018
+ *
+ */
+public interface IE4PreferencePage {
+
+}
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.SelectionEvent;
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.eclipse.ui.PlatformUI;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
/**
* @author n.hoffmann
* @created Dec 3, 2010
* @version 1.0
*/
-public class LanguageEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
+public class LanguageEditorPreferencePage extends CdmPreferencePage {
private CCombo combo;
PreferencesUtil preferencesUtil = new PreferencesUtil();
private boolean isSelectionChanged = false;
private int initalSelectionIndex;
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
@Override
protected Control createContents(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
}
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performOk()
- */
@Override
public boolean performOk() {
try {
import java.util.List;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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 eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @created Dec 3, 2010
* @version 1.0
*/
-public class LanguageRepresentationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
+public class LanguageRepresentationPreferencePage extends CdmPreferencePage{
private boolean isMultilanguageTextEditingCapability;
private Language globalLanguage;
return composite;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
@Override
protected Control createContents(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
}
- /**
- * @param container
- */
private void createSetDefaultLanguage(Composite parent) {
globalLanguage = PreferencesUtil.getGlobalLanguage();
});
}
- /**
- *
- */
private void createSetMultiLanguageTextEditingCapability(Composite parent) {
isMultilanguageTextEditingCapability = getPreferenceStore().getBoolean(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);
});
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performOk()
- */
@Override
public boolean performOk() {
getPreferenceStore().setValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY, isMultilanguageTextEditingCapability);
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.preference;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
/**
* <p>MatchingPreferences class.</p>
* @created Jan 22, 2010
* @version 1.0
*/
-public class MatchingPreferences extends PreferencePage implements
- IWorkbenchPreferencePage {
+public class MatchingPreferences extends CdmPreferencePage {
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
/** {@inheritDoc} */
@Override
protected Control createContents(Composite parent) {
return container;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- /** {@inheritDoc} */
- public void init(IWorkbench workbench) {
-
- }
-
-
}
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* @author pplitzner
* @date 13.02.2014
*
*/
-public class MediaPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
+public class MediaPreferences extends FieldEditorPreferencePageE4 {
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
@Override
protected void createFieldEditors() {
addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_ADVANCED_MEDIA_SECTION,
package eu.etaxonomy.taxeditor.preference;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* @author n.hoffmann
* @created Feb 4, 2011
* @version 1.0
*/
-public class MobotOpenUrlPreferences extends FieldEditorPreferencePage implements
- IWorkbenchPreferencePage {
+public class MobotOpenUrlPreferences extends FieldEditorPreferencePageE4 {
@Override
}
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
}
package eu.etaxonomy.taxeditor.preference;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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 eu.etaxonomy.cdm.model.metadata.CdmPreference;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
-public class NameDetailsViewConfiguration extends PreferencePage implements IWorkbenchPreferencePage {
- boolean isSimpleDetailsViewActivated;
+public class NameDetailsViewConfiguration extends CdmPreferencePage {
+
+ boolean isSimpleDetailsViewActivated;
boolean isUseLocalSettings;
Composite child ;
Composite localSettings ;
- @Override
- public void init(IWorkbench workbench) {
-
- }
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
- * ()
- */
@Override
protected Control createContents(Composite parent) {
label.setText("The CDM settings don't allow to set the preferences for the display of name details locally. If you need to make local settings, please ask an administrator.");
}
return composite;
-
-
-
}
}
package eu.etaxonomy.taxeditor.preference;\r
\r
import org.eclipse.jface.dialogs.MessageDialog;\r
-import org.eclipse.jface.preference.PreferencePage;\r
import org.eclipse.swt.SWT;\r
import org.eclipse.swt.events.SelectionAdapter;\r
import org.eclipse.swt.events.SelectionEvent;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.swt.widgets.Control;\r
import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.ui.IWorkbench;\r
-import org.eclipse.ui.IWorkbenchPreferencePage;\r
\r
import eu.etaxonomy.taxeditor.l10n.Messages;\r
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
\r
-public class OrderPreferences extends PreferencePage implements IWorkbenchPreferencePage {\r
+public class OrderPreferences extends CdmPreferencePage {\r
\r
\r
boolean isNaturalOrderActivated;\r
boolean isRestoreTaxonNavigator;\r
boolean isSelectionChanged = false;\r
boolean isStrictlyAlphabeticallyOrdered;\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see\r
- * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors\r
- * ()\r
- */\r
+\r
@Override\r
protected Control createContents(Composite parent) {\r
\r
}\r
\r
\r
- @Override\r
- public void init(IWorkbench workbench) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.preference.PreferencePage#performOk()\r
- */\r
@Override\r
public boolean performOk() {\r
if(isSelectionChanged){\r
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.api.application.ICdmRepository;
import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @date 13.02.2014
*
*/
-public class SpecimenOrObservationPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+public class SpecimenOrObservationPreferences extends FieldEditorPreferencePageE4 {
public SpecimenOrObservationPreferences(){
super();
@Override
- public void init(IWorkbench workbench) {
+ public void init() {
+ super.init();
// setPreferenceStore(PreferencesUtil.getPreferenceStore());
ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
if (controller != null){
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* <p>
* @version 1.0
*/
public class TaxonomicEditorGeneralPreferences extends
- FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+ FieldEditorPreferencePageE4 {
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
- * ()
- */
@Override
protected void createFieldEditors() {
addField(new BooleanFieldEditor(IPreferenceKeys.SHOW_DEBUG_INFORMATION,
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
}
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.preference;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
/**
* <p>TaxonomicPreferences class.</p>
* @created 20.05.2008
* @version 1.0
*/
-public class TaxonomicPreferences extends PreferencePage implements
- IWorkbenchPreferencePage {
+public class TaxonomicPreferences extends CdmPreferencePage {
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.taxonomic.prefer"{trunked}</code> */
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.taxonomic.preferences";
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
- */
+
/** {@inheritDoc} */
@Override
protected Control createContents(Composite parent) {
-
+
Composite container = new Composite(parent, SWT.NULL);
container.setLayout(new GridLayout());
return container;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- /** {@inheritDoc} */
- public void init(IWorkbench workbench) {
-
- }
}
+++ /dev/null
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.preference;
-
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * @author a.oppermann
- * @date 13.08.2014
- *
- */
-public class TemplatePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
- @Override
- protected void createFieldEditors() {
- // addField(new BooleanFieldEditor(IPreferenceKeys.IS_RL, "Rote Liste 2020", getFieldEditorParent()));
- }
-
-}
/**
* Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
+ * European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
- *
+ *
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.preference;
import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
/**
* @author n.hoffmann
* @created Oct 12, 2011
* @version 1.0
*/
-public class TypeDesignationPreferences extends FieldEditorPreferencePage
- implements IWorkbenchPreferencePage {
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
+public class TypeDesignationPreferences extends FieldEditorPreferencePageE4 {
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
- */
@Override
protected void createFieldEditors() {
addField(new BooleanFieldEditor(IPreferenceKeys.ADD_TYPES_TO_ALL_NAMES,
import java.util.Map;
import org.eclipse.jface.preference.ComboFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.widgets.Combo;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
import eu.etaxonomy.cdm.strategy.match.MatchMode;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @created Jan 22, 2010
* @version 1.0
*/
-public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity> extends FieldEditorPreferencePage implements
- IWorkbenchPreferencePage {
+public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity> extends FieldEditorPreferencePageE4 {
/**
* Fields that will be excluded from the display
protected Map<String, Combo> matchModeCombos = new HashMap<String, Combo>();
- @Override
- public void init(IWorkbench workbench) {
- setPreferenceStore(PreferencesUtil.getPreferenceStore());
- }
-
/**
* {@inheritDoc}
*/
package eu.etaxonomy.taxeditor.preference.matching;
-import org.eclipse.ui.IWorkbench;
-
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
/** {@inheritDoc} */
@Override
- public void init(IWorkbench workbench) {
- super.init(workbench);
+ public void init() {
+ super.init();
clazz = TaxonName.class;
try {
package eu.etaxonomy.taxeditor.preference.matching;
-import org.eclipse.ui.IWorkbench;
-
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
/** {@inheritDoc} */
@Override
- public void init(IWorkbench workbench) {
- super.init(workbench);
+ public void init() {
+ super.init();
clazz = Reference.class;
try {
package eu.etaxonomy.taxeditor.preference.matching;
-import org.eclipse.ui.IWorkbench;
-
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.MatchException;
/** {@inheritDoc} */
@Override
- public void init(IWorkbench workbench) {
- super.init(workbench);
+ public void init() {
+ super.init();
clazz = TeamOrPersonBase.class;
try {
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.handlers.IHandlerService;
* @created 12.06.2009
* @version 1.0
*/
-public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends CdmPreferencePage implements
- IWorkbenchPreferencePage, IConversationEnabled{
+public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends CdmPreferencePage implements IConversationEnabled{
private Button toggleButton;
protected HashMap<DefinedTermBase<T>, Button> menuButtons;
super(title);
vocabularyIsEditable = editable;
setDescription(description);
+ init();
}
protected List<T> getTerms(){
/** {@inheritDoc} */
@Override
- public void init(IWorkbench workbench) {
+ public void init() {
setPreferenceStore(PreferencesUtil.getPreferenceStore());
if(!CdmStore.isActive()) {
MessagingUtils.noDataSourceWarningDialog(null);
import org.eclipse.jface.resource.ImageDescriptor;
import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.preference.IE4PreferencePage;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @date 30 Jul 2015
*
*/
-public abstract class CdmPreferencePage extends PreferencePage implements ICdmEntitySessionEnabled {
+public abstract class CdmPreferencePage extends PreferencePage implements ICdmEntitySessionEnabled, IE4PreferencePage {
private ICdmEntitySession previousCdmEntitySession;
private boolean isApply;
public CdmPreferencePage() {
- initSession();
+ this(null, null);
}
public CdmPreferencePage(String title) {
- super(title);
- initSession();
+ this(title, null);
}
public CdmPreferencePage(String title, ImageDescriptor image) {
super(title, image);
initSession();
+ init();
+ }
+
+ public void init() {
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
}
private void initSession() {
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference.menu;
+
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+
+import eu.etaxonomy.taxeditor.preference.IE4PreferencePage;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author pplitzner
+ * @date 14.02.2018
+ *
+ */
+public abstract class FieldEditorPreferencePageE4 extends FieldEditorPreferencePage implements IE4PreferencePage{
+
+ public FieldEditorPreferencePageE4() {
+ init();
+ }
+
+ protected void init(){
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
+ }
+}
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.ComboFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.api.application.ICdmRepository;
import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
* <p>
* @author p.ciardelli
* @created 16.09.2008
*/
-public class NomenclaturalCodePreferences extends FieldEditorPreferencePage
- implements IWorkbenchPreferencePage {
+public class NomenclaturalCodePreferences extends FieldEditorPreferencePageE4 {
@Override
protected void createFieldEditors() {
*
* Initialize the preference page
*/
- @Override
- public void init(IWorkbench workbench) {
-
- setPreferenceStore(TaxeditorStorePlugin.getDefault()
- .getPreferenceStore());
-
+ @Override
+ public void init() {
+ super.init();
ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
if (controller != null){
IPreferenceService service = controller.getPreferenceService();
package eu.etaxonomy.taxeditor.preference.menu;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
* @created 25.06.2009
* @version 1.0
*/
-public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTerm> implements
- IWorkbenchPreferencePage {
+public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTerm> {
- /**
- * <p>Constructor for PresenceAbsenceMenuPreferences.</p>
- */
public PresenceAbsenceMenuPreferences() {
super("Distribution Status Preferences",
"Choose which distribution states should be shown.",
false);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
- */
/** {@inheritDoc} */
@Override
protected TermType getTermType() {
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPreferencePage;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.name.Rank;
* @created 17.09.2008
* @version 1.0
*/
-public class RankMenuPreferences extends AbstractMenuPreferences<Rank> implements
- IWorkbenchPreferencePage {
+public class RankMenuPreferences extends AbstractMenuPreferences<Rank> {
/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.rank"{trunked}</code> */
public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.ranks";
false);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#createAdditionalContent(org.eclipse.swt.widgets.Composite)
- */
/** {@inheritDoc} */
@Override
protected void createAdditionalContent(Composite container) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
- */
/** {@inheritDoc} */
@Override
protected TermType getTermType() {
import org.eclipse.core.commands.NotEnabledException;
import org.eclipse.core.commands.NotHandledException;
import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.e4.core.commands.ECommandService;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.handlers.IHandlerService;
+import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.LoginManager;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
}
private void updateButtonEnabledState() {
- ICommandService commandService = TaxeditorStorePlugin.getDefault().getWorkbench().getService(ICommandService.class);
+ ECommandService commandService = EventUtility.getCommandService();
Command command = commandService.getCommand(commandId);
if(!button.isDisposed()){
button.setEnabled(command != null && command.isEnabled());
<elements xsi:type="commands:Command" xmi:id="_RxxNsB7EEeeRW_RHu3JLqQ" elementId="org.eclipse.ui.edit.copy" commandName="%command.label.9"/>
<elements xsi:type="commands:Command" xmi:id="_TmIHQB7EEeeRW_RHu3JLqQ" elementId="org.eclipse.ui.edit.paste" commandName="%command.label.10"/>
<elements xsi:type="commands:Command" xmi:id="_WOTDYB7EEeeRW_RHu3JLqQ" elementId="org.eclipse.ui.edit.delete" commandName="%command.label.11"/>
- <elements xsi:type="commands:Command" xmi:id="_l9kXoB7PEeeC-JvycL9ysA" elementId="org.eclipse.ui.window.preferences" commandName="%command.label.12"/>
+ <elements xsi:type="commands:Command" xmi:id="_l9kXoB7PEeeC-JvycL9ysA" elementId="eu.etaxonomy.taxeditor.workbench.preferences" commandName="%command.label.12"/>
<elements xsi:type="commands:Command" xmi:id="_hooiQB7QEeeC-JvycL9ysA" elementId="org.eclipse.ui.newWizard" commandName="%command.label.21"/>
<elements xsi:type="commands:Command" xmi:id="_UZ2zYCQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.workbench.help.aboutPlatform" commandName="%command.name.0"/>
<elements xsi:type="commands:Command" xmi:id="_UZ_WQCQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.workbench.help.parser" commandName="%command.name"/>
<elements xsi:type="commands:Handler" xmi:id="_dBGosFp0Eee4PsIXei-TMg" elementId="eu.etaxonomy.taxeditor.workbench.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_X-56IFp0Eee4PsIXei-TMg"/>
<elements xsi:type="commands:Handler" xmi:id="_UvfiQL2lEeeyWfw0n8-ICQ" elementId="eu.etaxonomy.taxeditor.workbench.handler.CollapseHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.handler.CollapseHandler" command="_S00XkL2gEeeyWfw0n8-ICQ"/>
<elements xsi:type="commands:Handler" xmi:id="_bkScIL4vEeewU62zpvPllA" elementId="eu.etaxonomy.taxeditor.workbench.handler.ExpandHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.handler.ExpandHandler" command="_Z0st0L4vEeewU62zpvPllA"/>
+ <elements xsi:type="commands:Handler" xmi:id="_YExMQBC4EeihNvjJtDdlyA" elementId="eu.etaxonomy.taxeditor.workbench.handler.ExitHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.handler.ExitHandler" command="_V040UBC4EeihNvjJtDdlyA"/>
+ <elements xsi:type="commands:Handler" xmi:id="_-aK0EBFsEeiJUct092UvwA" elementId="eu.etaxonomy.taxeditor.workbench.handler.OpenPreferencesHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.handler.OpenPreferencesHandler" command="_l9kXoB7PEeeC-JvycL9ysA"/>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_Z4f0kFsaEeebk7BsM35KOg" featurename="children" parentElementId="org.eclipse.ui.contexts.dialogAndWindow">
<elements xsi:type="commands:BindingContext" xmi:id="_5pEDMFsaEeebk7BsM35KOg" elementId="eu.etaxonomy.taxeditor.workbench.bindingcontext" name="Taxonomic Editor Keybinding Context"/>
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.workbench.handler;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Named;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.preference.IPreferencePage;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.jface.preference.PreferenceManager;
+import org.eclipse.jface.preference.PreferenceNode;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * @author pplitzner
+ * @date 14.02.2018
+ *
+ */
+public class OpenPreferencesHandler {
+
+ private Logger logger = Logger.getLogger(OpenPreferencesHandler.class);
+
+ private List<PageWrapper> pagesYetToBeAdded = new ArrayList<>();
+
+ private Map<String, PreferenceNode> idToNodeMap = new HashMap<>();
+
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
+ PreferenceManager manager = new PreferenceManager('/');
+
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] extensions = reg
+ .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.preferencePage"); //$NON-NLS-1$
+ for (IConfigurationElement configElement : extensions) {
+ if(configElement.getName().equals("page")){ //$NON-NLS-1$
+ Object o;
+ try {
+ o = configElement.createExecutableExtension("class");
+ if(o instanceof IPreferencePage){
+ IPreferencePage page = (IPreferencePage) o;
+ String category = configElement.getAttribute("category");
+ String id = configElement.getAttribute("id");
+ String name = configElement.getAttribute("name");
+
+ page.setTitle(name);
+ //add all root nodes
+ if(category!=null){
+ PreferenceNode node = new PreferenceNode(id, page);
+ manager.addToRoot(node);
+ idToNodeMap.put(id, node);
+ }
+ //child nodes will be handled later
+ else{
+ pagesYetToBeAdded.add(new PageWrapper(page, category, id, name));
+ }
+ }
+ } catch (CoreException e) {
+ logger.error(String.format("Failed to initialize preference page for config element: %s", configElement), e);
+ }
+ }
+ }
+
+// pagesYetToBeAdded.entrySet().stream().
+// //filter stream to only contain parent nodes
+// filter(entry->{
+// PageWrapper pageWrapper = entry.getValue();
+// PreferenceNode node = new PreferenceNode(pageWrapper.getId(), pageWrapper.getPage());
+// if(StringUtils.isEmpty(pageWrapper.getCategory())){
+// manager.addToRoot(node);
+// return true;
+// }
+// return false;
+// })
+// .map(parent->addPage(parent.getValue(), manager));
+
+
+ Collections.sort(pagesYetToBeAdded, new PreferenceNodeComparator());
+
+ int size = pagesYetToBeAdded.size();
+ while(!pagesYetToBeAdded.isEmpty()){
+
+ Iterator<PageWrapper> iterator = pagesYetToBeAdded.iterator();
+ while(iterator.hasNext()){
+ PageWrapper pageWrapper = iterator.next();
+ if(addPage(pageWrapper)){
+ iterator.remove();
+ }
+ }
+ if(size==pagesYetToBeAdded.size()){
+ //avoid potential endless loop
+ break;
+ }
+ size = pagesYetToBeAdded.size();
+ }
+ PreferenceDialog dialog = new PreferenceDialog(shell, manager);
+ dialog.create();
+ dialog.getTreeViewer().expandAll();
+ dialog.open();
+ }
+
+ private boolean addPage(PageWrapper pageWrapper){
+ PreferenceNode node = new PreferenceNode(pageWrapper.getId(), pageWrapper.getPage());
+ idToNodeMap.put(pageWrapper.getId(), node);
+ PreferenceNode parent = idToNodeMap.get(pageWrapper.getCategory());
+ if(parent!=null){
+ parent.add(node);
+ return true;
+ }
+ return false;
+ }
+
+ private class PreferenceNodeComparator implements Comparator<PageWrapper>{
+
+ @Override
+ public int compare(PageWrapper o1, PageWrapper o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+
+ }
+
+ private class PageWrapper{
+ IPreferencePage page;
+ String category;
+ String id;
+ String name;
+ public PageWrapper(IPreferencePage page, String category, String id, String name) {
+ super();
+ this.page = page;
+ this.category = category;
+ this.id = id;
+ this.name = name;
+ }
+ public IPreferencePage getPage() {
+ return page;
+ }
+ public String getCategory() {
+ return category;
+ }
+ public String getId() {
+ return id;
+ }
+ public String getName() {
+ return name;
+ }
+ }
+}