Project

General

Profile

« Previous | Next » 

Revision c886671b

Added by Cherian Mathew over 11 years ago

Updated Polytomous Key List Editor Component

  • added extra column for taxa
  • 'New' and 'Delete' both lead to error popups when no node is selected
  • 'New' menu click creates an empty node linked to the root node, when no nodes are present.

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListEditor.java
66 66
		@Override
67 67
		public void mouseUp(MouseEvent event) {
68 68

  
69
			Table table = (Table) event.widget;
70
			// Determine where the mouse was clicked
71
			Point point = new Point(event.x, event.y);
72

  
73
			int selectedColumn = getSelectedColumn(table, point);
74

  
75
			if (selectedColumn == 3) {
76
				PolytomousKeyNode node = (PolytomousKeyNode) getTableItem(
77
						table, point).getData();
78
				Object linkData = getItemLinkData(node);
79
				if (linkData instanceof PolytomousKeyNode) {
80
					viewer.setSelection(new StructuredSelection(linkData), true);
81
				} else if (linkData instanceof Taxon) {
82
					try {
83
						EditorUtil.openTaxonBase(((Taxon) linkData).getUuid());
84
					} catch (PartInitException e) {
85
						EditorUtil.error(getClass(), e);
86
					}
87
				}
88
			}
89

  
69
		    if(event.button == 1 && event.count == 2) {
70
		        Table table = (Table) event.widget;
71
		        // Determine where the mouse was clicked
72
		        Point point = new Point(event.x, event.y);
73

  
74
		        int selectedColumn = getSelectedColumn(table, point);
75
		        PolytomousKeyNode node = (PolytomousKeyNode) getTableItem(
76
                        table, point).getData();
77
                
78
		        if (selectedColumn == 3) {		
79
		            PolytomousKeyNode linkData = getItemLinkData(node);
80
		            if (linkData != null) {
81
		                viewer.setSelection(new StructuredSelection(linkData), true);
82
		            } 
83
		        }
84
		        if (selectedColumn == 4) {
85
		            Taxon taxon = getItemTaxon(node);
86
		            if (taxon != null) {
87
		                try {
88
		                    EditorUtil.openTaxonBase((taxon).getUuid());
89
		                } catch (PartInitException e) {
90
		                    EditorUtil.error(getClass(), e);
91
		                }
92
		            }
93
		        }
94
		    }
90 95
		}
91 96

  
92 97
		private int getSelectedColumn(Table table, Point point) {
......
110 115
		/**
111 116
		 * @return
112 117
		 */
113
		private Object getItemLinkData(PolytomousKeyNode node) {
114
			return node.getChildren().isEmpty() ? node.getTaxon() : node
118
		private PolytomousKeyNode getItemLinkData(PolytomousKeyNode node) {
119
			return node.getChildren().isEmpty() ? null : node
115 120
					.getChildAt(0);
116 121
		}
122
		
123
	      /**
124
         * @return
125
         */
126
        private Taxon getItemTaxon(PolytomousKeyNode node) {
127
            return node.getTaxon();
128
        }
117 129
	}
118 130

  
119 131
	public static final String ID = "eu.etaxonomy.taxeditor.editor.key.polytomous.list";
......
239 251
		viewer.setInput(key);
240 252
	}
241 253

  
254
	public int getTableItemCount() {
255
	    if (viewer != null && viewer.getTable() != null) {
256
	        return viewer.getTable().getItemCount();
257
	    }
258
	    
259
	    return 0;
260
	}
261
	
262
	public PolytomousKey getViewerInputKey() {
263
	    return (PolytomousKey) viewer.getInput();
264
	}
242 265
	private void createMenu() {
243 266
		// register context menu
244 267
		MenuManager menuManager = new MenuManager();
......
254 277
	// This will create the columns for the table
255 278
	private void createColumns(TableViewer viewer) {
256 279
		Table table = viewer.getTable();
257
		String[] titles = { "Node Number", "Question", "Statement", "Link" };
258
		int[] bounds = { 50, 200, 200, 100 };
280
		String[] titles = { "Node Number", "Question", "Statement", "Link", "Taxon" };
281
		int[] bounds = { 50, 200, 200, 100, 200 };
259 282

  
260 283
		for (int i = 0; i < titles.length; i++) {
261 284
			TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
......
288 311
	 */
289 312
	@Override
290 313
	public void changed(Object element) {
291
		viewer.update(element, null);
314
	    if(element != null) {
315
	        viewer.update(element, null);
316
	    }
292 317

  
293 318
		if (element instanceof PolytomousKeyNode) {
294 319
			List<PolytomousKeyNode> children = ((PolytomousKeyNode) element)

Also available in: Unified diff