2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.taxeditor
.featuretree
.e4
;
11 import org
.eclipse
.jface
.viewers
.ISelectionChangedListener
;
12 import org
.eclipse
.jface
.viewers
.TreeViewer
;
13 import org
.eclipse
.swt
.SWT
;
14 import org
.eclipse
.swt
.dnd
.DND
;
15 import org
.eclipse
.swt
.dnd
.DragSourceListener
;
16 import org
.eclipse
.swt
.dnd
.DropTargetListener
;
17 import org
.eclipse
.swt
.dnd
.Transfer
;
18 import org
.eclipse
.swt
.events
.SelectionListener
;
19 import org
.eclipse
.swt
.layout
.GridData
;
20 import org
.eclipse
.swt
.layout
.GridLayout
;
21 import org
.eclipse
.swt
.widgets
.Button
;
22 import org
.eclipse
.swt
.widgets
.Composite
;
23 import org
.eclipse
.swt
.widgets
.Label
;
24 import org
.eclipse
.swt
.widgets
.Text
;
25 import org
.eclipse
.swt
.widgets
.Tree
;
27 import eu
.etaxonomy
.taxeditor
.featuretree
.FeatureNodeTransfer
;
28 import eu
.etaxonomy
.taxeditor
.featuretree
.FeatureTreeContentProvider
;
29 import eu
.etaxonomy
.taxeditor
.featuretree
.FeatureTreeLabelProvider
;
30 import eu
.etaxonomy
.taxeditor
.model
.ImageResources
;
37 public class FeatureTreeEditorComposite
extends Composite
{
39 private Label label_title
;
40 private Text text_title
;
41 private Button btnOpenFeatureTree
;
42 private TreeViewer viewer
;
43 private Button button_add
;
44 private Button button_remove
;
46 public FeatureTreeEditorComposite(Composite parent
, int style
) {
48 setLayout(new GridLayout(2, false));
50 Composite composite_treeTitle
= new Composite(this, SWT
.NULL
);
51 composite_treeTitle
.setLayoutData(new GridData(SWT
.FILL
, SWT
.TOP
, true,
53 GridLayout gl_composite_treeTitle
= new GridLayout(2, false);
54 gl_composite_treeTitle
.marginWidth
= 0;
55 composite_treeTitle
.setLayout(gl_composite_treeTitle
);
57 label_title
= new Label(composite_treeTitle
, SWT
.NULL
);
58 label_title
.setLayoutData(new GridData(SWT
.RIGHT
, SWT
.CENTER
, false, false, 1, 1));
59 label_title
.setText("Feature Tree");
61 text_title
= new Text(composite_treeTitle
, SWT
.BORDER
);
62 text_title
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
64 btnOpenFeatureTree
= new Button(this, SWT
.NONE
);
65 btnOpenFeatureTree
.setLayoutData(new GridData(SWT
.CENTER
, SWT
.CENTER
, false, false, 1, 1));
66 btnOpenFeatureTree
.setToolTipText("Open Tree");
67 btnOpenFeatureTree
.setImage(ImageResources
.getImage(ImageResources
.BROWSE_ICON
));
69 viewer
= new TreeViewer(this);
70 Tree tree
= viewer
.getTree();
71 tree
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true, 1, 1));
72 viewer
.getControl().setLayoutData(
73 new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
75 Composite composite_buttons
= new Composite(this,
77 composite_buttons
.setLayoutData(new GridData(SWT
.LEFT
, SWT
.TOP
, false,
79 composite_buttons
.setLayout(new GridLayout());
81 button_add
= new Button(composite_buttons
, SWT
.PUSH
);
82 button_add
.setLayoutData(new GridData(SWT
.CENTER
, SWT
.CENTER
, false, false, 1, 1));
83 button_add
.setToolTipText("Add a feature to this feature tree.");
84 button_add
.setImage(ImageResources
.getImage(ImageResources
.ADD_EDIT
));
85 button_remove
= new Button(composite_buttons
, SWT
.PUSH
);
86 button_remove
.setLayoutData(new GridData(SWT
.CENTER
, SWT
.CENTER
, false, false, 1, 1));
87 button_remove
.setToolTipText("Remove a feature from this feature tree.");
88 button_remove
.setImage(ImageResources
.getImage(ImageResources
.TRASH_ICON
));
91 public void init(DragSourceListener dragSourceListener
,
92 DropTargetListener dropTargetListener
, ISelectionChangedListener viewerSelectionChangedListener
,
93 SelectionListener selectionListener
, SelectionListener addButtonSelectionListener
, SelectionListener removeButtonSelectionListener
) {
94 viewer
.setContentProvider(new FeatureTreeContentProvider());
95 viewer
.setLabelProvider(new FeatureTreeLabelProvider());
97 int ops
= DND
.DROP_COPY
| DND
.DROP_MOVE
;
98 Transfer
[] transfers
= new Transfer
[] { FeatureNodeTransfer
100 viewer
.addDragSupport(ops
, transfers
, dragSourceListener
);
101 viewer
.addDropSupport(ops
, transfers
, dropTargetListener
);
103 viewer
.addSelectionChangedListener(viewerSelectionChangedListener
);
105 button_add
.addSelectionListener(addButtonSelectionListener
);
106 button_remove
.addSelectionListener(removeButtonSelectionListener
);
108 btnOpenFeatureTree
.addSelectionListener(selectionListener
);
112 * @return the label_title
114 public Label
getLabel_title() {
119 * @return the text_title
121 public Text
getText_title() {
126 * @return the btnOpenFeatureTree
128 public Button
getBtnOpenFeatureTree() {
129 return btnOpenFeatureTree
;
135 public TreeViewer
getViewer() {
140 * @return the button_add
142 public Button
getButton_add() {
147 * @return the button_remove
149 public Button
getButton_remove() {
150 return button_remove
;