3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
.operation
;
12 import java
.util
.HashSet
;
14 import java
.util
.UUID
;
16 import org
.eclipse
.core
.runtime
.IAdaptable
;
17 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
19 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationState
;
20 import eu
.etaxonomy
.cdm
.api
.application
.CdmChangeEvent
.Action
;
21 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
22 import eu
.etaxonomy
.cdm
.api
.service
.UpdateResult
;
23 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
24 import eu
.etaxonomy
.taxeditor
.operation
.RemotingCdmUpdateOperation
;
31 public class RemotingMoveTaxonOperation
extends RemotingCdmUpdateOperation
{
33 private final static String LABEL
= "Move Taxon operation";
35 private Set
<UUID
> taxonNodesToMoveUuid
;
36 private final UUID newParentTreeNodeUuid
;
37 private final boolean moveToParentNode
;
39 public RemotingMoveTaxonOperation(Object source
,
41 UUID taxonNodeToMoveUuid
,
42 UUID newParentTreeNodeUuid
,
43 boolean moveToParentNode
) {
44 super(LABEL
, Action
.Update
, source
,async
);
45 taxonNodesToMoveUuid
= new HashSet
<UUID
>();
46 taxonNodesToMoveUuid
.add(taxonNodeToMoveUuid
);
47 this.newParentTreeNodeUuid
= newParentTreeNodeUuid
;
48 this.moveToParentNode
= moveToParentNode
;
51 public RemotingMoveTaxonOperation(Object source
,
53 TaxonNode taxonNodeToMove
,
54 TaxonNode newParentTreeNode
,
55 boolean moveToParentNode
) {
56 super(LABEL
, Action
.Update
, source
,async
);
57 taxonNodesToMoveUuid
= new HashSet
<UUID
>();
58 taxonNodesToMoveUuid
.add(taxonNodeToMove
.getUuid());
59 this.newParentTreeNodeUuid
= newParentTreeNode
.getUuid();
60 this.moveToParentNode
= moveToParentNode
;
63 public RemotingMoveTaxonOperation(Object source
,
65 Set
<UUID
> taxonNodesToMoveUuid
,
66 TaxonNode newParentTreeNode
,
67 boolean moveToParentNode
) {
68 super(LABEL
, Action
.Update
, source
,async
);
69 this.taxonNodesToMoveUuid
= taxonNodesToMoveUuid
;
70 this.newParentTreeNodeUuid
= newParentTreeNode
.getUuid();
71 this.moveToParentNode
= moveToParentNode
;
75 * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
78 protected UpdateResult
doUpdateExecute(IProgressMonitor monitor
, IAdaptable info
) throws Exception
{
79 return CdmApplicationState
.getService(ITaxonNodeService
.class).moveTaxonNodes(taxonNodesToMoveUuid
,
80 newParentTreeNodeUuid
);