Now have 3 dummy taxa editor views (2 existing, 1 new).
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor.designproposal1 / src / eu / etaxonomy / taxeditor / designproposal1 / view / NameListView.java
1 package eu.etaxonomy.taxeditor.designproposal1.view;
2
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;
44
45 import com.swtdesigner.ResourceManager;
46 import com.swtdesigner.SWTResourceManager;
47
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;
54
55 public class NameListView extends ViewPart implements ICdmEventListener {
56 private Text searchText;
57 private Table table;
58 private Composite composite;
59 private Tree tree;
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$
69
70
71
72 /**
73 * Create contents of the view part
74 * @param parent
75 */
76 @Override
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;
85
86 top = new Composite(parent, SWT.NONE);
87 top.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
88
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");
99
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"));
104
105 final Menu menu = new Menu(lblDbImg);
106 lblDbImg.setMenu(menu);
107
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)");
111
112 final MenuItem checkboxMenuItem_1 = new MenuItem(menu, SWT.CHECK);
113 checkboxMenuItem_1.setText("WP6 (mssql://128.14.101.13:80/wp6)");
114
115 final MenuItem palmWebora1922299480pwMenuItem = new MenuItem(menu, SWT.NONE);
116 palmWebora1922299480pwMenuItem.setText("Palm Web (ora://192.22.99.4:80/pw)");
117
118 new MenuItem(menu, SWT.SEPARATOR);
119
120 final MenuItem newDataSourceMenuItem = new MenuItem(menu, SWT.NONE);
121 newDataSourceMenuItem.setText("New data source ...");
122
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");
131
132
133 createExpandBar();
134 top.setLayout(gridLayout);
135 top.setTabList(new Control[] {composite, expandBar});
136 }
137
138 /**
139 * This method initializes expandBar
140 *
141 */
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();
153
154 createActions();
155 initializeToolBar();
156 initializeMenu();
157
158 }
159
160 private void createNameListComposite() {
161
162
163
164 }
165
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);
173
174 taxTreeComposite = new Composite(expandBar, SWT.NONE);
175 taxTreeComposite.setLayout(new FillLayout());
176 taxTreeComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
177
178 taxTreeExpandItem.setControl(taxTreeComposite);
179
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();
185 }
186 });
187
188 final TreeItem newItemTreeItem = new TreeItem(tree, SWT.NONE);
189 newItemTreeItem.setChecked(true);
190 newItemTreeItem.setText("Compositae Giseke");
191
192 final TreeItem newItemTreeItem_1 = new TreeItem(newItemTreeItem, SWT.NONE);
193 newItemTreeItem_1.setItemCount(1);
194 newItemTreeItem_1.setText("Anthemideae Cass.");
195
196 final TreeItem newItemTreeItem_2 = new TreeItem(newItemTreeItem, SWT.NONE);
197 newItemTreeItem_2.setItemCount(1);
198 newItemTreeItem_2.setText("Arctotideae Cass.");
199
200 final TreeItem newItemTreeItem_3 = new TreeItem(newItemTreeItem, SWT.NONE);
201 newItemTreeItem_3.setItemCount(1);
202 newItemTreeItem_3.setText("Astereae Cass.");
203
204 final TreeItem newItemTreeItem_4 = new TreeItem(newItemTreeItem, SWT.NONE);
205 newItemTreeItem_4.setItemCount(1);
206 newItemTreeItem_4.setText("Calenduleae Cass.");
207
208 final TreeItem newItemTreeItem_5 = new TreeItem(newItemTreeItem, SWT.NONE);
209 newItemTreeItem_5.setItemCount(1);
210 newItemTreeItem_5.setText("Cardueae Cass.");
211
212 final TreeItem newItemTreeItem_6 = new TreeItem(newItemTreeItem, SWT.NONE);
213 newItemTreeItem_6.setText("Cichorieae Lam. & DC.");
214
215 final TreeItem newItemTreeItem_16 = new TreeItem(newItemTreeItem_6, SWT.NONE);
216 newItemTreeItem_16.setExpanded(true);
217 newItemTreeItem_16.setText("Pilosella Vaill.");
218
219 final TreeItem newItemTreeItem_17 = new TreeItem(newItemTreeItem_16, SWT.NONE);
220 newItemTreeItem_17.setText("Pilosella fuscoatra coll.");
221
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");
226
227 final TreeItem newItemTreeItem_7 = new TreeItem(newItemTreeItem, SWT.NONE);
228 newItemTreeItem_7.setItemCount(1);
229 newItemTreeItem_7.setText("Eupatorieae Cass.");
230
231 final TreeItem newItemTreeItem_8 = new TreeItem(newItemTreeItem, SWT.NONE);
232 newItemTreeItem_8.setItemCount(1);
233 newItemTreeItem_8.setText("Gnaphalieae Lecoq & Juillet");
234
235 final TreeItem newItemTreeItem_9 = new TreeItem(newItemTreeItem, SWT.NONE);
236 newItemTreeItem_9.setItemCount(1);
237 newItemTreeItem_9.setText("Helenieae Lindl.");
238
239 final TreeItem newItemTreeItem_10 = new TreeItem(newItemTreeItem, SWT.NONE);
240 newItemTreeItem_10.setItemCount(1);
241 newItemTreeItem_10.setText("Heliantheae Cass.");
242
243 final TreeItem newItemTreeItem_11 = new TreeItem(newItemTreeItem, SWT.NONE);
244 newItemTreeItem_11.setItemCount(1);
245 newItemTreeItem_11.setText("Inuleae Cass.");
246
247 final TreeItem newItemTreeItem_12 = new TreeItem(newItemTreeItem, SWT.NONE);
248 newItemTreeItem_12.setItemCount(1);
249 newItemTreeItem_12.setText("Mutisieae Cass.");
250
251 final TreeItem newItemTreeItem_13 = new TreeItem(newItemTreeItem, SWT.NONE);
252 newItemTreeItem_13.setItemCount(1);
253 newItemTreeItem_13.setText("Plucheeae Anderb.");
254
255 final TreeItem newItemTreeItem_14 = new TreeItem(newItemTreeItem, SWT.NONE);
256 newItemTreeItem_14.setItemCount(1);
257 newItemTreeItem_14.setText("Senecioneae Cass.");
258
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);
270
271 recentNamesExpandItem.setControl(recentNamesComposite);
272
273 table = new Table(recentNamesComposite, SWT.NONE);
274 table.addMouseListener(new MouseAdapter() {
275 public void mouseDoubleClick(final MouseEvent e) {
276 new OpenNameEditorAction("Carduus").run();
277 }
278 });
279 table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
280
281 final TableItem newItemTableItem = new TableItem(table, SWT.BORDER);
282 newItemTableItem.setText("Laphangium (Hilliard & B. L. Burtt) Tzvelev");
283
284 final TableItem newItemTableItem_1 = new TableItem(table, SWT.BORDER);
285 newItemTableItem_1.setText("Carduus L.");
286
287 final TableItem newItemTableItem_2 = new TableItem(table, SWT.BORDER);
288 newItemTableItem_2.setText("Carduus carpetanus Boiss. & Reut.");
289
290 final TableItem newItemTableItem_3 = new TableItem(table, SWT.BORDER);
291 newItemTableItem_3.setText("Carduus kerneri Simonk.");
292
293 final TableItem newItemTableItem_5 = new TableItem(table, SWT.BORDER);
294 newItemTableItem_5.setText("Senecio eboracensis R. J. Abbott & A. J. Lowe");
295
296 final TableItem newItemTableItem_6 = new TableItem(table, SWT.BORDER);
297 newItemTableItem_6.setText("Senecio elegans L.");
298
299 // Image image = FileArrangerImages.getImageRegistry().get(
300 // IFileArrangerImages.IMG_BOOKMARK);
301 // bookmarksExpandItem.setImage(image);
302 }
303
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);
313
314 searchExpandItem.setControl(searchComposite);
315
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() {
322
323 public void focusGained(FocusEvent e) {
324 searchText.setForeground(SWTResourceManager.getColor(0,0,0));
325 searchText.setText("");
326 }
327
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");
332 }
333
334 }
335
336 });
337
338 final Button searchButton = new Button(searchComposite, SWT.NONE);
339 searchButton.setText("Search");
340
341 // final Label carduusLLabel = new Label(searchComposite, SWT.NONE);
342 // carduusLLabel.setLayoutData(gd_carduusLLabel);
343 // carduusLLabel.setText("Carduus L.");
344 //
345 // final Label carduusCarpetanusBoissLabel = new Label(searchComposite, SWT.NONE);
346 // carduusCarpetanusBoissLabel.setLayoutData(gd_carduusCarpetanusBoissLabel);
347 // carduusCarpetanusBoissLabel.setText("Carduus carpetanus Boiss. & Reut.");
348
349 // Image image = FileArrangerImages.getImageRegistry().get(
350 // IFileArrangerImages.IMG_FTP);
351 // ftpExpandItem.setImage(image);
352 }
353
354 private void createActions() {
355 // Create the actions
356 }
357
358 /**
359 * Initialize the toolbar
360 */
361 private void initializeToolBar() {
362 IToolBarManager toolbarManager = getViewSite().getActionBars()
363 .getToolBarManager();
364 }
365
366 /**
367 * Initialize the menu
368 */
369 private void initializeMenu() {
370 IMenuManager menuManager = getViewSite().getActionBars()
371 .getMenuManager();
372 }
373
374 @Override
375 public void setFocus() {
376 // Set the focus
377 }
378
379 /**
380 * Refreshes a taxon name in the list
381 */
382 public void refreshElement(TaxonName taxonname) {
383 }
384
385 public void onDelete(ICdmEventListenerRegistration arg0) {
386 // TODO Auto-generated method stub
387
388 }
389
390 public void onInsert(Object arg0) {
391 // TODO Auto-generated method stub
392
393 }
394
395 public void onLoad(Object arg0) {
396 }
397
398 public void onUpdate(ICdmEventListenerRegistration arg0) {
399 System.out.println("here i am");
400 refreshElement((TaxonName)arg0);
401 }
402
403 }