Project

General

Profile

« Previous | Next » 

Revision a3c56b93

Added by Patrick Plitzner over 5 years ago

ref #7887 Use DTOs in term editor

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermDropAdapterE4.java
14 14
import javax.inject.Inject;
15 15

  
16 16
import org.eclipse.e4.ui.di.UISynchronize;
17
import org.eclipse.jface.util.LocalSelectionTransfer;
18
import org.eclipse.jface.viewers.IStructuredSelection;
17 19
import org.eclipse.jface.viewers.StructuredSelection;
18
import org.eclipse.swt.dnd.DND;
19
import org.eclipse.swt.dnd.DropTargetEvent;
20 20
import org.eclipse.swt.dnd.TransferData;
21 21

  
22
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
23
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
24
import eu.etaxonomy.cdm.model.common.TermBase;
25
import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
22
import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
23
import eu.etaxonomy.cdm.persistence.dto.TermDto;
26 24
import eu.etaxonomy.taxeditor.editor.definedterm.operation.MoveDefinedTermOperation;
25
import eu.etaxonomy.taxeditor.model.AbstractUtility;
27 26
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
28 27
import eu.etaxonomy.taxeditor.store.StoreUtil;
29 28
import eu.etaxonomy.taxeditor.ui.EditViewerDropAdapter;
......
49 48

  
50 49
	@Override
51 50
	public boolean performDrop(Object data) {
52

  
53
		TermBase target = (TermBase) getCurrentTarget();//can be vocab
51
	    if(editor.checkDirty()){
52
	        return false;
53
	    }
54
		AbstractTermDto target = (AbstractTermDto) getCurrentTarget();//can be vocab
54 55
		int currentLocation = getCurrentLocation();
55
		Object[] droppedTerms = (Object[]) data;
56
		Collection<DefinedTermBase> sourceTerms = new ArrayList<DefinedTermBase>(); //Arrays.asList(droppedElements)
56
		IStructuredSelection droppedTerms = (IStructuredSelection) data;
57
		Collection<TermDto> sourceTerms = new ArrayList<>(); //Arrays.asList(droppedElements)
57 58

  
58
		for (Object droppedTerm : droppedTerms) {
59
			DefinedTermBase term = (DefinedTermBase) droppedTerm;
59
		for (Object droppedTerm : droppedTerms.toList()) {
60
		    TermDto term = (TermDto) droppedTerm;
60 61
			sourceTerms.add(term);
61 62
		}
62 63

  
......
66 67
		        sourceTerms,
67 68
		        editor,
68 69
		        currentLocation);
69
		//TODO: implement execute
70
		StoreUtil.executeOperation(operation, sync);
70
		AbstractUtility.executeOperation(operation, sync);
71 71
		// select the newly moved objects
72
		editor.getViewer().setSelection(new StructuredSelection(sourceTerms.toArray(new TermBase[sourceTerms.size()])));
72
		editor.getViewer().setSelection(new StructuredSelection(sourceTerms));
73 73

  
74 74
		return true;
75 75
	}
......
77 77
	@Override
78 78
	public boolean validateDrop(Object target, int operation,
79 79
			TransferData transferType) {
80
		boolean transferDataIsSupported = TermTransfer.getInstance().isSupportedType(transferType);
81
		// maybe don't need this - they will be all TermBase anyway
82
		return target instanceof TermBase && transferDataIsSupported;
83
	}
84

  
85
	@Override
86
	public void dragOver(DropTargetEvent event) {
87
	    super.dragOver(event);
88
	    TermBase target = (TermBase) getCurrentTarget();
89
	    if(!(target instanceof OrderedTermBase)) {
90
	        // this is to only disable insert between items
91
	        event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
92
	    }
93

  
94

  
80
        return LocalSelectionTransfer.getTransfer().isSupportedType(transferType) && target instanceof AbstractTermDto;
95 81
	}
96 82

  
97 83
}

Also available in: Unified diff