p2izing the editor
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor.designproposal2 / src / eu / etaxonomy / taxeditor / designproposal2 / view / NameListView.java
1 package eu.etaxonomy.taxeditor.designproposal2.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.designproposal2.controller.OpenNameEditorAction;
53 import eu.etaxonomy.taxeditor.designproposal2.Activator;
54
55 //public class NameListView extends ViewPart implements ICdmEventListener {
56 public class NameListView extends ViewPart {
57 private Text searchText;
58 private Table table;
59 private Composite composite;
60 private Tree tree;
61 private Composite taxTreeComposite = null;
62 private Composite recentNamesComposite = null;
63 private Composite searchComposite = null;
64 private Composite top = null;
65 private ExpandBar expandBar = null;
66 private ExpandItem taxTreeExpandItem;
67 private ExpandItem recentNamesExpandItem;
68 private ExpandItem searchExpandItem;
69 public static final String ID = "eu.etaxonomy.taxeditor.designproposal2.view.namelistview"; //$NON-NLS-1$
70
71
72
73 /**
74 * Create contents of the view part
75 * @param parent
76 */
77 @Override
78 public void createPartControl(Composite parent) {
79 // TODO Auto-generated method stub
80 parent.setLayout(new FillLayout());
81 GridLayout gridLayout = new GridLayout();
82 gridLayout.horizontalSpacing = 0;
83 gridLayout.marginWidth = 0;
84 gridLayout.marginHeight = 0;
85 gridLayout.verticalSpacing = 0;
86
87 top = new Composite(parent, SWT.NONE);
88 top.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
89
90 composite = new Composite(top, SWT.NONE);
91 composite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
92 final GridLayout gridLayout_1 = new GridLayout();
93 gridLayout_1.numColumns = 2;
94 composite.setLayout(gridLayout_1);
95 final Label lblDataSourceTitle = new Label(composite, SWT.NONE);
96 lblDataSourceTitle.setFont(SWTResourceManager.getFont("Arial", 14, SWT.BOLD));
97 lblDataSourceTitle.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
98 lblDataSourceTitle.setAlignment(SWT.CENTER);
99 lblDataSourceTitle.setText(" Euro+Med");
100
101 final Label lblDbImg = new Label(composite, SWT.NONE);
102 lblDbImg.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
103 lblDbImg.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
104 lblDbImg.setImage(ResourceManager.getPluginImage(Activator.getDefault(), "icons/db.gif"));
105
106 final Menu menu = new Menu(lblDbImg);
107 lblDbImg.setMenu(menu);
108
109 final MenuItem checkboxMenuItem = new MenuItem(menu, SWT.CHECK);
110 checkboxMenuItem.setSelection(true);
111 checkboxMenuItem.setText("Euro+Med (mssql://128.14.101.12:80/europlusmed)");
112
113 final MenuItem checkboxMenuItem_1 = new MenuItem(menu, SWT.CHECK);
114 checkboxMenuItem_1.setText("WP6 (mssql://128.14.101.13:80/wp6)");
115
116 final MenuItem palmWebora1922299480pwMenuItem = new MenuItem(menu, SWT.NONE);
117 palmWebora1922299480pwMenuItem.setText("Palm Web (ora://192.22.99.4:80/pw)");
118
119 new MenuItem(menu, SWT.SEPARATOR);
120
121 final MenuItem newDataSourceMenuItem = new MenuItem(menu, SWT.NONE);
122 newDataSourceMenuItem.setText("New data source ...");
123
124 final Label lblDataSource = new Label(composite, SWT.NONE);
125 final GridData gd_lblDataSource = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);
126 gd_lblDataSource.heightHint = 16;
127 lblDataSource.setLayoutData(gd_lblDataSource);
128 lblDataSource.setFont(SWTResourceManager.getFont("Arial", 8, SWT.NONE));
129 lblDataSource.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
130 lblDataSource.setAlignment(SWT.CENTER);
131 lblDataSource.setText(" mssql://128.14.101.12:80/europlusmed");
132
133
134 createExpandBar();
135 top.setLayout(gridLayout);
136 top.setTabList(new Control[] {composite, expandBar});
137 }
138
139 /**
140 * This method initializes expandBar
141 *
142 */
143 private void createExpandBar() {
144 expandBar = new ExpandBar(top, SWT.V_SCROLL);
145 GridData gridData = new GridData();
146 gridData.horizontalAlignment = GridData.FILL;
147 gridData.grabExcessHorizontalSpace = true;
148 gridData.grabExcessVerticalSpace = true;
149 gridData.verticalAlignment = GridData.FILL;
150 expandBar.setLayoutData(gridData);
151 createNameListComposite();
152 createRecentNamesComposite();
153 createSearchComposite();
154
155 createActions();
156 initializeToolBar();
157 initializeMenu();
158
159 }
160
161 private void createNameListComposite() {
162
163
164
165 }
166
167 private void createRecentNamesComposite() {
168 taxTreeExpandItem = new ExpandItem(expandBar, SWT.NONE, 0);
169 taxTreeExpandItem.setExpanded(true);
170 taxTreeExpandItem.setHeight(200);
171 taxTreeExpandItem.setText("Taxonomic Tree");
172 // IFileArrangerImages.IMG_HOME);
173 // nameListExpandItem.setImage(image);
174
175 taxTreeComposite = new Composite(expandBar, SWT.NONE);
176 taxTreeComposite.setLayout(new FillLayout());
177 taxTreeComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
178
179 taxTreeExpandItem.setControl(taxTreeComposite);
180
181 tree = new Tree(taxTreeComposite, SWT.FULL_SELECTION);
182 tree.setItemCount(1);
183 tree.addMouseListener(new MouseAdapter() {
184 public void mouseDoubleClick(final MouseEvent e) {
185 new OpenNameEditorAction("Pilosella").run();
186 }
187 });
188
189 final TreeItem newItemTreeItem = new TreeItem(tree, SWT.NONE);
190 newItemTreeItem.setChecked(true);
191 newItemTreeItem.setText("Compositae Giseke");
192
193 final TreeItem newItemTreeItem_1 = new TreeItem(newItemTreeItem, SWT.NONE);
194 newItemTreeItem_1.setItemCount(1);
195 newItemTreeItem_1.setText("Anthemideae Cass.");
196
197 final TreeItem newItemTreeItem_2 = new TreeItem(newItemTreeItem, SWT.NONE);
198 newItemTreeItem_2.setItemCount(1);
199 newItemTreeItem_2.setText("Arctotideae Cass.");
200
201 final TreeItem newItemTreeItem_3 = new TreeItem(newItemTreeItem, SWT.NONE);
202 newItemTreeItem_3.setItemCount(1);
203 newItemTreeItem_3.setText("Astereae Cass.");
204
205 final TreeItem newItemTreeItem_4 = new TreeItem(newItemTreeItem, SWT.NONE);
206 newItemTreeItem_4.setItemCount(1);
207 newItemTreeItem_4.setText("Calenduleae Cass.");
208
209 final TreeItem newItemTreeItem_5 = new TreeItem(newItemTreeItem, SWT.NONE);
210 newItemTreeItem_5.setItemCount(1);
211 newItemTreeItem_5.setText("Cardueae Cass.");
212
213 final TreeItem newItemTreeItem_6 = new TreeItem(newItemTreeItem, SWT.NONE);
214 newItemTreeItem_6.setText("Cichorieae Lam. & DC.");
215
216 final TreeItem newItemTreeItem_16 = new TreeItem(newItemTreeItem_6, SWT.NONE);
217 newItemTreeItem_16.setExpanded(true);
218 newItemTreeItem_16.setText("Pilosella Vaill.");
219
220 final TreeItem newItemTreeItem_17 = new TreeItem(newItemTreeItem_16, SWT.NONE);
221 newItemTreeItem_17.setText("Pilosella fuscoatra coll.");
222
223 final TreeItem newItemTreeItem_18 = new TreeItem(newItemTreeItem_17, SWT.NONE);
224 newItemTreeItem_18.setFont(SWTResourceManager.getFont("", 8, SWT.BOLD));
225 newItemTreeItem_18.setExpanded(true);
226 newItemTreeItem_18.setText("Pilosella fuscoatra (Nägeli & Peter) Soják");
227
228 final TreeItem newItemTreeItem_7 = new TreeItem(newItemTreeItem, SWT.NONE);
229 newItemTreeItem_7.setItemCount(1);
230 newItemTreeItem_7.setText("Eupatorieae Cass.");
231
232 final TreeItem newItemTreeItem_8 = new TreeItem(newItemTreeItem, SWT.NONE);
233 newItemTreeItem_8.setItemCount(1);
234 newItemTreeItem_8.setText("Gnaphalieae Lecoq & Juillet");
235
236 final TreeItem newItemTreeItem_9 = new TreeItem(newItemTreeItem, SWT.NONE);
237 newItemTreeItem_9.setItemCount(1);
238 newItemTreeItem_9.setText("Helenieae Lindl.");
239
240 final TreeItem newItemTreeItem_10 = new TreeItem(newItemTreeItem, SWT.NONE);
241 newItemTreeItem_10.setItemCount(1);
242 newItemTreeItem_10.setText("Heliantheae Cass.");
243
244 final TreeItem newItemTreeItem_11 = new TreeItem(newItemTreeItem, SWT.NONE);
245 newItemTreeItem_11.setItemCount(1);
246 newItemTreeItem_11.setText("Inuleae Cass.");
247
248 final TreeItem newItemTreeItem_12 = new TreeItem(newItemTreeItem, SWT.NONE);
249 newItemTreeItem_12.setItemCount(1);
250 newItemTreeItem_12.setText("Mutisieae Cass.");
251
252 final TreeItem newItemTreeItem_13 = new TreeItem(newItemTreeItem, SWT.NONE);
253 newItemTreeItem_13.setItemCount(1);
254 newItemTreeItem_13.setText("Plucheeae Anderb.");
255
256 final TreeItem newItemTreeItem_14 = new TreeItem(newItemTreeItem, SWT.NONE);
257 newItemTreeItem_14.setItemCount(1);
258 newItemTreeItem_14.setText("Senecioneae Cass.");
259
260 final TreeItem newItemTreeItem_15 = new TreeItem(newItemTreeItem, SWT.NONE);
261 newItemTreeItem_15.setItemCount(1);
262 newItemTreeItem_15.setText("Vernonieae Cass.");
263 taxTreeComposite.setTabList(new Control[] {tree});
264 recentNamesExpandItem = new ExpandItem(expandBar, SWT.NONE, 1);
265 recentNamesExpandItem.setHeight(130);
266 recentNamesExpandItem.setExpanded(true);
267 recentNamesExpandItem.setText("Recently viewed names");
268 recentNamesComposite = new Composite(expandBar, SWT.NONE);
269 final GridLayout gridLayout = new GridLayout();
270 recentNamesComposite.setLayout(gridLayout);
271
272 recentNamesExpandItem.setControl(recentNamesComposite);
273
274 table = new Table(recentNamesComposite, SWT.NONE);
275 table.addMouseListener(new MouseAdapter() {
276 public void mouseDoubleClick(final MouseEvent e) {
277 new OpenNameEditorAction("Carduus").run();
278 }
279 });
280 table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
281
282 final TableItem newItemTableItem = new TableItem(table, SWT.BORDER);
283 newItemTableItem.setText("Laphangium (Hilliard & B. L. Burtt) Tzvelev");
284
285 final TableItem newItemTableItem_1 = new TableItem(table, SWT.BORDER);
286 newItemTableItem_1.setText("Carduus L.");
287
288 final TableItem newItemTableItem_2 = new TableItem(table, SWT.BORDER);
289 newItemTableItem_2.setText("Carduus carpetanus Boiss. & Reut.");
290
291 final TableItem newItemTableItem_3 = new TableItem(table, SWT.BORDER);
292 newItemTableItem_3.setText("Carduus kerneri Simonk.");
293
294 final TableItem newItemTableItem_5 = new TableItem(table, SWT.BORDER);
295 newItemTableItem_5.setText("Senecio eboracensis R. J. Abbott & A. J. Lowe");
296
297 final TableItem newItemTableItem_6 = new TableItem(table, SWT.BORDER);
298 newItemTableItem_6.setText("Senecio elegans L.");
299
300 // Image image = FileArrangerImages.getImageRegistry().get(
301 // IFileArrangerImages.IMG_BOOKMARK);
302 // bookmarksExpandItem.setImage(image);
303 }
304
305 private void createSearchComposite() {
306 searchExpandItem = new ExpandItem(expandBar, SWT.NONE, 2);
307 searchExpandItem.setHeight(50);
308 searchExpandItem.setExpanded(true);
309 searchExpandItem.setText("Search");
310 searchComposite = new Composite(expandBar, SWT.NONE);
311 final GridLayout gridLayout = new GridLayout();
312 gridLayout.numColumns = 2;
313 searchComposite.setLayout(gridLayout);
314
315 searchExpandItem.setControl(searchComposite);
316
317 searchText = new Text(searchComposite, SWT.BORDER);
318 searchText.setForeground(SWTResourceManager.getColor(192, 192, 192));
319 searchText.setText("Use \"*\" for wildcard searching");
320 final GridData gd_useForText = new GridData(SWT.FILL, SWT.CENTER, true, false);
321 searchText.setLayoutData(gd_useForText);
322 searchText.addFocusListener(new FocusListener() {
323
324 public void focusGained(FocusEvent e) {
325 searchText.setForeground(SWTResourceManager.getColor(0,0,0));
326 searchText.setText("");
327 }
328
329 public void focusLost(FocusEvent e) {
330 if (searchText.getText() == "") {
331 searchText.setForeground(SWTResourceManager.getColor(192, 192, 192));
332 searchText.setText("Use \"*\" for wildcard searching");
333 }
334
335 }
336
337 });
338
339 final Button searchButton = new Button(searchComposite, SWT.NONE);
340 searchButton.setText("Search");
341
342 // final Label carduusLLabel = new Label(searchComposite, SWT.NONE);
343 // carduusLLabel.setLayoutData(gd_carduusLLabel);
344 // carduusLLabel.setText("Carduus L.");
345 //
346 // final Label carduusCarpetanusBoissLabel = new Label(searchComposite, SWT.NONE);
347 // carduusCarpetanusBoissLabel.setLayoutData(gd_carduusCarpetanusBoissLabel);
348 // carduusCarpetanusBoissLabel.setText("Carduus carpetanus Boiss. & Reut.");
349
350 // Image image = FileArrangerImages.getImageRegistry().get(
351 // IFileArrangerImages.IMG_FTP);
352 // ftpExpandItem.setImage(image);
353 }
354
355 private void createActions() {
356 // Create the actions
357 }
358
359 /**
360 * Initialize the toolbar
361 */
362 private void initializeToolBar() {
363 IToolBarManager toolbarManager = getViewSite().getActionBars()
364 .getToolBarManager();
365 }
366
367 /**
368 * Initialize the menu
369 */
370 private void initializeMenu() {
371 IMenuManager menuManager = getViewSite().getActionBars()
372 .getMenuManager();
373 }
374
375 @Override
376 public void setFocus() {
377 // Set the focus
378 }
379
380 /**
381 * Refreshes a taxon name in the list
382 */
383 // public void refreshElement(TaxonName taxonname) {
384 // }
385
386 // public void onDelete(ICdmEventListenerRegistration arg0) {
387 // // TODO Auto-generated method stub
388 //
389 // }
390
391 public void onInsert(Object arg0) {
392 // TODO Auto-generated method stub
393
394 }
395
396 public void onLoad(Object arg0) {
397 }
398
399 // public void onUpdate(ICdmEventListenerRegistration arg0) {
400 // System.out.println("here i am");
401 // refreshElement((TaxonName)arg0);
402 // }
403
404 }