3 * Copyright (C) 2007 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
.annotatedlineeditor
;
14 import org
.apache
.log4j
.Logger
;
15 import org
.eclipse
.jface
.text
.source
.Annotation
;
18 * An <code>Annotation</code> which spans an entire line and holds an object associated
19 * with the line in an <code>IEntityContainer</code>.
25 public class LineAnnotation
<T
> extends Annotation
implements IEntityContainer
<T
> {
26 @SuppressWarnings("unused")
27 private static final Logger logger
= Logger
28 .getLogger(LineAnnotationModel
.class);
30 /** Constant <code>TYPE_GENERIC="Annotation.TYPE_UNKNOWN"</code> */
31 public static final String TYPE_GENERIC
= Annotation
.TYPE_UNKNOWN
;
34 private ILineDisplayStrategy lineDisplayStrategy
;
36 private boolean dirty
= false;
37 private boolean markedAsMerged
;
38 private boolean markedAsNew
;
39 private T mergeTarget
;
43 * <p>Constructor for LineAnnotation.</p>
45 * @param entity a T object.
46 * @param lineDisplayStrategy a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy} object.
47 * @param <T> a T object.
49 public LineAnnotation(T entity
, ILineDisplayStrategy lineDisplayStrategy
) {
51 this.lineDisplayStrategy
= lineDisplayStrategy
;
52 setType(TYPE_GENERIC
);
56 * @see org.eclipse.jface.text.source.Annotation#getText()
60 public String
getText() {
61 return getEditableText();
65 * @see org.eclipse.jface.text.source.Annotation#setText(java.lang.String)
69 public void setText(String text
) {
70 lineDisplayStrategy
.setText(text
, entity
);
77 public String
toString() {
83 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getAttachedEntities()
86 * <p>getAttachedEntities</p>
88 * @return a {@link java.util.Set} object.
91 public Set
getAttachedEntities() {
92 // TODO Auto-generated method stub
97 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getEntity()
100 * <p>Getter for the field <code>entity</code>.</p>
102 * @return a T object.
105 public T
getEntity() {
110 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getEditableText()
113 * <p>getEditableText</p>
115 * @return a {@link java.lang.String} object.
118 public String
getEditableText() {
119 return lineDisplayStrategy
.getText(entity
);
123 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getMergeTarget()
126 * <p>Getter for the field <code>mergeTarget</code>.</p>
128 * @return a T object.
131 public T
getMergeTarget() {
136 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isMarkedAsDeleted()
139 * <p>isMarkedAsDeleted</p>
144 public boolean isMarkedAsDeleted() {
145 return super.isMarkedDeleted();
149 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isMarkedAsMerged()
152 * <p>isMarkedAsMerged</p>
157 public boolean isMarkedAsMerged() {
158 return markedAsMerged
;
162 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isMarkedAsNew()
165 * <p>isMarkedAsNew</p>
170 public boolean isMarkedAsNew() {
175 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsDeleted()
178 * <p>markAsDeleted</p>
181 public void markAsDeleted() {
182 super.markDeleted(true);
183 if (!isMarkedAsMerged()) {
184 lineDisplayStrategy
.setStatusMessage(entity
+ " deleted.", entity
);
189 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsMerged(eu.etaxonomy.cdm.model.common.CdmBase)
192 * <p>markAsMerged</p>
194 * @param mergeTarget a T object.
197 public void markAsMerged(T mergeTarget
) {
198 this.mergeTarget
= mergeTarget
;
199 markedAsMerged
= true;
200 lineDisplayStrategy
.setStatusMessage("'" + entity
+ "' merged into '" + mergeTarget
+ "'.", entity
);
204 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsNew()
208 public void markAsNew(boolean isNew
) {
210 lineDisplayStrategy
.setStatusMessage("New entity created.", entity
);
214 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#setDirty(boolean)
218 public void setDirty(boolean dirty
) {
223 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isDirty()
231 public boolean isDirty() {
236 * <p>getHoverText</p>
238 * @return a {@link java.lang.String} object.
240 public String
getHoverText() {
241 return lineDisplayStrategy
.getHoverText(entity
);
245 * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityContainer#setEntity(java.lang.Object)
248 public void setEntity(Object entity
) {
249 this.entity
= (T
) entity
;