1
|
package eu.etaxonomy.taxeditor.ui.section.description;
|
2
|
|
3
|
import java.util.Collection;
|
4
|
import java.util.EnumSet;
|
5
|
|
6
|
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
|
7
|
import eu.etaxonomy.cdm.model.common.IntextReference;
|
8
|
import eu.etaxonomy.cdm.model.common.Language;
|
9
|
import eu.etaxonomy.cdm.model.common.LanguageString;
|
10
|
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
|
11
|
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
|
12
|
import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
|
13
|
import eu.etaxonomy.cdm.model.description.TextData;
|
14
|
import eu.etaxonomy.cdm.model.reference.Reference;
|
15
|
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
|
16
|
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
|
17
|
import eu.etaxonomy.taxeditor.store.StoreUtil;
|
18
|
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
|
19
|
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
|
20
|
import eu.etaxonomy.taxeditor.ui.element.ILanguageStringProvider;
|
21
|
import eu.etaxonomy.taxeditor.ui.element.LanguageRichTextWithLabel;
|
22
|
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
|
23
|
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection.ExpandListener;
|
24
|
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
|
25
|
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
|
26
|
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
|
27
|
import eu.etaxonomy.taxeditor.util.RichtextHelper;
|
28
|
|
29
|
public class IntextReferenceSection extends AbstractEntityCollectionSection<LanguageString, IntextReference> {
|
30
|
private ILanguageStringProvider langStringElement;
|
31
|
public IntextReferenceSection(CdmFormFactory formFactory, ConversationHolder conversation,
|
32
|
ICdmFormElement parentElement, int style) {
|
33
|
super(formFactory, conversation, parentElement, "Intext References",style);
|
34
|
if (parentElement instanceof ILanguageStringProvider){
|
35
|
langStringElement = (ILanguageStringProvider)parentElement;
|
36
|
}
|
37
|
}
|
38
|
|
39
|
@Override
|
40
|
public Collection<IntextReference> getCollection(LanguageString entity) {
|
41
|
if (entity == null){
|
42
|
return null;
|
43
|
}
|
44
|
return getEntity().getIntextReferences();
|
45
|
}
|
46
|
|
47
|
/** {@inheritDoc} */
|
48
|
@Override
|
49
|
public IntextReference createNewElement() {
|
50
|
return IntextReference.NewEmptyInstance(this.getEntity());
|
51
|
}
|
52
|
|
53
|
|
54
|
@Override
|
55
|
public void addElement(IntextReference element) {
|
56
|
getEntity().addIntextReference(element);
|
57
|
}
|
58
|
|
59
|
@Override
|
60
|
public IntextReference addExisting() {
|
61
|
// TODO Auto-generated method stub
|
62
|
return null;
|
63
|
}
|
64
|
|
65
|
@Override
|
66
|
public boolean allowAddExisting() {
|
67
|
// TODO Auto-generated method stub
|
68
|
return false;
|
69
|
}
|
70
|
|
71
|
@Override
|
72
|
public void removeElement(IntextReference element) {
|
73
|
// int posStart = element.getStartPos();
|
74
|
// int posEnd = element.getEndPos();
|
75
|
// int posFirstEnd = getEntity().getText().indexOf(">", posStart);
|
76
|
// if (posFirstEnd >-1){
|
77
|
// String removeString = getEntity().getText().substring(posStart, posFirstEnd+1);
|
78
|
// getEntity().setText(getEntity().getText().replace("", removeString));
|
79
|
// removeString = getEntity().getText().substring(posEnd, getEntity().getText().indexOf(">", posEnd));
|
80
|
// getEntity().setText(getEntity().getText().replace("", removeString));
|
81
|
// }
|
82
|
|
83
|
String originalString = getEntity().getText();
|
84
|
String cdmMarkup = RichtextHelper.createCdmMarkUp(element, "(.*?)");
|
85
|
String inlineString = RichtextHelper.findInlineString(originalString, cdmMarkup);
|
86
|
getEntity().setText(originalString.replace(inlineString, ""));
|
87
|
getEntity().removeIntextReference(element);
|
88
|
|
89
|
langStringElement.setLanguageString(getEntity());
|
90
|
|
91
|
}
|
92
|
|
93
|
@Override
|
94
|
public String getEmptyString() {
|
95
|
// TODO Auto-generated method stub
|
96
|
return null;
|
97
|
}
|
98
|
|
99
|
@Override
|
100
|
protected String getTooltipString() {
|
101
|
// TODO Auto-generated method stub
|
102
|
return null;
|
103
|
}
|
104
|
@Override
|
105
|
protected void addExpandListener() {
|
106
|
setExpanded(false);
|
107
|
addExpansionListener(new ExpandListener());
|
108
|
}
|
109
|
|
110
|
public ILanguageStringProvider getlangStringElement(){
|
111
|
return langStringElement;
|
112
|
}
|
113
|
|
114
|
}
|