Project

General

Profile

« Previous | Next » 

Revision 3be6ef3e

Added by Niels Hoffmann over 13 years ago

performed javacscript:fix and worked on documentation

View differences:

taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeAcceptedTaxonToSynonymHandler.java
1
/**
2
 * 
3
 */
4
package eu.etaxonomy.taxeditor.editor.name.handler;
5

  
6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.UUID;
9

  
10
import org.apache.log4j.Logger;
11
import org.eclipse.core.commands.AbstractHandler;
12
import org.eclipse.core.commands.ExecutionEvent;
13
import org.eclipse.core.commands.ExecutionException;
14
import org.eclipse.core.commands.IHandler;
15
import org.eclipse.core.commands.common.NotDefinedException;
16
import org.eclipse.swt.widgets.Display;
17
import org.eclipse.ui.PartInitException;
18
import org.eclipse.ui.handlers.HandlerUtil;
19

  
20
import eu.etaxonomy.cdm.model.common.CdmBase;
21
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
22
import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonNodeSelectionDialog;
23
import eu.etaxonomy.taxeditor.editor.EditorUtil;
24
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
25
import eu.etaxonomy.taxeditor.editor.Page;
26
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
27
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
28
import eu.etaxonomy.taxeditor.operations.ChangeAcceptedTaxonToSynonymOperation;
29
import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
30

  
31
/**
32
 * 
33
 * @author n.hoffmann
34
 * @created Jan 4, 2010
35
 * @version 1.0
36
 */
37
public class ChangeAcceptedTaxonToSynonymHandler extends AbstractHandler
38
		implements IHandler, IPostOperationEnabled {
39
	private static final Logger logger = Logger
40
			.getLogger(ChangeAcceptedTaxonToSynonymHandler.class);
41
	private ChangeAcceptedTaxonToSynonymOperation operation;
42

  
43
	private UUID newAcceptedTaxonNodeUuid;
44
	private TaxonNameEditor editor;
45
	
46
	/* (non-Javadoc)
47
	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
48
	 */
49
	public Object execute(ExecutionEvent event) throws ExecutionException {
50
		
51
		editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
52
				Page.NAME);
53
		TaxonNode oldAcceptedTaxonNode = ((TaxonEditorInput) editor.getEditorInput()).getTaxonNode();
54
		
55
		// Choose new accepted taxon	
56
		List<UUID> excludeTaxa = new ArrayList<UUID>();
57
		excludeTaxa.add(oldAcceptedTaxonNode.getUuid());
58
		TaxonNode newAcceptedTaxonNode = FilteredTaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Choose the accepted taxon", excludeTaxa, null);
59

  
60
		if (newAcceptedTaxonNode == null) {
61
			return null;
62
		}
63
		
64
		newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
65
				
66
		try {
67
			operation = new ChangeAcceptedTaxonToSynonymOperation(event.getCommand().getName(), 
68
									editor.getUndoContext(), oldAcceptedTaxonNode, newAcceptedTaxonNode, this, editor);
69
			EditorUtil.executeOperation(operation);
70
			
71
		} catch (NotDefinedException e) {
72
			logger.warn("Command name not set");
73
		}
74
		
75
		return null;
76
		
77
	}
78

  
79
	/* (non-Javadoc)
80
	 * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
81
	 */
82
	public boolean postOperation(CdmBase objectAffectedByOperation) {
83
		Display.getDefault().asyncExec(new Runnable(){
84

  
85
			public void run() {
86
				EditorUtil.close(editor.getMultiPageTaxonEditor());
87
				
88
				try {
89
					MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);
90
					if(possibleOpenEditor != null){
91
						EditorUtil.close(possibleOpenEditor);
92
					}
93
					EditorUtil.openTaxonNode(newAcceptedTaxonNodeUuid);
94
				} catch (PartInitException e) {
95
					EditorUtil.error(this.getClass(), e);
96
					throw new RuntimeException(e);
97
				} catch (Exception e) {
98
					EditorUtil.warningDialog("Could not create Taxon", this, e.getMessage());
99
				}
100
			}
101
			
102
		});
103
		
104
		
105
		return true;
106
	}
107

  
108
	public boolean onComplete() {
109
		// TODO Auto-generated method stub
110
		return false;
111
	}	
112
}
1
/**
2
 * 
3
 */
