Project

General

Profile

« Previous | Next » 

Revision b5920c8b

Added by Patrick Plitzner over 5 years ago

ref #6786 Fix term sorting in feature tree editor

  • extracted term sorter to individual class file

View differences:

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