OPENNLP-465 Now it is triggered by preferences changes as well.
diff --git a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java
index ea36f74..5dd86a2 100644
--- a/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java
+++ b/caseditor-opennlp-plugin/src/main/java/org/apache/opennlp/caseditor/sentdetect/SentenceContentProvider.java
@@ -25,6 +25,7 @@
import opennlp.tools.util.Span;
import org.apache.opennlp.caseditor.AbstractCasChangeTrigger;
+import org.apache.opennlp.caseditor.OpenNLPPlugin;
import org.apache.opennlp.caseditor.OpenNLPPreferenceConstants;
import org.apache.opennlp.caseditor.PotentialAnnotation;
import org.apache.opennlp.caseditor.namefinder.EntityContentProvider;
@@ -38,6 +39,8 @@
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
@@ -54,11 +57,26 @@
}
}
+ /**
+ * Listeners which triggers a run of the name finder when a related preferences changed.
+ */
+ private class PreferenceChangeTrigger implements IPropertyChangeListener{
+
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ // Filter all changes of preferences which do not belong to this plugin
+ if (event.getProperty().startsWith(OpenNLPPlugin.ID)) {
+ triggerSentenceDetector();
+ }
+ }
+ }
+
private SentenceDetectorViewPage sentenceDetectorView;
private AnnotationEditor editor;
private ICasDocumentListener casChangedTrigger;
+ private PreferenceChangeTrigger preferenceChangeTrigger = new PreferenceChangeTrigger();
private SentenceDetectorJob sentenceDetector;
@@ -158,6 +176,10 @@
});
}
});
+
+ IPreferenceStore store = editor.getCasDocumentProvider().getTypeSystemPreferenceStore(editor.getEditorInput());
+
+ store.addPropertyChangeListener(preferenceChangeTrigger);
}
@Override
@@ -272,5 +294,7 @@
@Override
public void dispose() {
+ IPreferenceStore store = editor.getCasDocumentProvider().getTypeSystemPreferenceStore(editor.getEditorInput());
+ store.removePropertyChangeListener(preferenceChangeTrigger);
}
}