Revision b5920c8b
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermSorter.java | ||
---|---|---|
1 |
// $Id$ |
|
2 |
/** |
|
3 |
* Copyright (C) 2018 EDIT |
|
4 |
* European Distributed Institute of Taxonomy |
|
5 |
* http://www.e-taxonomy.eu |
|
6 |
* |
|
7 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
|
8 |
* See LICENSE.TXT at the top of this package for the full license terms. |
|
9 |
*/ |
|
10 |
package eu.etaxonomy.taxeditor.editor.definedterm; |
|
11 |
|
|
12 |
import org.eclipse.jface.viewers.Viewer; |
|
13 |
import org.eclipse.jface.viewers.ViewerSorter; |
|
14 |
|
|
15 |
import eu.etaxonomy.cdm.model.common.OrderedTermBase; |
|
16 |
|
|
17 |
/** |
|
18 |
* @author pplitzner |
|
19 |
* @date 13.02.2018 |
|
20 |
* |
|
21 |
*/ |
|
22 |
public class DefinedTermSorter extends ViewerSorter { |
|
23 |
|
|
24 |
@Override |
|
25 |
public int compare(Viewer viewer, Object e1, Object e2) { |
|
26 |
// the comparison value in this method determines the |
|
27 |
// location <-> add term method used in the MoveDefinedTermOperation |
|
28 |
// execute call |
|
29 |
if(e1 instanceof OrderedTermBase && e2 instanceof OrderedTermBase) { |
|
30 |
OrderedTermBase otbe1 = (OrderedTermBase)e1; |
|
31 |
OrderedTermBase otbe2 = (OrderedTermBase)e2; |
|
32 |
if(otbe1.getOrderIndex() == otbe2.getOrderIndex()) { |
|
33 |
return 0; |
|
34 |
} else if (otbe1.getOrderIndex() < otbe2.getOrderIndex()){ |
|
35 |
return -1; |
|
36 |
} else{ |
|
37 |
return 1; |
|
38 |
} |
|
39 |
} else { |
|
40 |
return super.compare(viewer, e1, e2); |
|
41 |
} |
|
42 |
} |
|
43 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermEditorE4.java | ||
---|---|---|
25 | 25 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
26 | 26 |
import org.eclipse.jface.viewers.StructuredSelection; |
27 | 27 |
import org.eclipse.jface.viewers.TreeViewer; |
28 |
import org.eclipse.jface.viewers.Viewer; |
|
29 |
import org.eclipse.jface.viewers.ViewerSorter; |
|
30 | 28 |
import org.eclipse.swt.SWT; |
31 | 29 |
import org.eclipse.swt.dnd.DND; |
32 | 30 |
import org.eclipse.swt.dnd.Transfer; |
... | ... | |
38 | 36 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
39 | 37 |
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; |
40 | 38 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
41 |
import eu.etaxonomy.cdm.model.common.OrderedTermBase; |
|
42 | 39 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; |
40 |
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter; |
|
43 | 41 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermContentProvider; |
44 | 42 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermLabelProvider; |
45 | 43 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer; |
... | ... | |
206 | 204 |
return viewer; |
207 | 205 |
} |
208 | 206 |
|
209 |
private class DefinedTermSorter extends ViewerSorter { |
|
210 |
|
|
211 |
@Override |
|
212 |
public int compare(Viewer viewer, Object e1, Object e2) { |
|
213 |
// the comparison value in this method determines the |
|
214 |
// location <-> add term method used in the MoveDefinedTermOperation |
|
215 |
// execute call |
|
216 |
if(e1 instanceof OrderedTermBase && e2 instanceof OrderedTermBase) { |
|
217 |
OrderedTermBase otbe1 = (OrderedTermBase)e1; |
|
218 |
OrderedTermBase otbe2 = (OrderedTermBase)e2; |
|
219 |
if(otbe1.getOrderIndex() == otbe2.getOrderIndex()) { |
|
220 |
return 0; |
|
221 |
} else if (otbe1.getOrderIndex() < otbe2.getOrderIndex()){ |
|
222 |
return -1; |
|
223 |
} else{ |
|
224 |
return 1; |
|
225 |
} |
|
226 |
} else { |
|
227 |
return super.compare(viewer, e1, e2); |
|
228 |
} |
|
229 |
} |
|
230 |
} |
|
231 |
|
|
232 | 207 |
@PreDestroy |
233 | 208 |
public void dispose() { |
234 | 209 |
if(conversation!=null){ |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizardPage.java | ||
---|---|---|
27 | 27 |
import eu.etaxonomy.cdm.model.common.TermType; |
28 | 28 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
29 | 29 |
import eu.etaxonomy.cdm.model.description.Feature; |
30 |
import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter; |
|
30 | 31 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermContentProvider; |
31 | 32 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermLabelProvider; |
32 | 33 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
34 |
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; |
|
33 | 35 |
|
34 | 36 |
/** |
35 | 37 |
* @author n.hoffmann |
... | ... | |
56 | 58 |
|
57 | 59 |
viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); |
58 | 60 |
|
61 |
viewer.getControl().setLayoutData(LayoutConstants.FILL()); |
|
62 |
viewer.setContentProvider(new TermContentProvider()); |
|
63 |
viewer.setLabelProvider(new TermLabelProvider()); |
|
64 |
viewer.setSorter(new DefinedTermSorter()); |
|
65 |
|
|
59 | 66 |
viewer.setContentProvider(new TermContentProvider()); |
60 | 67 |
viewer.setLabelProvider(new TermLabelProvider()); |
61 | 68 |
// When user checks a checkbox in the tree, check all its children |
Also available in: Unified diff
ref #6786 Fix term sorting in feature tree editor