Project

General

Profile

« Previous | Next » 

Revision 872d7328

Added by Cherian Mathew almost 9 years ago

DefinedTermDropAdapter : added selection of source objects after drop and disabled insert feedback for non OrderedTermBase objects
DefinedTermEditor : added custom sorter for OrderedTermBase (descending)
MoveDefinedTermOperation : added possibility to move term when cursor is in the insert part of the list

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermEditor.java
15 15
import org.eclipse.jface.viewers.ISelection;
16 16
import org.eclipse.jface.viewers.StructuredSelection;
17 17
import org.eclipse.jface.viewers.TreeViewer;
18
import org.eclipse.jface.viewers.Viewer;
18 19
import org.eclipse.jface.viewers.ViewerSorter;
19 20
import org.eclipse.swt.SWT;
20 21
import org.eclipse.swt.dnd.DND;
......
35 36
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
36 37
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
37 38
import eu.etaxonomy.cdm.model.common.CdmBase;
39
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
38 40
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
39 41
import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
40 42
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
......
84 86
			viewer.getControl().setLayoutData(LayoutConstants.FILL());
85 87
			viewer.setContentProvider(new TermContentProvider());
86 88
			viewer.setLabelProvider(new TermLabelProvider());
87
			viewer.setSorter(new ViewerSorter());
89
			viewer.setSorter(new DefinedTermSorter());
88 90

  
89 91
			Transfer[] transfers = new Transfer[] { TermTransfer.getInstance() };
90 92
			viewer.addDragSupport(dndOperations, transfers, new DefinedTermDragListener(viewer));
......
231 233
		return viewer;
232 234
	}
233 235

  
236
	private class DefinedTermSorter extends ViewerSorter {
237

  
238
	    @Override
239
	    public int compare(Viewer viewer, Object e1, Object e2) {
240
	        // the comparison value in this method determines the
241
	        // location <-> add term method used in the MoveDefinedTermOperation
242
	        // execute call
243
	        if(e1 instanceof OrderedTermBase && e2 instanceof OrderedTermBase) {
244
	            OrderedTermBase otbe1 = (OrderedTermBase)e1;
245
	            OrderedTermBase otbe2 = (OrderedTermBase)e2;
246
	            if(otbe1.getOrderIndex() == otbe2.getOrderIndex()) {
247
	                return 0;
248
	            } else if(otbe1.isHigher(otbe2)) {
249
	                return 1;
250
	            } else {
251
	                return -1;
252
	            }
253
	        } else {
254
	            return super.compare(viewer, e1, e2);
255
	        }
256
	    }
257
	}
234 258

  
235 259

  
236 260
}

Also available in: Unified diff