import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
-import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.dialog.selection.FeatureTreeSelectionDialog;
/**
* @author pplitzner
* @since Jun 19, 2017
- *
*/
-public class FeatureTreeEditorComposite extends Composite{
+public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Composite{
- private FeatureTree featureTree;
+ private TermTree<T> featureTree;
private Label label_title;
private Text text_title;
ISelectionChangedListener viewerSelectionChangedListener,
IDirtyMarkable dirtyMarkable,
ModifyListener textModifyListener) {
+ init(label,
+ null,
+ dragSourceListener,
+ dropTargetListener,
+ null,
+ viewerSelectionChangedListener,
+ null,
+ dirtyMarkable,
+ textModifyListener);
+ }
+
+ public void init(String label, TermType termType,
+ DragSourceListener dragSourceListener,
+ DropTargetListener dropTargetListener,
+ ISelectionChangedListener viewerSelectionChangedListener,
+ IDirtyMarkable dirtyMarkable,
+ ModifyListener textModifyListener) {
this.init(label,
+ termType,
dragSourceListener,
dropTargetListener,
null,
ISelectionChangedListener viewerSelectionChangedListener,
SelectionListener openFeatureTreeSelectionListener,
ModifyListener textModifyListener) {
- init(null, dragSourceListener,
+ init(null,
+ null,
+ dragSourceListener,
dropTargetListener,
transfers,
viewerSelectionChangedListener,
null,
textModifyListener);
}
- private void init(String label, DragSourceListener dragSourceListener,
+ private void init(String label,
+ TermType termType,
+ DragSourceListener dragSourceListener,
DropTargetListener dropTargetListener,
Transfer[] transfers,
ISelectionChangedListener viewerSelectionChangedListener,
btnOpenFeatureTree.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
- FeatureTree tree = FeatureTreeSelectionDialog.select(getDisplay().getActiveShell(),
- null);
+ TermTree<T> tree = FeatureTreeSelectionDialog.select(getDisplay().getActiveShell(),
+ null, termType);
if(tree!=null){
setSelectedTree(tree);
if(dirtyMarkable!=null){
}
}
- public void setSelectedTree(FeatureTree featureTree) {
+ public void setSelectedTree(TermTree<T> featureTree) {
this.featureTree = featureTree;
-
viewer.setInput(featureTree);
-
- Listener[] listeners = text_title.getListeners(SWT.Modify);
- for (Listener listener : listeners) {
- text_title.removeListener(SWT.Modify, listener);
- }
- text_title.setText(featureTree!=null?featureTree.getTitleCache():"");
- for (Listener listener : listeners) {
- text_title.addListener(SWT.Modify, listener);
- }
+ StoreUtil.setTextWithoutModifyListeners(text_title, featureTree!=null?featureTree.getTitleCache():"");
}
- public FeatureTree getFeatureTree() {
+ public TermTree<T> getFeatureTree() {
return featureTree;
}