diff --git a/plugins/com.minres.scviewer.e4.application/plugin.xml b/plugins/com.minres.scviewer.e4.application/plugin.xml
index f585ee3..236f625 100644
--- a/plugins/com.minres.scviewer.e4.application/plugin.xml
+++ b/plugins/com.minres.scviewer.e4.application/plugin.xml
@@ -84,12 +84,5 @@
category="com.minres.scviewer.e4.application.preferences.scviewer">
-
-
-
-
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/EnableHover.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/EnableHover.java
index 2990c28..f5494a8 100644
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/EnableHover.java
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/EnableHover.java
@@ -4,45 +4,43 @@ package com.minres.scviewer.e4.application.handlers;
import java.util.LinkedList;
import java.util.List;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
-import org.eclipse.e4.core.contexts.Active;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.model.application.ui.menu.MHandledItem;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
-import org.eclipse.jface.preference.IPreferenceStore;
+import org.osgi.service.prefs.BackingStoreException;
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
-import com.opcoach.e4.preferences.ScopedPreferenceStore;
+@SuppressWarnings("restriction")
public class EnableHover {
static final String TAG_NAME = "EnableHover"; //$NON-NLS-1$
@Inject
MApplication application;
- @PostConstruct
- public void initialize(EModelService modelService) {
+ @Inject
+ @Optional
+ public void reactOnShowHoverChange(EModelService modelService, @Preference(value = PreferenceConstants.SHOW_HOVER) Boolean hover) {
List tags = new LinkedList<>();
tags.add(TAG_NAME);
List elements = modelService.findElements(application, null, MHandledItem.class, tags );
- // cover initialization stuff, sync it with code
- IPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
- boolean state = store.getBoolean(PreferenceConstants.SHOW_HOVER);
for( MHandledItem hi : elements ){
- hi.setSelected(state);
+ hi.setSelected(hover);
}
}
@Execute
- public void execute(@Active MPart part, @Active MWindow window, MHandledItem handledItem, EModelService modelService ) {
- IPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
- store.setValue(PreferenceConstants.SHOW_HOVER, handledItem.isSelected());
+ public void execute(MHandledItem handledItem, @Preference(nodePath = PreferenceConstants.PREFERENCES_SCOPE) IEclipsePreferences prefs ) {
+ try {
+ prefs.putBoolean(PreferenceConstants.SHOW_HOVER, handledItem.isSelected());
+ prefs.flush();
+ } catch (BackingStoreException e) {}
}
}
\ No newline at end of file
diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
index 81cb383..752a352 100644
--- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
+++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
@@ -31,17 +31,18 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
-import org.eclipse.core.internal.preferences.InstancePreferences;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.JobGroup;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.di.extensions.Preference;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.di.PersistState;
@@ -52,9 +53,7 @@ import org.eclipse.e4.ui.services.EMenuService;
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.StringConverter;
-import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -80,7 +79,7 @@ import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Widget;
-import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
import com.minres.scviewer.database.DataType;
import com.minres.scviewer.database.ITx;
@@ -108,7 +107,6 @@ import com.minres.scviewer.e4.application.internal.util.FileMonitor;
import com.minres.scviewer.e4.application.internal.util.IFileChangeListener;
import com.minres.scviewer.e4.application.internal.util.IModificationChecker;
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
-import com.opcoach.e4.preferences.ScopedPreferenceStore;
/**
* The Class WaveformViewerPart.
@@ -190,7 +188,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
@Inject
EPartService ePartService;
- IPreferenceStore store = new ScopedPreferenceStore(ConfigurationScope.INSTANCE, PreferenceConstants.PREFERENCES_SCOPE);
+ IEclipsePreferences store = null;
@Inject @Optional DesignBrowser designBrowser;
@@ -207,7 +205,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
private Composite myParent;
/** The files to load. */
- ArrayList filesToLoad;
+ ArrayList filesToLoad = new ArrayList<>();
/** The persisted state. */
Map persistedState;
@@ -227,6 +225,8 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
/** The file checker. */
IModificationChecker fileChecker;
+ private Boolean showHover;
+
/**
* Creates the composite.
*
@@ -235,11 +235,13 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
* @param dbFactory the db factory
*/
@PostConstruct
- public void createComposite(MPart part, Composite parent, IWaveformDbFactory dbFactory) {
+ public void createComposite(MPart part, Composite parent, IWaveformDbFactory dbFactory, @Preference(nodePath = PreferenceConstants.PREFERENCES_SCOPE) IEclipsePreferences prefs, @Preference(value = PreferenceConstants.SHOW_HOVER) Boolean hover) {
disposeListenerNumber += 1;
myPart = part;
myParent = parent;
+ store=prefs;
+ showHover=hover;
database = dbFactory.getDatabase();
database.addPropertyChangeListener(new PropertyChangeListener() {
@Override
@@ -256,7 +258,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
});
waveformPane = factory.createPanel(parent);
waveformPane.setMaxTime(0);
-
+ setupColors();
//set selection to empty selection when opening a new waveformPane
selectionService.setSelection(new StructuredSelection());
@@ -344,8 +346,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
});
zoomLevel = waveformPane.getZoomLevels();
- setupColors();
- checkForUpdates = store.getBoolean(PreferenceConstants.DATABASE_RELOAD);
+ checkForUpdates = store.getBoolean(PreferenceConstants.DATABASE_RELOAD, true);
filesToLoad = new ArrayList();
persistedState = part.getPersistedState();
Integer files = persistedState.containsKey(DATABASE_FILE + "S") //$NON-NLS-1$
@@ -374,23 +375,6 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
}
}
});
- store.addPropertyChangeListener(new IPropertyChangeListener() {
- @Override
- public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
- if (PreferenceConstants.DATABASE_RELOAD.equals(event.getProperty())) {
- checkForUpdates = (Boolean)event.getNewValue();
- fileChecker = null;
- if (checkForUpdates)
- fileChecker = fileMonitor.addFileChangeListener(WaveformViewer.this, filesToLoad,
- FILE_CHECK_INTERVAL);
- else
- fileMonitor.removeFileChangeListener(WaveformViewer.this);
- } else if (!PreferenceConstants.SHOW_HOVER.equals(event.getProperty())){
- setupColors();
- }
- }
- });
-
waveformPane.addDisposeListener(this);
waveformPane.getWaveformControl().setData(Constants.HELP_PROVIDER_TAG, new ToolTipHelpTextProvider() {
@@ -402,7 +386,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
waveformPane.getWaveformControl().setData(Constants.CONTENT_PROVIDER_TAG, new ToolTipContentProvider() {
@Override
public boolean createContent(Composite parent, Point pt) {
- if(!store.getBoolean(PreferenceConstants.SHOW_HOVER)) return false;
+ if(!showHover) return false;
List