4
package eu.etaxonomy.taxeditor.editor.name.handler;
5

  
6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.UUID;
9

  
10
import org.apache.log4j.Logger;
11
import org.eclipse.core.commands.AbstractHandler;
12
import org.eclipse.core.commands.ExecutionEvent;
13
import org.eclipse.core.commands.ExecutionException;
14
import org.eclipse.core.commands.IHandler;
15
import org.eclipse.core.commands.common.NotDefinedException;
16
import org.eclipse.swt.widgets.Display;
17
import org.eclipse.ui.PartInitException;
18
import org.eclipse.ui.handlers.HandlerUtil;
19

  
20
import eu.etaxonomy.cdm.model.common.CdmBase;
21
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
22
import eu.etaxonomy.taxeditor.dialogs.filteredSelection.FilteredTaxonNodeSelectionDialog;
23
import eu.etaxonomy.taxeditor.editor.EditorUtil;
24
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
25
import eu.etaxonomy.taxeditor.editor.Page;
26
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
27
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
28
import eu.etaxonomy.taxeditor.operations.ChangeAcceptedTaxonToSynonymOperation;
29
import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;
30

  
31
/**
32
 * <p>ChangeAcceptedTaxonToSynonymHandler class.</p>
33
 *
34
 * @author n.hoffmann
35
 * @created Jan 4, 2010
36
 * @version 1.0
37
 */
38
public class ChangeAcceptedTaxonToSynonymHandler extends AbstractHandler
39
		implements IHandler, IPostOperationEnabled {
40
	private static final Logger logger = Logger
41
			.getLogger(ChangeAcceptedTaxonToSynonymHandler.class);
42
	private ChangeAcceptedTaxonToSynonymOperation operation;
43

  
44
	private UUID newAcceptedTaxonNodeUuid;
45
	private TaxonNameEditor editor;
46
	
47
	/* (non-Javadoc)
48
	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
49
	 */
50
	/** {@inheritDoc} */
51
	public Object execute(ExecutionEvent event) throws ExecutionException {
52
		
53
		editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
54
				Page.NAME);
55
		TaxonNode oldAcceptedTaxonNode = ((TaxonEditorInput) editor.getEditorInput()).getTaxonNode();
56
		
57
		// Choose new accepted taxon	
58
		List<UUID> excludeTaxa = new ArrayList<UUID>();
59
		excludeTaxa.add(oldAcceptedTaxonNode.getUuid());
60
		TaxonNode newAcceptedTaxonNode = FilteredTaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Choose the accepted taxon", excludeTaxa, null);
61

  
62
		if (newAcceptedTaxonNode == null) {
63
			return null;
64
		}
65
		
66
		newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
67
				
68
		try {
69
			operation = new ChangeAcceptedTaxonToSynonymOperation(event.getCommand().getName(), 
70
									editor.getUndoContext(), oldAcceptedTaxonNode, newAcceptedTaxonNode, this, editor);
71
			EditorUtil.executeOperation(operation);
72
			
73
		} catch (NotDefinedException e) {
74
			logger.warn("Command name not set");
75
		}
76
		
77
		return null;
78
		
79
	}
80

  
81
	/* (non-Javadoc)
82
	 * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
83
	 */
84
	/** {@inheritDoc} */
85
	public boolean postOperation(CdmBase objectAffectedByOperation) {
86
		Display.getDefault().asyncExec(new Runnable(){
87

  
88
			public void run() {
89
				EditorUtil.close(editor.getMultiPageTaxonEditor());
90
				
91
				try {
92
					MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);
93
					if(possibleOpenEditor != null){
94
						EditorUtil.close(possibleOpenEditor);
95
					}
96
					EditorUtil.openTaxonNode(newAcceptedTaxonNodeUuid);
97
				} catch (PartInitException e) {
98
					EditorUtil.error(this.getClass(), e);
99
					throw new RuntimeException(e);
100
				} catch (Exception e) {
101
					EditorUtil.warningDialog("Could not create Taxon", this, e.getMessage());
102
				}
103
			}
104
			
105
		});
106
		
107
		
108
		return true;
109
	}
110

  
111
	/**
112
	 * <p>onComplete</p>
113
	 *
114
	 * @return a boolean.
115
	 */
116
	public boolean onComplete() {
117
		// TODO Auto-generated method stub
118
		return false;
119
	}	
120
}

Also available in: Unified diff