Project

General

Profile

« Previous | Next » 

Revision 0a534d09

Added by Patrick Plitzner over 10 years ago

  • adapted sub classes of AbstractPostOperation

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperation.java
1 1
/**
2 2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
3
* European Distributed Institute of Taxonomy
4 4
* http://www.e-taxonomy.eu
5
* 
5
*
6 6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7 7
* See LICENSE.TXT at the top of this package for the full license terms.
8 8
*/
......
35 35
	/**
36 36
	 * The synonym to be moved.
37 37
	 */
38
	private Synonym synonym; 
38
	private final Synonym synonym;
39 39
	/**
40 40
	 * The former homotypical group the synonym belonged to
41 41
	 */
42
	private HomotypicalGroup oldHomotypicalGroup;
42
	private final HomotypicalGroup oldHomotypicalGroup;
43 43
	/**
44 44
	 * The homotypical group the synonym is to be moved to
45 45
	 */
46
	private HomotypicalGroup newHomotypicalGroup;
47
	
46
	private final HomotypicalGroup newHomotypicalGroup;
47

  
48 48
	/**
49 49
	 * <p>Constructor for ChangeHomotypicGroupOperation.</p>
50 50
	 *
......
55 55
	 * @param newHomotypicalGroup a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
56 56
	 * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
57 57
	 */
58
	public ChangeHomotypicGroupOperation(String label, IUndoContext undoContext, 
58
	public ChangeHomotypicGroupOperation(String label, IUndoContext undoContext,
59 59
			Taxon taxon, Synonym synonym, HomotypicalGroup newHomotypicalGroup, IPostOperationEnabled postOperationEnabled) {
60 60
		super(label, undoContext, taxon, postOperationEnabled);
61
		
61

  
62 62
		this.synonym = synonym;
63 63
		if(synonym == null){
64 64
			throw new IllegalArgumentException(
65 65
					"A null synonym was provided.");
66 66
		}
67
		
67

  
68 68
		this.oldHomotypicalGroup = synonym.getHomotypicGroup();
69 69
		this.newHomotypicalGroup = newHomotypicalGroup != null ? newHomotypicalGroup : HomotypicalGroup.NewInstance();
70 70
	}
......
76 76
	@Override
77 77
	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
78 78
			throws ExecutionException {
79
		
79

  
80 80
    	// Get synonym name
81 81
		TaxonNameBase<?, ?> synonymName = synonym.getName();
82 82
		monitor.worked(20);
83
        
83

  
84 84
		// TODO pass in homotypical group's taxon in case we are dragging from one editor to another
85
		
85

  
86 86
		// Switch groups
87 87
		oldHomotypicalGroup.removeTypifiedName(synonymName);
88 88
		monitor.worked(40);
89 89

  
90 90
		newHomotypicalGroup.addTypifiedName(synonymName);
91
		
92
		if(! synonym.getAcceptedTaxa().contains(taxon)){
91

  
92
		if(! synonym.getAcceptedTaxa().contains(element)){
93 93
			for(Taxon acceptedTaxon : synonym.getAcceptedTaxa()){
94 94
				acceptedTaxon.removeSynonym(synonym);
95 95
			}
96
			
96

  
97 97
			SynonymRelationshipType type = SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF();
98
			if(newHomotypicalGroup.getTypifiedNames().contains(taxon.getName())){
98
			if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
99 99
				type = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();
100 100
			}
101
			
102
			taxon.addSynonym(synonym, type);
101

  
102
			element.addSynonym(synonym, type);
103 103
		}
104
		
104

  
105 105
		// Redraw editor if it exists
106 106
		return postExecute(synonym);
107 107
	}
......
123 123
	@Override
124 124
	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
125 125
			throws ExecutionException {
126
		
126

  
127 127
		// Get synonym name
128 128
		TaxonNameBase<?, ?> synonymName = this.synonym.getName();
129 129
		if(synonymName == null){
130 130
			// TODO
131 131
		}
132
		
132

  
133 133
		// TODO pass in homotypical group's taxon in case we are dragging from one editor to another
134
		
134

  
135 135
		// Switch groups
136 136
		newHomotypicalGroup.removeTypifiedName(synonymName);
137
		oldHomotypicalGroup.addTypifiedName(synonymName);		
138
		
137
		oldHomotypicalGroup.addTypifiedName(synonymName);
138

  
139 139
		// Redraw editor if it exists
140 140
		return postExecute(synonym);
141 141
	}

Also available in: Unified diff