Revision 202edbff
Added by Andreas Müller about 3 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ColorResources.java | ||
---|---|---|
52 | 52 |
registerColor(registry, Resources.COLOR_CONTROL_BACKGROUND, 220, 220, 220); |
53 | 53 |
registerColor(registry, Resources.COLOR_CONTROL_SELECTED, 210, 210, 210); |
54 | 54 |
registerColor(registry, Resources.COLOR_CONTROL_SELECTED_FOCUS, 232,242,254); |
55 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT, 241,139,18); |
|
56 |
registerColor(registry, Resources.SEARCH_VIEW_FOREGROUND, 192, 192, 192); |
|
55 |
|
|
56 |
//colors1 and 2 are computed as next neutral color from the combined color |
|
57 |
//light colors are computed as second last color tints |
|
58 |
//see https://htmlcolorcodes.com/color-picker/ |
|
59 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1, 241,146,18); |
|
60 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1_LIGHT, 251, 228, 196); |
|
61 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT2, 241, 202, 18); |
|
62 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT2_LIGHT, 251, 242, 196); |
|
63 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1_2, 241, 90, 18); |
|
64 |
registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1_2_LIGHT, 251, 214, 196); |
|
65 |
|
|
66 |
registerColor(registry, Resources.SEARCH_VIEW_FOREGROUND, 192, 192, 192); |
|
57 | 67 |
registerColor(registry, Resources.SEARCH_VIEW_FOCUS, 0, 0, 0); |
58 | 68 |
registerColor(registry, Resources.BLACK, 0, 0, 0); |
59 | 69 |
registerColor(registry, Resources.COLOR_LIST_BACKGROUND, 150,150,150); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/Resources.java | ||
---|---|---|
59 | 59 |
/** Constant <code>COLOR_COMPOSITE_BACKGROUND="eu.etaxonomy.taxeditor.preferences.colo"{trunked}</code> */ |
60 | 60 |
public static final String COLOR_COMPOSITE_BACKGROUND = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeBackground"; |
61 | 61 |
/** Constant <code>COLOR_COMPOSITE_IRRELEVANT="eu.etaxonomy.taxeditor.preferences.colo"{trunked}</code> */ |
62 |
public static final String COLOR_COMPOSITE_IRRELEVANT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant"; |
|
62 |
public static final String COLOR_COMPOSITE_IRRELEVANT1 = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1"; |
|
63 |
public static final String COLOR_COMPOSITE_IRRELEVANT1_LIGHT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1_light"; |
|
64 |
public static final String COLOR_COMPOSITE_IRRELEVANT2 = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant2"; |
|
65 |
public static final String COLOR_COMPOSITE_IRRELEVANT2_LIGHT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant2_light"; |
|
66 |
public static final String COLOR_COMPOSITE_IRRELEVANT1_2 = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1_2"; |
|
67 |
public static final String COLOR_COMPOSITE_IRRELEVANT1_2_LIGHT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1_2_light"; |
|
63 | 68 |
|
64 | 69 |
/** Constant <code>SEARCH_VIEW_FOREGROUND="eu.etaxonomy.taxeditor.preferences.colo"{trunked}</code> */ |
65 | 70 |
public static final String SEARCH_VIEW_FOREGROUND = "eu.etaxonomy.taxeditor.preferences.colorDefinition.searchView.foreground"; |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/AbstractComboElement.java | ||
---|---|---|
27 | 27 |
import org.eclipse.ui.forms.widgets.TableWrapData; |
28 | 28 |
|
29 | 29 |
import eu.etaxonomy.cdm.common.CdmUtils; |
30 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
|
31 | 30 |
import eu.etaxonomy.taxeditor.preference.PreferencesUtil; |
32 |
import eu.etaxonomy.taxeditor.preference.Resources; |
|
33 |
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement; |
|
31 |
import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement; |
|
34 | 32 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
35 | 33 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
36 | 34 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
... | ... | |
43 | 41 |
* @date Aug 11, 2016 |
44 | 42 |
*/ |
45 | 43 |
public abstract class AbstractComboElement<T> |
46 |
extends AbstractCdmFormElement
|
|
44 |
extends AbstractRelevanceFormElement
|
|
47 | 45 |
implements SelectionListener, IEnableableFormElement, |
48 | 46 |
ISelectable, DisposeListener { |
49 | 47 |
|
... | ... | |
88 | 86 |
} |
89 | 87 |
|
90 | 88 |
@Override |
91 |
public void setIrrelevant(boolean irrelevant) { |
|
92 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT |
|
93 |
: Resources.COLOR_COMPOSITE_BACKGROUND; |
|
94 |
|
|
95 |
Color color = AbstractUtility.getColor(colorId); |
|
89 |
public void updateCacheRelevance() { |
|
90 |
Color color = cacheRelevance().getColor(); |
|
96 | 91 |
combo.setBackground(color); |
97 | 92 |
} |
98 | 93 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractRelevanceFormElement.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2021 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.ui.element; |
|
10 |
|
|
11 |
import org.eclipse.swt.widgets.Composite; |
|
12 |
|
|
13 |
/** |
|
14 |
* @author a.mueller |
|
15 |
* @since 19.01.2021 |
|
16 |
*/ |
|
17 |
public abstract class AbstractRelevanceFormElement |
|
18 |
extends AbstractCdmFormElement |
|
19 |
implements ICacheRelevantFormElement { |
|
20 |
|
|
21 |
protected CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper(); |
|
22 |
|
|
23 |
protected AbstractRelevanceFormElement(CdmFormFactory formFactory, Composite layoutComposite) { |
|
24 |
super(formFactory, layoutComposite); |
|
25 |
} |
|
26 |
|
|
27 |
public AbstractRelevanceFormElement(CdmFormFactory formFactory, ICdmFormElement formElement) { |
|
28 |
super(formFactory, formElement); |
|
29 |
} |
|
30 |
|
|
31 |
@Override |
|
32 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
33 |
cacheRelevanceHelper.addDependsOnCache(toggleElement); |
|
34 |
} |
|
35 |
|
|
36 |
@Override |
|
37 |
public CacheRelevance cacheRelevance() { |
|
38 |
return cacheRelevanceHelper.cacheRelevance(); |
|
39 |
} |
|
40 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevance.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2021 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.ui.element; |
|
10 |
|
|
11 |
import org.eclipse.swt.graphics.Color; |
|
12 |
|
|
13 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
|
14 |
import eu.etaxonomy.taxeditor.preference.Resources; |
|
15 |
|
|
16 |
/** |
|
17 |
* @author a.mueller |
|
18 |
* @since 20.01.2021 |
|
19 |
*/ |
|
20 |
public enum CacheRelevance{ |
|
21 |
CACHE1(Resources.COLOR_COMPOSITE_IRRELEVANT1, null), |
|
22 |
CACHE2(Resources.COLOR_COMPOSITE_IRRELEVANT2, null), |
|
23 |
|
|
24 |
CACHE1_2(Resources.COLOR_COMPOSITE_IRRELEVANT1_2, null), |
|
25 |
CACHE1_LIGHT(Resources.COLOR_COMPOSITE_IRRELEVANT1_LIGHT, CACHE1), |
|
26 |
CACHE2_LIGHT(Resources.COLOR_COMPOSITE_IRRELEVANT2_LIGHT, CACHE2), |
|
27 |
CACHE1_2_LIGHT(Resources.COLOR_COMPOSITE_IRRELEVANT1_2_LIGHT, CACHE1_2), |
|
28 |
NONE(Resources.COLOR_COMPOSITE_BACKGROUND, null), |
|
29 |
; |
|
30 |
|
|
31 |
private final Color color; |
|
32 |
private CacheRelevance light; |
|
33 |
|
|
34 |
|
|
35 |
private CacheRelevance(String colorStr, CacheRelevance main){ |
|
36 |
this.color = AbstractUtility.getColor(colorStr); |
|
37 |
light = this; |
|
38 |
if (main != null){ |
|
39 |
main.light = this; |
|
40 |
} |
|
41 |
} |
|
42 |
|
|
43 |
public Color getColor() { |
|
44 |
return color; |
|
45 |
} |
|
46 |
public Color getColorLight() { |
|
47 |
return color; |
|
48 |
} |
|
49 |
|
|
50 |
public Color getColor(String alternativeColorForNone) { |
|
51 |
if (this == NONE){ |
|
52 |
return AbstractUtility.getColor(alternativeColorForNone); |
|
53 |
}else{ |
|
54 |
return color; |
|
55 |
} |
|
56 |
} |
|
57 |
|
|
58 |
public CacheRelevance addCacheRelevance(CacheRelevance that){ |
|
59 |
if (this == CACHE1 && that == CACHE2 || this == CACHE2 && that == CACHE1){ |
|
60 |
return CACHE1_2; |
|
61 |
} else if (this == CACHE1_LIGHT && that == CACHE2_LIGHT || this == CACHE2_LIGHT && that == CACHE1_LIGHT){ |
|
62 |
return CACHE1_2_LIGHT; |
|
63 |
}else { |
|
64 |
return CacheRelevance.values()[Math.min(this.ordinal(), that.ordinal())]; |
|
65 |
} |
|
66 |
} |
|
67 |
|
|
68 |
public CacheRelevance getLight(){ |
|
69 |
return light; |
|
70 |
} |
|
71 |
|
|
72 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevanceHelper.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2021 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.ui.element; |
|
10 |
|
|
11 |
import java.util.HashSet; |
|
12 |
import java.util.Set; |
|
13 |
|
|
14 |
/** |
|
15 |
* @author a.mueller |
|
16 |
* @date 22.01.2021 |
|
17 |
*/ |
|
18 |
public class CacheRelevanceHelper { |
|
19 |
|
|
20 |
protected Set<ToggleableTextElement> cacheDependencies = new HashSet<>(); |
|
21 |
|
|
22 |
public CacheRelevance cacheRelevance() { |
|
23 |
CacheRelevance result = CacheRelevance.NONE; |
|
24 |
for (ToggleableTextElement cache : this.cacheDependencies){ |
|
25 |
if (cache.getState()){ |
|
26 |
result = result.addCacheRelevance(cache.getRelevance()); |
|
27 |
} |
|
28 |
//add recursion for light dependencies |
|
29 |
result = result.addCacheRelevance(cache.cacheRelevance().getLight()); |
|
30 |
} |
|
31 |
return result; |
|
32 |
} |
|
33 |
|
|
34 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
35 |
cacheDependencies.add(toggleElement); |
|
36 |
} |
|
37 |
|
|
38 |
/** |
|
39 |
* For hierarchical caching |
|
40 |
*/ |
|
41 |
public ToggleableTextElement[] getDependenciesArray() { |
|
42 |
return this.cacheDependencies.toArray(new ToggleableTextElement[0]); |
|
43 |
} |
|
44 |
|
|
45 |
public static void addDependsOnCacheForSubElements(AbstractFormSection<?> section, |
|
46 |
ToggleableTextElement toggleElement) { |
|
47 |
section.getElements().stream() |
|
48 |
.filter(x -> x instanceof ICacheRelevantFormElement) |
|
49 |
.forEach( |
|
50 |
x->((ICacheRelevantFormElement)x).addDependsOnCache(toggleElement)); |
|
51 |
} |
|
52 |
|
|
53 |
public static void updateCacheRelevanceForSubelements(AbstractFormSection<?> section) { |
|
54 |
updateCacheRelevanceForSubelements(section.getElements()); |
|
55 |
} |
|
56 |
|
|
57 |
public static void updateCacheRelevanceForSubelements(Set<ICdmFormElement> elements) { |
|
58 |
// System.out.print("setIrrelevant: " + this.getClass().getName()); |
|
59 |
// System.out.println(""); |
|
60 |
elements.stream() |
|
61 |
.filter(x -> x instanceof ICacheRelevantFormElement) |
|
62 |
.forEach( |
|
63 |
x->((ICacheRelevantFormElement)x).updateCacheRelevance()); |
|
64 |
|
|
65 |
} |
|
66 |
|
|
67 |
|
|
68 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java | ||
---|---|---|
1348 | 1348 |
} |
1349 | 1349 |
|
1350 | 1350 |
/** |
1351 |
* createToggleableTextField |
|
1351 |
* createToggleableTextField with relevance
|
|
1352 | 1352 |
*/ |
1353 | 1353 |
public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString, |
1354 |
String initialText, boolean initialState, int style) { |
|
1354 |
String initialText, boolean initialState, CacheRelevance relevance, int style) {
|
|
1355 | 1355 |
ToggleableTextElement element = new ToggleableTextElement(this, parentElement, labelString, initialText, |
1356 |
initialState, style | orientation); |
|
1356 |
initialState, relevance, style | orientation);
|
|
1357 | 1357 |
|
1358 | 1358 |
adapt(element); |
1359 | 1359 |
parentElement.addElement(element); |
1360 | 1360 |
return element; |
1361 | 1361 |
} |
1362 | 1362 |
|
1363 |
/** |
|
1364 |
* like {@link #createToggleableTextField(ICdmFormElement, String, String, boolean, CacheRelevance, int)} |
|
1365 |
* but with predefined cache relevance == 1 |
|
1366 |
*/ |
|
1367 |
public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString, |
|
1368 |
String initialText, boolean initialState, int style) { |
|
1369 |
return createToggleableTextField(parentElement, labelString, initialText, initialState, CacheRelevance.CACHE1, style); |
|
1370 |
} |
|
1371 |
|
|
1372 |
|
|
1363 | 1373 |
/** |
1364 | 1374 |
* createTimePeriodElement |
1365 | 1375 |
*/ |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CheckboxElement.java | ||
---|---|---|
16 | 16 |
import org.eclipse.swt.widgets.Label; |
17 | 17 |
import org.eclipse.ui.forms.widgets.TableWrapData; |
18 | 18 |
|
19 |
import eu.etaxonomy.taxeditor.preference.Resources; |
|
20 |
|
|
21 | 19 |
/** |
22 | 20 |
* <p>CheckboxElement class.</p> |
23 | 21 |
* |
24 | 22 |
* @author n.hoffmann |
25 | 23 |
* @created Nov 5, 2009 |
26 | 24 |
*/ |
27 |
public class CheckboxElement extends AbstractCdmFormElement implements SelectionListener, IEnableableFormElement, ISelectable { |
|
25 |
public class CheckboxElement |
|
26 |
extends AbstractRelevanceFormElement |
|
27 |
implements SelectionListener, IEnableableFormElement, ISelectable { |
|
28 | 28 |
|
29 | 29 |
private final Button checkbox; |
30 | 30 |
|
... | ... | |
101 | 101 |
} |
102 | 102 |
|
103 | 103 |
@Override |
104 |
public void setIrrelevant(boolean irrelevant) { |
|
105 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND; |
|
106 |
|
|
107 |
Color color = getColor(colorId); |
|
108 |
setBackground(color); |
|
104 |
public void updateCacheRelevance() { |
|
105 |
Color color = cacheRelevance().getColor(); |
|
106 |
setCheckboxBackgroundOnly(color); |
|
109 | 107 |
} |
110 | 108 |
|
109 |
public void setCheckboxBackgroundOnly(Color color) { |
|
110 |
if (checkbox.isDisposed()){ |
|
111 |
return; |
|
112 |
} |
|
113 |
checkbox.setBackground(color); |
|
114 |
} |
|
115 |
|
|
111 | 116 |
@Override |
112 | 117 |
public void setBackground(Color color) { |
113 |
if (checkbox.isDisposed()){ |
|
114 |
return; |
|
115 |
} |
|
116 |
checkbox.setBackground(color); |
|
117 |
if (label != null) { |
|
118 |
setCheckboxBackgroundOnly(color); |
|
119 |
if (label != null) { |
|
118 | 120 |
label.setBackground(color); |
119 | 121 |
} |
120 | 122 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java | ||
---|---|---|
19 | 19 |
import eu.etaxonomy.taxeditor.l10n.Messages; |
20 | 20 |
|
21 | 21 |
public class DateDetailSection<T extends TimePeriod> |
22 |
extends AbstractFormSection<T> { |
|
22 |
extends AbstractFormSection<T> |
|
23 |
implements ICacheRelevantFormElement{ |
|
24 |
|
|
23 | 25 |
protected TextWithLabelElement text_freeText; |
24 | 26 |
protected PartialElement partialElement_start; |
25 | 27 |
protected PartialElement partialElement_end; |
... | ... | |
221 | 223 |
public void setText_parseText(TextWithLabelElement text_parseText) { |
222 | 224 |
this.text_parseText = text_parseText; |
223 | 225 |
} |
224 |
} |
|
226 |
|
|
227 |
@Override |
|
228 |
public void updateCacheRelevance() { |
|
229 |
CacheRelevanceHelper.updateCacheRelevanceForSubelements(this); |
|
230 |
} |
|
231 |
|
|
232 |
@Override |
|
233 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
234 |
CacheRelevanceHelper.addDependsOnCacheForSubElements(this, toggleElement); |
|
235 |
} |
|
236 |
|
|
237 |
@Override |
|
238 |
public CacheRelevance cacheRelevance() { |
|
239 |
return null; |
|
240 |
} |
|
241 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICacheRelevantFormElement.java | ||
---|---|---|
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.ui.element; |
|
10 |
|
|
11 |
/** |
|
12 |
* IRelevantFormElement interface. |
|
13 |
* |
|
14 |
* @author n.hoffmann |
|
15 |
* @created May 10, 2010 |
|
16 |
*/ |
|
17 |
public interface ICacheRelevantFormElement { |
|
18 |
|
|
19 |
/** |
|
20 |
* Update the relevance state of the element. |
|
21 |
* Usually the results in a color change. |
|
22 |
* Containers may sent this to their subelements. |
|
23 |
*/ |
|
24 |
public void updateCacheRelevance(); |
|
25 |
|
|
26 |
/** |
|
27 |
* Registers this element as being dependend on the |
|
28 |
* given cache element (ToggleableTextElement). |
|
29 |
* An element may depend on multiple cache elements. |
|
30 |
*/ |
|
31 |
public void addDependsOnCache(ToggleableTextElement toggleElement); |
|
32 |
|
|
33 |
/** |
|
34 |
* Computes the cache relevance for this element. |
|
35 |
* The cache relevance depends on the registered cache elements |
|
36 |
* and on their state. |
|
37 |
*/ |
|
38 |
public CacheRelevance cacheRelevance(); |
|
39 |
|
|
40 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEnableableFormElement.java | ||
---|---|---|
14 | 14 |
* @author n.hoffmann |
15 | 15 |
* @created Mar 10, 2010 |
16 | 16 |
*/ |
17 |
public interface IEnableableFormElement extends IRelevantFormElement {
|
|
17 |
public interface IEnableableFormElement { |
|
18 | 18 |
|
19 | 19 |
/** |
20 | 20 |
* Sets composites of this element to the given enablement state. |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IRelevantFormElement.java | ||
---|---|---|
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.ui.element; |
|
10 |
|
|
11 |
/** |
|
12 |
* IRelevantFormElement interface. |
|
13 |
* |
|
14 |
* @author n.hoffmann |
|
15 |
* @created May 10, 2010 |
|
16 |
*/ |
|
17 |
public interface IRelevantFormElement { |
|
18 |
|
|
19 |
/** |
|
20 |
* setIrrelevant |
|
21 |
*/ |
|
22 |
public void setIrrelevant(boolean irrelevant); |
|
23 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java | ||
---|---|---|
22 | 22 |
/** |
23 | 23 |
* @author n.hoffmann |
24 | 24 |
*/ |
25 |
public class TextWithLabelElement extends AbstractCdmFormElement implements ModifyListener, IEnableableFormElement, |
|
26 |
ISelectable { |
|
25 |
public class TextWithLabelElement |
|
26 |
extends AbstractRelevanceFormElement |
|
27 |
implements ModifyListener, IEnableableFormElement, ISelectable { |
|
27 | 28 |
|
28 | 29 |
protected Text text; |
29 | 30 |
private Label label; |
... | ... | |
200 | 201 |
|
201 | 202 |
|
202 | 203 |
@Override |
203 |
public void setIrrelevant(boolean irrelevant) { |
|
204 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND; |
|
205 |
|
|
206 |
Color color = getColor(colorId); |
|
204 |
public void updateCacheRelevance() { |
|
205 |
Color color = cacheRelevance().getColor(); |
|
207 | 206 |
text.setBackground(color); |
208 | 207 |
} |
209 | 208 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TimePeriodElementBase.java | ||
---|---|---|
15 | 15 |
import eu.etaxonomy.cdm.model.common.TimePeriod; |
16 | 16 |
|
17 | 17 |
public abstract class TimePeriodElementBase<T extends TimePeriod> |
18 |
extends AbstractCdmFormElement
|
|
18 |
extends AbstractRelevanceFormElement
|
|
19 | 19 |
implements ISelectable { |
20 | 20 |
|
21 | 21 |
protected T timePeriod; |
... | ... | |
93 | 93 |
label.setText(string); |
94 | 94 |
} |
95 | 95 |
|
96 |
} |
|
96 |
@Override |
|
97 |
public void updateCacheRelevance() { |
|
98 |
if (section_dateDetails != null){ |
|
99 |
section_dateDetails.updateCacheRelevance(); |
|
100 |
} |
|
101 |
} |
|
102 |
|
|
103 |
@Override |
|
104 |
public void addDependsOnCache(ToggleableTextElement cacheElement) { |
|
105 |
if (section_dateDetails != null){ |
|
106 |
section_dateDetails.addDependsOnCache(cacheElement); |
|
107 |
} |
|
108 |
} |
|
109 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ToggleableTextElement.java | ||
---|---|---|
36 | 36 |
* @author n.hoffmann |
37 | 37 |
* @created Nov 18, 2009 |
38 | 38 |
*/ |
39 |
public class ToggleableTextElement extends AbstractCdmFormElement implements SelectionListener, ModifyListener, IEnableableFormElement, ISelectable { |
|
39 |
public class ToggleableTextElement |
|
40 |
extends AbstractRelevanceFormElement |
|
41 |
implements SelectionListener, ModifyListener, IEnableableFormElement, ISelectable { |
|
40 | 42 |
|
41 | 43 |
private final Text text_cache; |
42 | 44 |
private final Button btnToggleProtectTitleCache; |
... | ... | |
44 | 46 |
private final Set<SelectionListener> selectionListener = new HashSet<>(); |
45 | 47 |
private final Label label; |
46 | 48 |
private final Composite container; |
49 |
private final CacheRelevance relevance; |
|
47 | 50 |
|
48 | 51 |
//TODO for RL |
49 | 52 |
public void setVisible(boolean b) { |
... | ... | |
54 | 57 |
} |
55 | 58 |
|
56 | 59 |
protected ToggleableTextElement(CdmFormFactory formFactory, ICdmFormElement parentElement, |
57 |
String labelString, String initialText, boolean initialState, int style) { |
|
60 |
String labelString, String initialText, boolean initialState, |
|
61 |
CacheRelevance relevance, int style) { |
|
58 | 62 |
super(formFactory, parentElement); |
59 | 63 |
|
60 | 64 |
label = formFactory.createLabel(getLayoutComposite(), labelString, style); |
... | ... | |
86 | 90 |
addControl(btnToggleProtectTitleCache); |
87 | 91 |
btnToggleProtectTitleCache.addSelectionListener(this); |
88 | 92 |
|
93 |
this.relevance = relevance; |
|
89 | 94 |
setState(initialState); |
90 | 95 |
} |
91 | 96 |
|
... | ... | |
135 | 140 |
return text_cache.isEnabled(); |
136 | 141 |
} |
137 | 142 |
|
143 |
public CacheRelevance getRelevance() { |
|
144 |
return this.relevance; |
|
145 |
} |
|
146 |
|
|
138 | 147 |
public boolean getState(){ |
139 | 148 |
return state; |
140 | 149 |
} |
... | ... | |
169 | 178 |
} |
170 | 179 |
|
171 | 180 |
@Override |
172 |
public void setIrrelevant(boolean irrelevant) { |
|
173 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND; |
|
174 |
|
|
175 |
Color color = getColor(colorId); |
|
181 |
public void updateCacheRelevance() { |
|
182 |
Color color = cacheRelevance().getColor(); |
|
176 | 183 |
text_cache.setBackground(color); |
177 | 184 |
} |
178 | 185 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/combo/EnumTermComboController.java | ||
---|---|---|
27 | 27 |
import eu.etaxonomy.cdm.model.reference.ReferenceType; |
28 | 28 |
import eu.etaxonomy.cdm.model.term.IEnumTerm; |
29 | 29 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
30 |
import eu.etaxonomy.taxeditor.preference.Resources; |
|
31 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
|
32 |
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement; |
|
30 |
import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement; |
|
33 | 31 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
34 | 32 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
35 | 33 |
import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement; |
... | ... | |
40 | 38 |
* @author pplitzner |
41 | 39 |
* @date 29.01.2014 |
42 | 40 |
*/ |
43 |
public class EnumTermComboController<T extends IEnumTerm<T>>
|
|
44 |
extends AbstractCdmFormElement
|
|
41 |
public class EnumTermComboController<T extends IEnumTerm<T>> |
|
42 |
extends AbstractRelevanceFormElement
|
|
45 | 43 |
implements SelectionListener, IEnableableFormElement, ISelectable, CdmCompositeController { |
46 | 44 |
|
47 | 45 |
private static CdmEnumDataHolder<?>[] cdmEnumDataHolders = { |
... | ... | |
209 | 207 |
} |
210 | 208 |
|
211 | 209 |
@Override |
212 |
public void setIrrelevant(boolean irrelevant) { |
|
213 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT |
|
214 |
: Resources.COLOR_COMPOSITE_BACKGROUND; |
|
215 |
|
|
216 |
Color color = AbstractUtility.getColor(colorId); |
|
210 |
public void updateCacheRelevance() { |
|
211 |
Color color = cacheRelevance().getColor(); |
|
217 | 212 |
combo.setBackground(color); |
218 | 213 |
} |
219 | 214 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/DateElement.java | ||
---|---|---|
27 | 27 |
import org.joda.time.DateTimeZone; |
28 | 28 |
|
29 | 29 |
import eu.etaxonomy.taxeditor.model.ImageResources; |
30 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevance; |
|
31 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevanceHelper; |
|
30 | 32 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
33 |
import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement; |
|
31 | 34 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
35 |
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement; |
|
32 | 36 |
import eu.etaxonomy.taxeditor.ui.mvc.AbstractCdmComposite; |
33 | 37 |
|
34 | 38 |
/** |
35 | 39 |
* @author pplitzner |
36 | 40 |
* @date 16.06.2014 |
37 | 41 |
*/ |
38 |
public class DateElement extends AbstractCdmComposite<DateElementController> { |
|
42 |
public class DateElement |
|
43 |
extends AbstractCdmComposite<DateElementController> |
|
44 |
implements ICacheRelevantFormElement { |
|
45 |
|
|
46 |
private static final String pattern = "yyyy-MM-dd HH:mm"; |
|
39 | 47 |
|
40 | 48 |
private final FormToolkit toolkit = new FormToolkit(Display.getCurrent()); |
41 | 49 |
private org.joda.time.DateTime initialDateTime; |
42 | 50 |
private final Text textDate; |
43 | 51 |
private final Button openDateDialog; |
44 | 52 |
|
45 |
private static final String pattern = "yyyy-MM-dd HH:mm"; |
|
46 |
|
|
53 |
protected CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper(); |
|
47 | 54 |
|
48 | 55 |
/** |
49 | 56 |
* Create the composite. |
... | ... | |
173 | 180 |
this.textDate.setText(initialDateTime.toString(pattern)); |
174 | 181 |
} |
175 | 182 |
|
176 |
} |
|
183 |
@Override |
|
184 |
public void updateCacheRelevance() { |
|
185 |
textDate.setBackground(cacheRelevance().getColor()); |
|
186 |
} |
|
187 |
|
|
188 |
@Override |
|
189 |
public void addDependsOnCache(ToggleableTextElement cacheElement) { |
|
190 |
cacheRelevanceHelper.addDependsOnCache(cacheElement); |
|
191 |
} |
|
192 |
|
|
193 |
@Override |
|
194 |
public CacheRelevance cacheRelevance() { |
|
195 |
return cacheRelevanceHelper.cacheRelevance(); |
|
196 |
} |
|
197 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/DateElementController.java | ||
---|---|---|
13 | 13 |
import org.eclipse.swt.widgets.Text; |
14 | 14 |
import org.joda.time.DateTime; |
15 | 15 |
|
16 |
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
|
|
16 |
import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
|
|
17 | 17 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
18 | 18 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
19 | 19 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
... | ... | |
24 | 24 |
* @author pplitzner |
25 | 25 |
* @date 16.06.2014 |
26 | 26 |
*/ |
27 |
public class DateElementController extends AbstractCdmFormElement implements IEnableableFormElement, CdmCompositeController, ModifyListener{ |
|
27 |
public class DateElementController |
|
28 |
extends AbstractRelevanceFormElement |
|
29 |
implements IEnableableFormElement, CdmCompositeController, ModifyListener { |
|
28 | 30 |
|
29 | 31 |
private final Text textDate; |
30 | 32 |
private DateTime dateTime; |
... | ... | |
70 | 72 |
dateTime = date; |
71 | 73 |
} |
72 | 74 |
|
73 |
@Override |
|
74 |
public void setIrrelevant(boolean irrelevant) { |
|
75 |
// TODO Auto-generated method stub |
|
76 |
} |
|
77 |
|
|
78 | 75 |
@Override |
79 | 76 |
public void setEnabled(boolean enabled) { |
80 | 77 |
textDate.setEnabled(enabled); |
... | ... | |
84 | 81 |
public boolean isEnabled() { |
85 | 82 |
return textDate.isEnabled(); |
86 | 83 |
} |
84 |
|
|
85 |
@Override |
|
86 |
public void updateCacheRelevance() { |
|
87 |
System.out.println("updateCacheRelevance not yet implemented for " + this.getClass().getName()); |
|
88 |
} |
|
87 | 89 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/TextWithLabelElementController.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
import eu.etaxonomy.taxeditor.preference.Resources; |
21 | 21 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
22 |
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
|
|
22 |
import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
|
|
23 | 23 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
24 | 24 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
25 | 25 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
... | ... | |
33 | 33 |
* @author n.hoffmann |
34 | 34 |
*/ |
35 | 35 |
public class TextWithLabelElementController |
36 |
extends AbstractCdmFormElement
|
|
36 |
extends AbstractRelevanceFormElement
|
|
37 | 37 |
implements ModifyListener, IEnableableFormElement, ISelectable, CdmCompositeController { |
38 | 38 |
|
39 | 39 |
protected Text text; |
... | ... | |
117 | 117 |
} |
118 | 118 |
|
119 | 119 |
@Override |
120 |
public void setIrrelevant(boolean irrelevant) { |
|
121 |
String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND; |
|
122 |
|
|
123 |
Color color = getColor(colorId); |
|
120 |
public void updateCacheRelevance() { |
|
121 |
Color color = cacheRelevance().getColor(); |
|
124 | 122 |
text.setBackground(color); |
125 | 123 |
} |
126 | 124 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java | ||
---|---|---|
33 | 33 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
34 | 34 |
import eu.etaxonomy.taxeditor.store.LoginManager; |
35 | 35 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
36 |
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement; |
|
36 |
import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement; |
|
37 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevance; |
|
38 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevanceHelper; |
|
37 | 39 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
38 | 40 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
41 |
import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement; |
|
39 | 42 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
40 | 43 |
import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement; |
41 | 44 |
import eu.etaxonomy.taxeditor.ui.element.LabelElement; |
42 | 45 |
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants; |
46 |
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement; |
|
43 | 47 |
|
44 | 48 |
/** |
45 | 49 |
* @author n.hoffmann |
46 | 50 |
* @created Feb 26, 2010 |
47 | 51 |
*/ |
48 | 52 |
public abstract class AbstractCdmDetailElement<T> |
49 |
extends AbstractCdmFormElement
|
|
53 |
extends AbstractRelevanceFormElement
|
|
50 | 54 |
implements ICdmDetailElement<T>, Observer{ |
51 | 55 |
|
52 | 56 |
private T entity; |
53 | 57 |
|
54 |
private boolean irrelevant; |
|
55 |
|
|
56 | 58 |
protected boolean enabled = true; |
57 | 59 |
|
58 | 60 |
private LabelElement warnForReferencedObjects; |
... | ... | |
142 | 144 |
} |
143 | 145 |
|
144 | 146 |
@Override |
145 |
public void setIrrelevant(boolean irrelevant) { |
|
146 |
this.irrelevant = irrelevant; |
|
147 |
setIrrelevant(irrelevant, null); |
|
147 |
public CacheRelevance cacheRelevance() { |
|
148 |
return cacheRelevanceHelper.cacheRelevance(); |
|
149 |
} |
|
150 |
|
|
151 |
@Override |
|
152 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
153 |
cacheRelevanceHelper.addDependsOnCache(toggleElement); |
|
154 |
} |
|
155 |
|
|
156 |
protected void registerCacheRelevance(ICacheRelevantFormElement element, ToggleableTextElement... toggleableCaches) { |
|
157 |
if (element != null && toggleableCaches != null) { |
|
158 |
for (ToggleableTextElement toggleableCache : toggleableCaches){ |
|
159 |
element.addDependsOnCache(toggleableCache); |
|
160 |
} |
|
161 |
} |
|
162 |
// updateCacheRelevance(); |
|
148 | 163 |
} |
149 | 164 |
|
150 | 165 |
/** |
151 |
* <p> |
|
152 |
* Setter for the field <code>irrelevant</code>. |
|
153 |
* </p> |
|
154 |
* |
|
155 |
* @param irrelevant |
|
156 |
* a boolean. |
|
157 |
* @param except |
|
158 |
* a {@link java.util.Collection} object. |
|
166 |
* Updates the cache relevance state of all internal elements of this |
|
167 |
* AbstractCdmDetailElement. |
|
159 | 168 |
*/ |
160 |
public void setIrrelevant(boolean irrelevant, Collection<Object> except) { |
|
161 |
// logger.warn("Setting " + this.getClass().getSimpleName() + |
|
162 |
// " to irrelevant state: " + irrelevant); |
|
163 |
for (ICdmFormElement element : getElements()) { |
|
164 |
if (element instanceof IEnableableFormElement) { |
|
165 |
IEnableableFormElement relevantElement = (IEnableableFormElement) element; |
|
166 |
if (except != null && except.contains(relevantElement)) { |
|
167 |
// do nothing |
|
168 |
// logger.warn("not setting elements irrelevance: " + |
|
169 |
// relevantElement.getClass().getSimpleName() + " in :" + |
|
170 |
// this.getClass().getSimpleName()); |
|
171 |
} else { |
|
172 |
relevantElement.setIrrelevant(irrelevant); |
|
173 |
} |
|
174 |
} |
|
175 |
} |
|
169 |
@Override |
|
170 |
public void updateCacheRelevance(){ |
|
171 |
CacheRelevanceHelper.updateCacheRelevanceForSubelements(getElements()); |
|
176 | 172 |
} |
177 | 173 |
|
178 | 174 |
/** |
... | ... | |
240 | 236 |
MessagingUtils.error(event.getSource().getClass(), event.getException()); |
241 | 237 |
} |
242 | 238 |
|
243 |
public boolean isIrrelevant() { |
|
244 |
return irrelevant; |
|
245 |
} |
|
246 |
|
|
247 | 239 |
@Override |
248 | 240 |
public ConversationHolder getConversationHolder() { |
249 | 241 |
if (getParentElement() instanceof IConversationEnabled) { |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java | ||
---|---|---|
54 | 54 |
*/ |
55 | 55 |
public abstract class AbstractCdmDetailSection<ENTITY> |
56 | 56 |
extends AbstractFormSection<ENTITY> |
57 |
implements IEnableableFormElement, IExpansionListener { |
|
57 |
implements IEnableableFormElement, IExpansionListener, ICacheRelevantFormElement {
|
|
58 | 58 |
|
59 | 59 |
protected AbstractCdmDetailElement<ENTITY> detailElement; |
60 | 60 |
|
... | ... | |
213 | 213 |
} |
214 | 214 |
|
215 | 215 |
@Override |
216 |
public void setIrrelevant(boolean irrelevant) {
|
|
216 |
public void updateCacheRelevance() {
|
|
217 | 217 |
if (detailElement != null) { |
218 |
detailElement.setIrrelevant(irrelevant);
|
|
218 |
detailElement.updateCacheRelevance();
|
|
219 | 219 |
} |
220 | 220 |
} |
221 | 221 |
|
222 |
@Override |
|
223 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
224 |
if (detailElement != null) { |
|
225 |
detailElement.addDependsOnCache(toggleElement); |
|
226 |
} |
|
227 |
} |
|
228 |
|
|
229 |
@Override |
|
230 |
public CacheRelevance cacheRelevance() { |
|
231 |
return detailElement.cacheRelevance(); |
|
232 |
} |
|
233 |
|
|
222 | 234 |
@Override |
223 | 235 |
public void expansionStateChanging(ExpansionEvent e) { |
224 | 236 |
// logger.warn("Expansion State Changing"); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 | 11 |
import java.util.EnumSet; |
13 | 12 |
|
14 | 13 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
... | ... | |
16 | 15 |
import eu.etaxonomy.cdm.model.permission.CRUD; |
17 | 16 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
18 | 17 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
18 |
import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement; |
|
19 | 19 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
20 | 20 |
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement; |
21 | 21 |
|
... | ... | |
42 | 42 |
} |
43 | 43 |
|
44 | 44 |
protected void handleToggleableCacheField() { |
45 |
boolean pushedState = toggleable_cache.getState(); |
|
46 |
|
|
47 |
getEntity().setTitleCache(toggleable_cache.getText(), pushedState); |
|
48 |
setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache })); |
|
45 |
getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState()); |
|
46 |
updateCacheRelevance(); |
|
49 | 47 |
updateToggleableCacheField(); |
50 | 48 |
} |
51 | 49 |
|
... | ... | |
60 | 58 |
toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE)); |
61 | 59 |
} |
62 | 60 |
} |
61 |
|
|
62 |
protected void registerCacheRelevance(ICacheRelevantFormElement element) { |
|
63 |
registerCacheRelevance(element, toggleable_cache); |
|
64 |
} |
|
63 | 65 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section.agent; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 |
import java.util.Collection; |
|
13 |
|
|
14 | 11 |
import org.eclipse.swt.SWT; |
15 | 12 |
|
16 | 13 |
import eu.etaxonomy.cdm.model.agent.Person; |
... | ... | |
40 | 37 |
private TimePeriodElement time_lifespan; |
41 | 38 |
private OrcidWithLabelElement text_orcid; |
42 | 39 |
private LsidWithExceptionLabelElement text_lsid; |
43 |
private Collection<Object> excludeFromIrrelevantToggleableObjects; |
|
44 | 40 |
|
45 | 41 |
public PersonDetailElement(CdmFormFactory cdmFormFactory, |
46 | 42 |
ICdmFormElement formElement, int style) { |
... | ... | |
70 | 66 |
text_orcid = formFactory.createOrcidWithLabelElement(formElement, "ORCID", entity.getOrcid(), SWT.NULL); |
71 | 67 |
text_lsid = formFactory.createLsidWithExceptionLabelElement(formElement, "LSID", entity.getLsid(), SWT.NULL); |
72 | 68 |
getLayoutComposite().layout(); |
69 |
|
|
70 |
//cache relevance |
|
71 |
registerCacheRelevance(text_firstname); |
|
72 |
registerCacheRelevance(text_lastname); |
|
73 |
registerCacheRelevance(text_prefix); |
|
74 |
registerCacheRelevance(text_suffix); |
|
75 |
registerCacheRelevance(text_initials); |
|
73 | 76 |
} |
74 | 77 |
|
75 | 78 |
@Override |
76 | 79 |
protected void updateContent() { |
77 | 80 |
super.updateContent(); |
78 |
|
|
79 |
excludeFromIrrelevantToggleableObjects = Arrays.asList(new Object[] { |
|
80 |
toggleable_cache, text_nomenclaturalTitle }); |
|
81 |
|
|
82 | 81 |
toggleable_cache.setEnabled(getEntity().isProtectedTitleCache()); |
83 |
setIrrelevant(toggleable_cache.getState(), |
|
84 |
excludeFromIrrelevantToggleableObjects); |
|
82 |
updateCacheRelevance(); |
|
85 | 83 |
} |
86 | 84 |
|
87 | 85 |
@Override |
... | ... | |
124 | 122 |
if (pushedState){ |
125 | 123 |
getEntity().setTitleCache(toggleable_cache.getText(), pushedState); |
126 | 124 |
} |
127 |
setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_nomenclaturalTitle }));
|
|
125 |
updateCacheRelevance();
|
|
128 | 126 |
updateToggleableCacheField(); |
129 | 127 |
} |
130 | 128 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section.agent; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 |
|
|
13 | 11 |
import eu.etaxonomy.cdm.model.agent.Team; |
14 | 12 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
13 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevance; |
|
15 | 14 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
16 | 15 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
17 | 16 |
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement; |
... | ... | |
26 | 25 |
* @author n.hoffmann |
27 | 26 |
* @created Apr 26, 2010 |
28 | 27 |
*/ |
29 |
public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> { |
|
28 |
public class TeamDetailElement |
|
29 |
extends AbstractIdentifiableEntityDetailElement<Team> { |
|
30 | 30 |
|
31 | 31 |
private ToggleableTextElement toggleable_nomenclaturalTitleCache; |
32 | 32 |
private CheckboxElement hasAdditionalMembers; |
... | ... | |
47 | 47 |
protected void createControls(ICdmFormElement formElement, Team entity, int style) { |
48 | 48 |
|
49 | 49 |
setWarnForReferencingObjects(formElement); |
50 |
toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style); |
|
51 |
toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style); |
|
50 |
toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", |
|
51 |
entity.getTitleCache(), entity.isProtectedTitleCache(), style); |
|
52 |
toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, |
|
53 |
"Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), |
|
54 |
CacheRelevance.CACHE2, style); |
|
52 | 55 |
hasAdditionalMembers = formFactory.createCheckbox(formElement, "Additional Members", entity.isHasMoreMembers(), style); |
53 | 56 |
section_teamMembers = formFactory.createTeamMemberSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam); |
54 | 57 |
section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); |
58 |
|
|
59 |
//cache relevance |
|
60 |
//TODO |
|
61 |
// registerCacheRelevance(toggleable_nomenclaturalTitleCache); |
|
62 |
registerCacheRelevance(hasAdditionalMembers, toggleable_cache, toggleable_nomenclaturalTitleCache); |
|
63 |
registerCacheRelevance(section_teamMembers, toggleable_cache, toggleable_nomenclaturalTitleCache); |
|
55 | 64 |
} |
56 | 65 |
|
57 | 66 |
@Override |
... | ... | |
64 | 73 |
toggleable_nomenclaturalTitleCache.setEnabled(getEntity() |
65 | 74 |
.isProtectedNomenclaturalTitleCache()); |
66 | 75 |
} |
67 |
if (toggleable_nomenclaturalTitleCache != null && toggleable_cache != null){ |
|
68 |
setIrrelevant( |
|
69 |
toggleable_cache.getState(), |
|
70 |
Arrays.asList(new Object[] { toggleable_cache, |
|
71 |
toggleable_nomenclaturalTitleCache , hasAdditionalMembers})); |
|
72 |
} else if (toggleable_cache != null){ |
|
73 |
setIrrelevant( |
|
74 |
toggleable_cache.getState(), |
|
75 |
Arrays.asList(new Object[] { toggleable_cache, hasAdditionalMembers})); |
|
76 |
} |
|
77 |
|
|
78 | 76 |
section_teamMembers.setEntity(getEntity()); |
77 |
|
|
78 |
updateCacheRelevance(); |
|
79 | 79 |
} |
80 | 80 |
|
81 | 81 |
@Override |
... | ... | |
85 | 85 |
|
86 | 86 |
} else if (eventSource == toggleable_nomenclaturalTitleCache) { |
87 | 87 |
updateToggleable_nomanclaturalTitleCacheField(); |
88 |
setIrrelevant( |
|
89 |
toggleable_nomenclaturalTitleCache.getState(), |
|
90 |
Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers })); |
|
88 |
updateCacheRelevance(); |
|
91 | 89 |
} else if (eventSource == section_teamMembers) { |
92 | 90 |
toggleable_cache.setText(getEntity().getTitleCache()); |
93 | 91 |
toggleable_nomenclaturalTitleCache.setText(getEntity() |
... | ... | |
106 | 104 |
boolean pushedState = toggleable_nomenclaturalTitleCache.getState(); |
107 | 105 |
|
108 | 106 |
getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState); |
109 |
setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
|
|
107 |
updateCacheRelevance();
|
|
110 | 108 |
|
111 | 109 |
if (!getEntity().isProtectedNomenclaturalTitleCache()) { |
112 | 110 |
toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle()); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberSection.java | ||
---|---|---|
12 | 12 |
import java.util.Comparator; |
13 | 13 |
import java.util.List; |
14 | 14 |
|
15 |
import org.eclipse.swt.graphics.Color; |
|
16 |
|
|
15 | 17 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
16 | 18 |
import eu.etaxonomy.cdm.model.agent.Person; |
17 | 19 |
import eu.etaxonomy.cdm.model.agent.Team; |
18 | 20 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevance; |
21 |
import eu.etaxonomy.taxeditor.ui.element.CacheRelevanceHelper; |
|
19 | 22 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
20 | 23 |
import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement; |
21 | 24 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
... | ... | |
29 | 32 |
* @created Apr 30, 2010 |
30 | 33 |
*/ |
31 | 34 |
public class TeamMemberSection |
32 |
extends AbstractUnboundEntityCollectionSection<Team, Person> { |
|
35 |
extends AbstractUnboundEntityCollectionSection<Team, Person> |
|
36 |
implements ICacheRelevantFormElement { |
|
33 | 37 |
|
34 | 38 |
private boolean isNomenclaturalTeam = false; |
35 | 39 |
|
40 |
private CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper(); |
|
41 |
|
|
36 | 42 |
/** |
37 | 43 |
* <p>Constructor for TeamMemberSection.</p> |
38 | 44 |
* |
... | ... | |
118 | 124 |
public boolean allowAddExisting() { |
119 | 125 |
return false; |
120 | 126 |
} |
127 |
|
|
128 |
@Override |
|
129 |
public void updateCacheRelevance() { |
|
130 |
Color color = cacheRelevance().getColor(); |
|
131 |
setBackground(color); |
|
132 |
} |
|
133 |
|
|
134 |
@Override |
|
135 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
136 |
cacheRelevanceHelper.addDependsOnCache(toggleElement); |
|
137 |
} |
|
138 |
|
|
139 |
@Override |
|
140 |
public CacheRelevance cacheRelevance() { |
|
141 |
return cacheRelevanceHelper.cacheRelevance(); |
|
142 |
} |
|
121 | 143 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section.description; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 | 11 |
import java.util.stream.Collectors; |
13 | 12 |
|
14 | 13 |
import org.eclipse.jface.util.PropertyChangeEvent; |
... | ... | |
26 | 25 |
* @author n.hoffmann |
27 | 26 |
* @created Mar 5, 2010 |
28 | 27 |
*/ |
29 |
public class DescriptionDetailElement extends AbstractIdentifiableEntityDetailElement<DescriptionBase<?>> { |
|
28 |
public class DescriptionDetailElement |
|
29 |
extends AbstractIdentifiableEntityDetailElement<DescriptionBase<?>> { |
|
30 | 30 |
|
31 | 31 |
// private EntitySelectionElement<FeatureTree> selection_featureTree; |
32 | 32 |
private TextWithLabelElement txtDescriptionTypes; |
... | ... | |
38 | 38 |
|
39 | 39 |
@Override |
40 | 40 |
protected void createControls(ICdmFormElement formElement, DescriptionBase entity, int style) { |
41 |
toggleable_cache = formFactory.createToggleableTextField(this, "Label", entity.getTitleCache(), entity.isProtectedTitleCache(), style); |
|
41 |
toggleable_cache = formFactory.createToggleableTextField(this, "Label", |
|
42 |
entity.getTitleCache(), entity.isProtectedTitleCache(), style); |
|
42 | 43 |
// TODO I initially thought that we can handle the entity's descriptive system with a feature tree |
43 | 44 |
// Since descriptiveSystem is a Set of Features that are present or allowed for the current description, |
44 | 45 |
// it is similar to a FeatureTree (you can get this information from a feature tree) but not the same. |
... | ... | |
56 | 57 |
protected void updateContent() { |
57 | 58 |
super.updateContent(); |
58 | 59 |
toggleable_cache.setEnabled(getEntity().isProtectedTitleCache()); |
59 |
setIrrelevant(toggleable_cache.getState(), |
|
60 |
Arrays.asList(new Object[] { txtDescriptionTypes, toggleable_cache})); |
|
60 |
updateCacheRelevance(); |
|
61 | 61 |
} |
62 | 62 |
|
63 | 63 |
@Override |
... | ... | |
73 | 73 |
public void handleEvent(Object eventSource) { |
74 | 74 |
if (eventSource == toggleable_cache) { |
75 | 75 |
getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState()); |
76 |
setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[] { toggleable_cache }));
|
|
76 |
updateCacheRelevance();
|
|
77 | 77 |
} |
78 | 78 |
} |
79 | 79 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section.name; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 |
|
|
13 | 11 |
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; |
14 | 12 |
import eu.etaxonomy.cdm.model.name.INonViralName; |
15 | 13 |
import eu.etaxonomy.cdm.model.name.IZoologicalName; |
... | ... | |
23 | 21 |
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent; |
24 | 22 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
25 | 23 |
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement; |
24 |
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement; |
|
26 | 25 |
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement; |
27 | 26 |
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; |
28 | 27 |
|
... | ... | |
94 | 93 |
EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style); |
95 | 94 |
|
96 | 95 |
addElement(selectionExBasionymAuthor); |
97 |
if (code != null){ |
|
98 |
if (code.equals(NomenclaturalCode.ICZN)){ |
|
99 |
text_originalPublicationYear = formFactory.createFloatTextWithLabelElement(formElement, "Orig. Publication Year", ((IZoologicalName)entity).getOriginalPublicationYear(), style); |
|
100 |
} |
|
96 |
if (code != null && code.equals(NomenclaturalCode.ICZN)){ |
|
97 |
text_originalPublicationYear = formFactory.createFloatTextWithLabelElement(formElement, "Orig. Publication Year", ((IZoologicalName)entity).getOriginalPublicationYear(), style); |
|
101 | 98 |
} |
102 | 99 |
} |
100 |
|
|
101 |
//put to Cache |
|
102 |
registerCacheRelevance(selectionCombinationAuthor); |
|
103 |
registerCacheRelevance(selectionBasionymAuthor); |
|
104 |
registerCacheRelevance(selectionExCombinationAuthor); |
|
105 |
registerCacheRelevance(selectionExBasionymAuthor); |
|
106 |
registerCacheRelevance(text_publicationYear); |
|
107 |
registerCacheRelevance(text_originalPublicationYear); |
|
108 |
|
|
109 |
registerCacheRelevance(toggleable_cache, cacheRelevanceHelper.getDependenciesArray()); |
|
110 |
|
|
103 | 111 |
} |
104 | 112 |
|
113 |
@Override |
|
114 |
public void addDependsOnCache(ToggleableTextElement toggleElement) { |
|
115 |
super.addDependsOnCache(toggleElement); |
|
116 |
//register my cache on higher cache (if not null yet) |
|
117 |
registerCacheRelevance(toggleable_cache, toggleElement); |
|
118 |
} |
|
119 |
|
|
105 | 120 |
@Override |
106 | 121 |
public void updateContent() { |
107 | 122 |
if (getEntity() == null) { |
... | ... | |
111 | 126 |
super.updateContent(); |
112 | 127 |
if (toggleable_cache != null){ |
113 | 128 |
toggleable_cache.setEnabled(getEntity().isProtectedAuthorshipCache()); |
114 |
|
|
115 |
if (this.isIrrelevant()) { |
|
116 |
setIrrelevant(isIrrelevant()); |
|
117 |
} else { |
|
118 |
setIrrelevant(toggleable_cache.getState(), |
|
119 |
Arrays.asList(new Object[] { toggleable_cache })); |
|
120 |
} |
|
129 |
updateCacheRelevance(); |
|
121 | 130 |
} |
122 | 131 |
} |
123 | 132 |
|
... | ... | |
126 | 135 |
if (eventSource == toggleable_cache) { |
127 | 136 |
getEntity().setAuthorshipCache(toggleable_cache.getText(), |
128 | 137 |
toggleable_cache.getState()); |
129 |
if (!isIrrelevant()){ |
|
130 |
setIrrelevant(toggleable_cache.getState(), |
|
131 |
Arrays.asList(new Object[] { toggleable_cache })); |
|
132 |
} |
|
138 |
updateCacheRelevance(); |
|
133 | 139 |
} else if (eventSource == selectionCombinationAuthor) { |
134 | 140 |
getEntity().setCombinationAuthorship( |
135 | 141 |
selectionCombinationAuthor.getSelection()); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java | ||
---|---|---|
54 | 54 |
checkboxTrinomHybrid.setEnabled(enableTrinom); |
55 | 55 |
checkboxHybridFormula = formFactory.createCheckbox(formElement, "Hybrid formula", entity.isHybridFormula(), style); |
56 | 56 |
checkboxHybridFormula.setEnabled(false);//read-only |
57 |
|
|
58 |
registerCacheRelevance(checkboxMonomHybrid, cacheRelevanceHelper.getDependenciesArray()); |
|
59 |
registerCacheRelevance(checkboxBinomHybrid, cacheRelevanceHelper.getDependenciesArray()); |
|
60 |
registerCacheRelevance(checkboxTrinomHybrid, cacheRelevanceHelper.getDependenciesArray()); |
|
61 |
registerCacheRelevance(checkboxHybridFormula, cacheRelevanceHelper.getDependenciesArray()); |
|
62 |
|
|
57 | 63 |
} |
58 | 64 |
|
59 | 65 |
@Override |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section.name; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 |
import java.util.Collection; |
|
13 | 11 |
import java.util.Comparator; |
14 | 12 |
|
15 | 13 |
import org.apache.log4j.Logger; |
... | ... | |
32 | 30 |
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; |
33 | 31 |
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement; |
34 | 32 |
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; |
35 |
import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement; |
|
36 | 33 |
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement; |
37 | 34 |
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator; |
38 | 35 |
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement; |
... | ... | |
44 | 41 |
* @author n.hoffmann |
45 | 42 |
* @created Feb 26, 2010 |
46 | 43 |
*/ |
47 |
public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<INonViralName> implements ISelectableElement, IEnableableFormElement{ |
|
44 |
public class NameDetailElement |
|
45 |
extends AbstractIdentifiableEntityDetailElement<INonViralName> |
|
46 |
implements ISelectableElement { |
|
48 | 47 |
|
49 | 48 |
private final Logger logger = Logger.getLogger(NameDetailElement.class); |
50 | 49 |
|
... | ... | |
125 | 124 |
for (ICdmFormElement element: this.getElements()){ |
126 | 125 |
element.setBackground(getPersistentBackground()); |
127 | 126 |
} |
127 |
|
|
128 |
//cache relevance |
|
129 |
registerCacheRelevance(combo_rank); |
|
130 |
//TODO decide if relevant |
|
131 |
registerCacheRelevance(text_appendedPhrase); |
|
132 |
registerCacheRelevance(text_uninomial); |
|
133 |
registerCacheRelevance(text_infragenericEpithet); |
|
134 |
registerCacheRelevance(text_specificEpithet); |
|
135 |
registerCacheRelevance(text_infraspecificEpithet); |
|
136 |
registerCacheRelevance(text_cultivarName); |
|
137 |
registerCacheRelevance(text_subGenusAuthorship); |
|
138 |
registerCacheRelevance(text_breed); |
|
139 |
|
|
140 |
registerCacheRelevance(toggleable_cache, cacheRelevanceHelper.getDependenciesArray()); |
|
128 | 141 |
} |
129 | 142 |
|
130 | 143 |
/** |
... | ... | |
151 | 164 |
toggleable_cache.setEnabled(getEntity().isProtectedNameCache()); |
152 | 165 |
|
153 | 166 |
if (config == null){ |
154 |
if(isIrrelevant()){ |
|
155 |
setIrrelevant(isIrrelevant()); |
|
156 |
}else{ |
|
157 |
setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache})); |
|
158 |
} |
|
167 |
updateCacheRelevance(); |
|
159 | 168 |
} |
160 | 169 |
} |
161 | 170 |
} |
... | ... | |
258 | 267 |
if (eventSource == toggleable_cache) { |
259 | 268 |
getEntity().setNameCache(toggleable_cache.getText(), |
260 | 269 |
toggleable_cache.getState()); |
261 |
//if (!isIrrelevant()) { |
|
262 |
setIrrelevant(toggleable_cache.getState(), |
|
263 |
Arrays.asList(new Object[] { toggleable_cache })); |
|
264 |
//} |
|
270 |
updateCacheRelevance(); |
|
265 | 271 |
} |
266 | 272 |
else if(eventSource == combo_rank){ |
267 | 273 |
getEntity().setRank(combo_rank.getSelection()); |
... | ... | |
315 | 321 |
|
316 | 322 |
@Override |
317 | 323 |
protected void handleToggleableCacheField() { |
318 |
boolean pushedState = toggleable_cache.getState(); |
|
319 |
|
|
320 |
getEntity().setTitleCache(toggleable_cache.getText(), pushedState); |
|
321 |
setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_appendedPhrase, checkbox_anamorphic })); |
|
324 |
getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState()); |
|
325 |
updateCacheRelevance(); |
|
322 | 326 |
updateToggleableCacheField(); |
323 | 327 |
} |
324 |
|
|
325 |
@Override |
|
326 |
public void setIrrelevant(boolean irrelevant, Collection<Object> except){ |
|
327 |
if (toggleable_cache != null){ |
|
328 |
if (toggleable_cache.getState() == irrelevant){ |
|
329 |
super.setIrrelevant(irrelevant, except); |
|
330 |
} |
|
331 |
if (except == null || except.isEmpty()){ |
|
332 |
toggleable_cache.setIrrelevant(irrelevant); |
|
333 |
} |
|
334 |
} |
|
335 |
} |
|
336 | 328 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.ui.section.name; |
10 | 10 |
|
11 |
import java.util.Arrays; |
|
12 |
|
|
13 | 11 |
import eu.etaxonomy.cdm.model.name.IBacterialName; |
14 | 12 |
import eu.etaxonomy.cdm.model.name.NomenclaturalCode; |
15 | 13 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
... | ... | |
93 | 91 |
section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); |
94 | 92 |
addControl(section_hybrid); |
95 | 93 |
addElement(section_hybrid); |
96 |
} |
|
94 |
} |
|
95 |
|
|
96 |
//cache relevance |
|
97 |
registerCacheRelevance(section_name); |
|
98 |
registerCacheRelevance(section_author); |
|
99 |
registerCacheRelevance(combo_nomenclaturalCode); |
|
100 |
registerCacheRelevance(section_hybrid); |
|
97 | 101 |
} |
98 | 102 |
|
99 | 103 |
@Override |
... | ... | |
102 | 106 |
|
103 | 107 |
if(toggleable_cache != null){ |
104 | 108 |
toggleable_cache.setEnabled(getEntity().isProtectedTitleCache() || getEntity().isProtectedFullTitleCache()); |
105 |
setIrrelevant(toggleable_cache.getState(), |
|
106 |
Arrays.asList(new Object[] { toggleable_cache, textLsid, text_nameApprobation })); |
|
109 |
updateCacheRelevance(); |
|
107 | 110 |
} |
108 | 111 |
} |
Also available in: Unified diff
ref #9405 , ref #4944 refactor the cache protection indication handling in TaxEditor details view elements