import org.eclipse.swt.dnd.DropTargetListener;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
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.taxeditor.featuretree.FeatureTreeLabelProvider;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.FeatureTreeSelectionDialog;
/**
* @author pplitzner
viewer.addDropSupport(ops, transfers, dropTargetListener);
}
- viewer.addSelectionChangedListener(viewerSelectionChangedListener);
+ if(viewerSelectionChangedListener!=null){
+ viewer.addSelectionChangedListener(viewerSelectionChangedListener);
+ }
- btnOpenFeatureTree.addSelectionListener(openFeatureTreeSelectionListener);
+ //add specific selection listener
+ if(openFeatureTreeSelectionListener!=null){
+ btnOpenFeatureTree.addSelectionListener(openFeatureTreeSelectionListener);
+ }
+ //add default selection listener
+ btnOpenFeatureTree.addSelectionListener(new SelectionAdapter(){
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ FeatureTree tree = FeatureTreeSelectionDialog.select(getDisplay().getActiveShell(),
+ null);
+ if(tree!=null){
+ setSelectedTree(tree, null);
+ getText_title().setEnabled(false);
+ }
+ }
+ });
}
public void setSelectedTree(FeatureTree featureTree, ModifyListener modifyListener) {
getViewer().setInput(featureTree);
- getText_title().removeModifyListener(modifyListener);
+ Listener[] listeners = getText_title().getListeners(SWT.Modify);
+ for (Listener listener : listeners) {
+ getText_title().removeListener(SWT.Modify, listener);
+ }
getText_title().setText(featureTree.getTitleCache());
- getText_title().addModifyListener(modifyListener);
+ for (Listener listener : listeners) {
+ getText_title().addListener(SWT.Modify, listener);
+ }
getText_title().setEnabled(true);
text_title.setEnabled(true);
}