2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
.operation
;
11 import java
.util
.UUID
;
13 import org
.apache
.log4j
.Logger
;
14 import org
.eclipse
.core
.runtime
.Assert
;
15 import org
.eclipse
.core
.runtime
.IAdaptable
;
16 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
17 import org
.eclipse
.core
.runtime
.IStatus
;
18 import org
.eclipse
.core
.runtime
.Status
;
19 import org
.eclipse
.core
.runtime
.jobs
.Job
;
20 import org
.eclipse
.swt
.widgets
.Display
;
21 import org
.eclipse
.ui
.progress
.IProgressConstants
;
23 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationException
;
24 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationState
;
25 import eu
.etaxonomy
.cdm
.api
.application
.CdmChangeEvent
.Action
;
26 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
27 import eu
.etaxonomy
.cdm
.api
.service
.UpdateResult
;
28 import eu
.etaxonomy
.cdm
.api
.service
.config
.SecundumForSubtreeConfigurator
;
29 import eu
.etaxonomy
.cdm
.common
.monitor
.IRemotingProgressMonitor
;
30 import eu
.etaxonomy
.taxeditor
.model
.AbstractUtility
;
31 import eu
.etaxonomy
.taxeditor
.navigation
.l10n
.Messages
;
32 import eu
.etaxonomy
.taxeditor
.operation
.IPostMoniteredOperationEnabled
;
33 import eu
.etaxonomy
.taxeditor
.operation
.RemotingCdmUpdateOperation
;
40 public class SetSecundumForSubtreeOperation
extends RemotingCdmUpdateOperation
implements IPostMoniteredOperationEnabled
{
42 private final static String LABEL
= Messages
.SetSecundumForSubtreeOperation_CHANGE_SEC_OP
;
43 private static final Logger logger
= Logger
44 .getLogger(SetSecundumForSubtreeOperation
.class);
46 SecundumForSubtreeConfigurator config
;
55 public SetSecundumForSubtreeOperation(Object source
,
58 SecundumForSubtreeConfigurator config
) {
59 super(LABEL
, Action
.Update
, source
, async
);
60 parentUuid
= taxonNodeUuid
;
68 protected UpdateResult
doUpdateExecute(IProgressMonitor monitor
, IAdaptable info
) throws Exception
{
69 // runMoniteredOperation();
71 Job job
= createJob(monitor
);
73 job
.setProperty(IProgressConstants
.KEEP_PROPERTY
, true);
84 private Job
createJob(IProgressMonitor monitor
){
85 Assert
.isNotNull(config
, "Configuration may not be null");
87 final Display display
= Display
.getDefault();
89 Job job
= new Job(Messages
.SetSecundumForSubtreeOperation_SET_SEC_TASK
) {
93 protected IStatus
run(IProgressMonitor monitor
) {
96 // eu.etaxonomy.cdm.common.monitor.IProgressMonitor cdmMonitor = CdmProgressMonitorAdapter.CreateMonitor(monitor);
97 // config.setMonitor(cdmMonitor);
98 ITaxonNodeService taxonService
= CdmApplicationState
.getService(ITaxonNodeService
.class);
99 // taxonService.setSecundumForSubtree(config.getSubtreeUuid(), config.getNewSecundum(), config.isIncludeAcceptedTaxa(), config.isIncludeSynonyms(), config.isOverwriteExistingAccepted(), config.isOverwriteExistingSynonyms(), config.isIncludeSharedTaxa(), config.isEmptySecundumDetail(), null);
100 updateResult
= taxonService
.setSecundumForSubtree(config
);
102 // Display.getDefault().asyncExec(new Runnable() {
104 // public void run() {
105 // AbstractUtility.executeMoniteredOperation("Update: " + config.getClass().getSimpleName(),
109 // SetSecundumForSubtreeOperation.this,
114 } catch (CdmApplicationException e
) {
115 // TODO Auto-generated catch block
119 return Status
.OK_STATUS
;
127 public void runMoniteredOperation() {
128 ITaxonNodeService nodeService
;
130 nodeService
= CdmApplicationState
.getService(ITaxonNodeService
.class);
132 final UUID uuid
= nodeService
.monitSetSecundum(config
);
133 Display
.getDefault().asyncExec(new Runnable() {
136 AbstractUtility
.executeMoniteredOperation("Set Secundum Reference for Subtree: ",
140 SetSecundumForSubtreeOperation
.this,
144 } catch (CdmApplicationException e
) {
145 // TODO Auto-generated catch block
157 public void postOperation(IRemotingProgressMonitor monitor
) {
158 // TODO Auto-generated method stub