1 package eu
.etaxonomy
.taxeditor
.designproposal1
.view
;
3 import org
.eclipse
.jface
.action
.IMenuManager
;
4 import org
.eclipse
.jface
.action
.IToolBarManager
;
5 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
6 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
7 import org
.eclipse
.jface
.viewers
.IStructuredContentProvider
;
8 import org
.eclipse
.jface
.viewers
.ITableLabelProvider
;
9 import org
.eclipse
.jface
.viewers
.LabelProvider
;
10 import org
.eclipse
.jface
.viewers
.StructuredSelection
;
11 import org
.eclipse
.jface
.viewers
.TableViewer
;
12 import org
.eclipse
.jface
.viewers
.TreeViewer
;
13 import org
.eclipse
.jface
.viewers
.Viewer
;
14 import org
.eclipse
.jface
.viewers
.ViewerLabel
;
15 import org
.eclipse
.swt
.SWT
;
16 import org
.eclipse
.swt
.custom
.StackLayout
;
17 import org
.eclipse
.swt
.events
.FocusAdapter
;
18 import org
.eclipse
.swt
.events
.FocusEvent
;
19 import org
.eclipse
.swt
.events
.FocusListener
;
20 import org
.eclipse
.swt
.events
.MouseAdapter
;
21 import org
.eclipse
.swt
.events
.MouseEvent
;
22 import org
.eclipse
.swt
.events
.SelectionEvent
;
23 import org
.eclipse
.swt
.events
.SelectionListener
;
24 import org
.eclipse
.swt
.graphics
.Image
;
25 import org
.eclipse
.swt
.layout
.FillLayout
;
26 import org
.eclipse
.swt
.layout
.GridData
;
27 import org
.eclipse
.swt
.layout
.GridLayout
;
28 import org
.eclipse
.swt
.layout
.RowData
;
29 import org
.eclipse
.swt
.widgets
.Button
;
30 import org
.eclipse
.swt
.widgets
.Composite
;
31 import org
.eclipse
.swt
.widgets
.Control
;
32 import org
.eclipse
.swt
.widgets
.Display
;
33 import org
.eclipse
.swt
.widgets
.ExpandBar
;
34 import org
.eclipse
.swt
.widgets
.ExpandItem
;
35 import org
.eclipse
.swt
.widgets
.Label
;
36 import org
.eclipse
.swt
.widgets
.Menu
;
37 import org
.eclipse
.swt
.widgets
.MenuItem
;
38 import org
.eclipse
.swt
.widgets
.Table
;
39 import org
.eclipse
.swt
.widgets
.TableItem
;
40 import org
.eclipse
.swt
.widgets
.Text
;
41 import org
.eclipse
.swt
.widgets
.Tree
;
42 import org
.eclipse
.swt
.widgets
.TreeItem
;
43 import org
.eclipse
.ui
.part
.ViewPart
;
45 import com
.swtdesigner
.ResourceManager
;
46 import com
.swtdesigner
.SWTResourceManager
;
48 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
49 import eu
.etaxonomy
.cdm
.event
.ICdmEventListener
;
50 import eu
.etaxonomy
.cdm
.event
.ICdmEventListenerRegistration
;
51 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
52 import eu
.etaxonomy
.taxeditor
.designproposal1
.Activator
;
53 import eu
.etaxonomy
.taxeditor
.designproposal1
.controller
.OpenNameEditorAction
;
55 public class NameListView
extends ViewPart
implements ICdmEventListener
{
56 private Text searchText
;
58 private Composite composite
;
60 private Composite taxTreeComposite
= null;
61 private Composite recentNamesComposite
= null;
62 private Composite searchComposite
= null;
63 private Composite top
= null;
64 private ExpandBar expandBar
= null;
65 private ExpandItem taxTreeExpandItem
;
66 private ExpandItem recentNamesExpandItem
;
67 private ExpandItem searchExpandItem
;
68 public static final String ID
= "eu.etaxonomy.taxeditor.designproposal1.view.namelistview"; //$NON-NLS-1$
73 * Create contents of the view part
77 public void createPartControl(Composite parent
) {
78 // TODO Auto-generated method stub
79 parent
.setLayout(new FillLayout());
80 GridLayout gridLayout
= new GridLayout();
81 gridLayout
.horizontalSpacing
= 0;
82 gridLayout
.marginWidth
= 0;
83 gridLayout
.marginHeight
= 0;
84 gridLayout
.verticalSpacing
= 0;
86 top
= new Composite(parent
, SWT
.NONE
);
87 top
.setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
89 composite
= new Composite(top
, SWT
.NONE
);
90 composite
.setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
91 final GridLayout gridLayout_1
= new GridLayout();
92 gridLayout_1
.numColumns
= 2;
93 composite
.setLayout(gridLayout_1
);
94 final Label lblDataSourceTitle
= new Label(composite
, SWT
.NONE
);
95 lblDataSourceTitle
.setFont(SWTResourceManager
.getFont("Arial", 14, SWT
.BOLD
));
96 lblDataSourceTitle
.setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
97 lblDataSourceTitle
.setAlignment(SWT
.CENTER
);
98 lblDataSourceTitle
.setText(" Euro+Med");
100 final Label lblDbImg
= new Label(composite
, SWT
.NONE
);
101 lblDbImg
.setLayoutData(new GridData(SWT
.RIGHT
, SWT
.CENTER
, false, false));
102 lblDbImg
.setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
103 lblDbImg
.setImage(ResourceManager
.getPluginImage(Activator
.getDefault(), "icons/db.gif"));
105 final Menu menu
= new Menu(lblDbImg
);
106 lblDbImg
.setMenu(menu
);
108 final MenuItem checkboxMenuItem
= new MenuItem(menu
, SWT
.CHECK
);
109 checkboxMenuItem
.setSelection(true);
110 checkboxMenuItem
.setText("Euro+Med (mssql://128.14.101.12:80/europlusmed)");
112 final MenuItem checkboxMenuItem_1
= new MenuItem(menu
, SWT
.CHECK
);
113 checkboxMenuItem_1
.setText("WP6 (mssql://128.14.101.13:80/wp6)");
115 final MenuItem palmWebora1922299480pwMenuItem
= new MenuItem(menu
, SWT
.NONE
);
116 palmWebora1922299480pwMenuItem
.setText("Palm Web (ora://192.22.99.4:80/pw)");
118 new MenuItem(menu
, SWT
.SEPARATOR
);
120 final MenuItem newDataSourceMenuItem
= new MenuItem(menu
, SWT
.NONE
);
121 newDataSourceMenuItem
.setText("New data source ...");
123 final Label lblDataSource
= new Label(composite
, SWT
.NONE
);
124 final GridData gd_lblDataSource
= new GridData(SWT
.LEFT
, SWT
.CENTER
, false, false, 2, 1);
125 gd_lblDataSource
.heightHint
= 16;
126 lblDataSource
.setLayoutData(gd_lblDataSource
);
127 lblDataSource
.setFont(SWTResourceManager
.getFont("Arial", 8, SWT
.NONE
));
128 lblDataSource
.setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
129 lblDataSource
.setAlignment(SWT
.CENTER
);
130 lblDataSource
.setText(" mssql://128.14.101.12:80/europlusmed");
134 top
.setLayout(gridLayout
);
135 top
.setTabList(new Control
[] {composite
, expandBar
});
139 * This method initializes expandBar
142 private void createExpandBar() {
143 expandBar
= new ExpandBar(top
, SWT
.V_SCROLL
);
144 GridData gridData
= new GridData();
145 gridData
.horizontalAlignment
= GridData
.FILL
;
146 gridData
.grabExcessHorizontalSpace
= true;
147 gridData
.grabExcessVerticalSpace
= true;
148 gridData
.verticalAlignment
= GridData
.FILL
;
149 expandBar
.setLayoutData(gridData
);
150 createNameListComposite();
151 createRecentNamesComposite();
152 createSearchComposite();
160 private void createNameListComposite() {
166 private void createRecentNamesComposite() {
167 taxTreeExpandItem
= new ExpandItem(expandBar
, SWT
.NONE
, 0);
168 taxTreeExpandItem
.setExpanded(true);
169 taxTreeExpandItem
.setHeight(200);
170 taxTreeExpandItem
.setText("Taxonomic Tree");
171 // IFileArrangerImages.IMG_HOME);
172 // nameListExpandItem.setImage(image);
174 taxTreeComposite
= new Composite(expandBar
, SWT
.NONE
);
175 taxTreeComposite
.setLayout(new FillLayout());
176 taxTreeComposite
.setBackground(Display
.getCurrent().getSystemColor(SWT
.COLOR_WHITE
));
178 taxTreeExpandItem
.setControl(taxTreeComposite
);
180 tree
= new Tree(taxTreeComposite
, SWT
.FULL_SELECTION
);
181 tree
.setItemCount(1);
182 tree
.addMouseListener(new MouseAdapter() {
183 public void mouseDoubleClick(final MouseEvent e
) {
184 new OpenNameEditorAction("Pilosella").run();
188 final TreeItem newItemTreeItem
= new TreeItem(tree
, SWT
.NONE
);
189 newItemTreeItem
.setChecked(true);
190 newItemTreeItem
.setText("Compositae Giseke");
192 final TreeItem newItemTreeItem_1
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
193 newItemTreeItem_1
.setItemCount(1);
194 newItemTreeItem_1
.setText("Anthemideae Cass.");
196 final TreeItem newItemTreeItem_2
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
197 newItemTreeItem_2
.setItemCount(1);
198 newItemTreeItem_2
.setText("Arctotideae Cass.");
200 final TreeItem newItemTreeItem_3
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
201 newItemTreeItem_3
.setItemCount(1);
202 newItemTreeItem_3
.setText("Astereae Cass.");
204 final TreeItem newItemTreeItem_4
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
205 newItemTreeItem_4
.setItemCount(1);
206 newItemTreeItem_4
.setText("Calenduleae Cass.");
208 final TreeItem newItemTreeItem_5
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
209 newItemTreeItem_5
.setItemCount(1);
210 newItemTreeItem_5
.setText("Cardueae Cass.");
212 final TreeItem newItemTreeItem_6
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
213 newItemTreeItem_6
.setText("Cichorieae Lam. & DC.");
215 final TreeItem newItemTreeItem_16
= new TreeItem(newItemTreeItem_6
, SWT
.NONE
);
216 newItemTreeItem_16
.setExpanded(true);
217 newItemTreeItem_16
.setText("Pilosella Vaill.");
219 final TreeItem newItemTreeItem_17
= new TreeItem(newItemTreeItem_16
, SWT
.NONE
);
220 newItemTreeItem_17
.setText("Pilosella fuscoatra coll.");
222 final TreeItem newItemTreeItem_18
= new TreeItem(newItemTreeItem_17
, SWT
.NONE
);
223 newItemTreeItem_18
.setFont(SWTResourceManager
.getFont("", 8, SWT
.BOLD
));
224 newItemTreeItem_18
.setExpanded(true);
225 newItemTreeItem_18
.setText("Pilosella fuscoatra (Nägeli & Peter) Soják");
227 final TreeItem newItemTreeItem_7
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
228 newItemTreeItem_7
.setItemCount(1);
229 newItemTreeItem_7
.setText("Eupatorieae Cass.");
231 final TreeItem newItemTreeItem_8
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
232 newItemTreeItem_8
.setItemCount(1);
233 newItemTreeItem_8
.setText("Gnaphalieae Lecoq & Juillet");
235 final TreeItem newItemTreeItem_9
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
236 newItemTreeItem_9
.setItemCount(1);
237 newItemTreeItem_9
.setText("Helenieae Lindl.");
239 final TreeItem newItemTreeItem_10
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
240 newItemTreeItem_10
.setItemCount(1);
241 newItemTreeItem_10
.setText("Heliantheae Cass.");
243 final TreeItem newItemTreeItem_11
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
244 newItemTreeItem_11
.setItemCount(1);
245 newItemTreeItem_11
.setText("Inuleae Cass.");
247 final TreeItem newItemTreeItem_12
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
248 newItemTreeItem_12
.setItemCount(1);
249 newItemTreeItem_12
.setText("Mutisieae Cass.");
251 final TreeItem newItemTreeItem_13
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
252 newItemTreeItem_13
.setItemCount(1);
253 newItemTreeItem_13
.setText("Plucheeae Anderb.");
255 final TreeItem newItemTreeItem_14
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
256 newItemTreeItem_14
.setItemCount(1);
257 newItemTreeItem_14
.setText("Senecioneae Cass.");
259 final TreeItem newItemTreeItem_15
= new TreeItem(newItemTreeItem
, SWT
.NONE
);
260 newItemTreeItem_15
.setItemCount(1);
261 newItemTreeItem_15
.setText("Vernonieae Cass.");
262 taxTreeComposite
.setTabList(new Control
[] {tree
});
263 recentNamesExpandItem
= new ExpandItem(expandBar
, SWT
.NONE
, 1);
264 recentNamesExpandItem
.setHeight(130);
265 recentNamesExpandItem
.setExpanded(true);
266 recentNamesExpandItem
.setText("Recently viewed names");
267 recentNamesComposite
= new Composite(expandBar
, SWT
.NONE
);
268 final GridLayout gridLayout
= new GridLayout();
269 recentNamesComposite
.setLayout(gridLayout
);
271 recentNamesExpandItem
.setControl(recentNamesComposite
);
273 table
= new Table(recentNamesComposite
, SWT
.NONE
);
274 table
.addMouseListener(new MouseAdapter() {
275 public void mouseDoubleClick(final MouseEvent e
) {
276 new OpenNameEditorAction("Carduus").run();
279 table
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
281 final TableItem newItemTableItem
= new TableItem(table
, SWT
.BORDER
);
282 newItemTableItem
.setText("Laphangium (Hilliard & B. L. Burtt) Tzvelev");
284 final TableItem newItemTableItem_1
= new TableItem(table
, SWT
.BORDER
);
285 newItemTableItem_1
.setText("Carduus L.");
287 final TableItem newItemTableItem_2
= new TableItem(table
, SWT
.BORDER
);
288 newItemTableItem_2
.setText("Carduus carpetanus Boiss. & Reut.");
290 final TableItem newItemTableItem_3
= new TableItem(table
, SWT
.BORDER
);
291 newItemTableItem_3
.setText("Carduus kerneri Simonk.");
293 final TableItem newItemTableItem_5
= new TableItem(table
, SWT
.BORDER
);
294 newItemTableItem_5
.setText("Senecio eboracensis R. J. Abbott & A. J. Lowe");
296 final TableItem newItemTableItem_6
= new TableItem(table
, SWT
.BORDER
);
297 newItemTableItem_6
.setText("Senecio elegans L.");
299 // Image image = FileArrangerImages.getImageRegistry().get(
300 // IFileArrangerImages.IMG_BOOKMARK);
301 // bookmarksExpandItem.setImage(image);
304 private void createSearchComposite() {
305 searchExpandItem
= new ExpandItem(expandBar
, SWT
.NONE
, 2);
306 searchExpandItem
.setHeight(50);
307 searchExpandItem
.setExpanded(true);
308 searchExpandItem
.setText("Search");
309 searchComposite
= new Composite(expandBar
, SWT
.NONE
);
310 final GridLayout gridLayout
= new GridLayout();
311 gridLayout
.numColumns
= 2;
312 searchComposite
.setLayout(gridLayout
);
314 searchExpandItem
.setControl(searchComposite
);
316 searchText
= new Text(searchComposite
, SWT
.BORDER
);
317 searchText
.setForeground(SWTResourceManager
.getColor(192, 192, 192));
318 searchText
.setText("Use \"*\" for wildcard searching");
319 final GridData gd_useForText
= new GridData(SWT
.FILL
, SWT
.CENTER
, true, false);
320 searchText
.setLayoutData(gd_useForText
);
321 searchText
.addFocusListener(new FocusListener() {
323 public void focusGained(FocusEvent e
) {
324 searchText
.setForeground(SWTResourceManager
.getColor(0,0,0));
325 searchText
.setText("");
328 public void focusLost(FocusEvent e
) {
329 if (searchText
.getText() == "") {
330 searchText
.setForeground(SWTResourceManager
.getColor(192, 192, 192));
331 searchText
.setText("Use \"*\" for wildcard searching");
338 final Button searchButton
= new Button(searchComposite
, SWT
.NONE
);
339 searchButton
.setText("Search");
341 // final Label carduusLLabel = new Label(searchComposite, SWT.NONE);
342 // carduusLLabel.setLayoutData(gd_carduusLLabel);
343 // carduusLLabel.setText("Carduus L.");
345 // final Label carduusCarpetanusBoissLabel = new Label(searchComposite, SWT.NONE);
346 // carduusCarpetanusBoissLabel.setLayoutData(gd_carduusCarpetanusBoissLabel);
347 // carduusCarpetanusBoissLabel.setText("Carduus carpetanus Boiss. & Reut.");
349 // Image image = FileArrangerImages.getImageRegistry().get(
350 // IFileArrangerImages.IMG_FTP);
351 // ftpExpandItem.setImage(image);
354 private void createActions() {
355 // Create the actions
359 * Initialize the toolbar
361 private void initializeToolBar() {
362 IToolBarManager toolbarManager
= getViewSite().getActionBars()
363 .getToolBarManager();
367 * Initialize the menu
369 private void initializeMenu() {
370 IMenuManager menuManager
= getViewSite().getActionBars()
375 public void setFocus() {
380 * Refreshes a taxon name in the list
382 public void refreshElement(TaxonName taxonname
) {
385 public void onDelete(ICdmEventListenerRegistration arg0
) {
386 // TODO Auto-generated method stub
390 public void onInsert(Object arg0
) {
391 // TODO Auto-generated method stub
395 public void onLoad(Object arg0
) {
398 public void onUpdate(ICdmEventListenerRegistration arg0
) {
399 System
.out
.println("here i am");
400 refreshElement((TaxonName
)arg0
);