Project

General

Profile

Download (4.81 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9
package eu.etaxonomy.taxeditor.bulkeditor.input;
10

    
11
import java.util.Arrays;
12
import java.util.List;
13
import java.util.UUID;
14

    
15
import eu.etaxonomy.cdm.api.service.IReferenceService;
16
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
17
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
18
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
19
import eu.etaxonomy.cdm.model.common.MarkerType;
20
import eu.etaxonomy.cdm.model.reference.Reference;
21
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
22
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
23
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.ReferenceCreator;
24
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
25
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.ReferenceSortProvider;
26
import eu.etaxonomy.taxeditor.store.CdmStore;
27

    
28

    
29
/**
30
 * <p>ReferenceEditorInput class.</p>
31
 *
32
 * @author p.ciardelli
33
 * @created 25.06.2009
34
 */
35
public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
36

    
37
	/**
38
	 *
39
	 */
40
	private static final long serialVersionUID = 3806243517765126749L;
41

    
42
	/** Constant <code>ID="bulkeditor.input.reference"</code> */
43
	public static final String ID = "bulkeditor.input.reference";
44

    
45
	private static ReferenceEditorInput instance;
46

    
47
	/**
48
	 * <p>getID</p>
49
	 *
50
	 * @return the iD
51
	 */
52
	public static String getID() {
53
		return ID;
54
	}
55

    
56
    @Override
57
    public String getName() {
58
		return BulkEditorInputType.REFERENCE.label;
59
	}
60

    
61
	/**
62
	 * <p>Getter for the field <code>instance</code>.</p>
63
	 *
64
	 * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
65
	 */
66
	public static AbstractBulkEditorInput getInstance() {
67
		if (instance == null) {
68
			instance = new ReferenceEditorInput();
69
		}
70
		return instance;
71
	}
72

    
73
	/* (non-Javadoc)
74
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
75
	 */
76
	/** {@inheritDoc} */
77
	@Override
78
	public boolean isMergingEnabled() {
79
		return true;
80
	}
81

    
82
	/* (non-Javadoc)
83
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMarkerTypeEditingEnabled(eu.etaxonomy.cdm.model.common.MarkerType)
84
	 */
85
	/** {@inheritDoc} */
86
	@Override
87
	public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
88
		if (MarkerType.PUBLISH().equals(markerType)) {
89
			return true;
90
		}
91
		return super.isMarkerTypeEditingEnabled(markerType);
92
	}
93

    
94

    
95
	/** {@inheritDoc} */
96
	@Override
97
	public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
98
		return CdmStore.getSearchManager().findReferences(configurator);
99
	}
100

    
101
	// Entity persistence
102

    
103
	/** {@inheritDoc} */
104
	@Override
105
	public Reference loadEntity(UUID entityUuid) {
106
		List<String> propertyPaths = Arrays.asList(new String[]{"*", "inReference.*", "authorTeam.*"});
107
		return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths);
108
	}
109

    
110
	/** {@inheritDoc}
111
	 * @throws ReferencedObjectUndeletableException */
112
	@Override
113
    public boolean delete(Reference entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
114
	    if (entity.getUuid() != null){
115
	        return CdmStore.getService(IReferenceService.class).delete(entity.getUuid()) != null;
116
	    }else{
117
	        return false;
118
	    }
119
	}
120

    
121
	/** {@inheritDoc} */
122
	@Override
123
    public Reference save(Reference entity) {
124
	   return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
125
	}
126

    
127
	/* (non-Javadoc)
128
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
129
	 */
130
	@Override
131
	protected IEntityCreator<Reference> createEntityCreator() {
132
		return new ReferenceCreator();
133
	}
134

    
135
	/* (non-Javadoc)
136
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
137
	 */
138
	@Override
139
	public List<IBulkEditorSortProvider<Reference>> getSortProviders() {
140
		List<IBulkEditorSortProvider<Reference>> sortProviders = super.getSortProviders();
141

    
142
		sortProviders.add(0, new IdentifiableEntitySortProvider<Reference>());
143
		sortProviders.add(1, new ReferenceSortProvider());
144

    
145
		return sortProviders;
146
	}
147

    
148
	/* (non-Javadoc)
149
	 * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
150
	 */
151
	@Override
152
	public String getTypeText(Object entity) {
153
		if(entity instanceof Reference){
154
			return ((Reference) entity).getType().getMessage(CdmStore.getDefaultLanguage());
155
		}
156
		return super.getTypeText(entity);
157
	}
158

    
159
    /* (non-Javadoc)
160
     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
161
     */
162
    @Override
163
    public void merge() {
164

    
165
    }
166

    
167
}
(9-9/11)