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.
90 public Set
getAttachedEntities() {
91 // TODO Auto-generated method stub
96 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getEntity()
99 * <p>Getter for the field <code>entity</code>.</p>
101 * @return a T object.
103 public T
getEntity() {
108 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getEditableText()
111 * <p>getEditableText</p>
113 * @return a {@link java.lang.String} object.
115 public String
getEditableText() {
116 return lineDisplayStrategy
.getText(entity
);
120 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getMergeTarget()
123 * <p>Getter for the field <code>mergeTarget</code>.</p>
125 * @return a T object.
127 public T
getMergeTarget() {
132 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isMarkedAsDeleted()
135 * <p>isMarkedAsDeleted</p>
139 public boolean isMarkedAsDeleted() {
140 return super.isMarkedDeleted();
144 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isMarkedAsMerged()
147 * <p>isMarkedAsMerged</p>
151 public boolean isMarkedAsMerged() {
152 return markedAsMerged
;
156 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isMarkedAsNew()
159 * <p>isMarkedAsNew</p>
163 public boolean isMarkedAsNew() {
168 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsDeleted()
171 * <p>markAsDeleted</p>
173 public void markAsDeleted() {
174 super.markDeleted(true);
175 if (!isMarkedAsMerged()) {
176 lineDisplayStrategy
.setStatusMessage(entity
+ " deleted.", entity
);
181 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsMerged(eu.etaxonomy.cdm.model.common.CdmBase)
184 * <p>markAsMerged</p>
186 * @param mergeTarget a T object.
188 public void markAsMerged(T mergeTarget
) {
189 this.mergeTarget
= mergeTarget
;
190 markedAsMerged
= true;
191 lineDisplayStrategy
.setStatusMessage("'" + entity
+ "' merged into '" + mergeTarget
+ "'.", entity
);
195 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsNew()
198 public void markAsNew(boolean isNew
) {
200 lineDisplayStrategy
.setStatusMessage("New entity created.", entity
);
204 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#setDirty(boolean)
207 public void setDirty(boolean dirty
) {
212 * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#isDirty()
219 public boolean isDirty() {
224 * <p>getHoverText</p>
226 * @return a {@link java.lang.String} object.
228 public String
getHoverText() {
229 return lineDisplayStrategy
.getHoverText(entity
);