Revision ce2334e5
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/AreasSelectionDialog.java | ||
---|---|---|
17 | 17 |
|
18 | 18 |
import org.eclipse.jface.dialogs.Dialog; |
19 | 19 |
import org.eclipse.jface.layout.GridLayoutFactory; |
20 |
import org.eclipse.jface.viewers.StyledString.Styler; |
|
21 | 20 |
import org.eclipse.swt.SWT; |
22 |
import org.eclipse.swt.graphics.TextStyle; |
|
23 | 21 |
import org.eclipse.swt.layout.GridLayout; |
24 | 22 |
import org.eclipse.swt.widgets.Composite; |
25 | 23 |
import org.eclipse.swt.widgets.Control; |
26 |
import org.eclipse.swt.widgets.Display; |
|
27 | 24 |
import org.eclipse.swt.widgets.Shell; |
28 | 25 |
|
29 | 26 |
import eu.etaxonomy.cdm.api.service.IVocabularyService; |
30 | 27 |
import eu.etaxonomy.cdm.model.common.TermType; |
31 | 28 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
32 | 29 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
33 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermContentProvider; |
|
34 |
import eu.etaxonomy.taxeditor.preference.wizard.AreaLabelProvider;
|
|
30 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermUuidAndTitleCacheContentProvider;
|
|
31 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermUuidAndTitleCacheLabelProvider;
|
|
35 | 32 |
import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite; |
36 | 33 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
37 | 34 |
|
... | ... | |
58 | 55 |
@Override |
59 | 56 |
protected Control createDialogArea(Composite parent) { |
60 | 57 |
parent.setLayout(new GridLayout()); |
61 |
Styler styler = new Styler() { |
|
62 |
@Override |
|
63 |
public void applyStyles(TextStyle textStyle) { |
|
64 |
textStyle.foreground = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); |
|
65 |
} |
|
66 |
}; |
|
67 |
treeComposite = new CheckBoxTreeComposite(parent, new TermContentProvider(), new AreaLabelProvider(styler), SWT.NONE); |
|
58 |
treeComposite = new CheckBoxTreeComposite(parent, new TermUuidAndTitleCacheContentProvider(), new TermUuidAndTitleCacheLabelProvider(), SWT.NONE); |
|
68 | 59 |
treeComposite.getViewer().setInput(namedAreas); |
69 | 60 |
treeComposite.setCheckedElements(selectedAreas.toArray()); |
70 | 61 |
treeComposite.getViewer().reveal(selectedAreas); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermUuidAndTitleCacheContentProvider.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2009 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.editor.definedterm; |
|
10 |
|
|
11 |
import java.util.Collection; |
|
12 |
import java.util.HashSet; |
|
13 |
|
|
14 |
import org.eclipse.jface.viewers.TreeNodeContentProvider; |
|
15 |
|
|
16 |
import eu.etaxonomy.cdm.api.service.ITermService; |
|
17 |
import eu.etaxonomy.cdm.api.service.IVocabularyService; |
|
18 |
import eu.etaxonomy.cdm.model.common.DefinedTermBase; |
|
19 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
|
20 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
|
21 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
22 |
|
|
23 |
/** |
|
24 |
* |
|
25 |
* @author pplitzner |
|
26 |
* @since Oct 29, 2018 |
|
27 |
* |
|
28 |
*/ |
|
29 |
public class TermUuidAndTitleCacheContentProvider extends TreeNodeContentProvider { |
|
30 |
|
|
31 |
@Override |
|
32 |
public Object[] getElements(Object inputElement) { |
|
33 |
Collection<TermVocabulary> inputElements = (Collection<TermVocabulary>) inputElement; |
|
34 |
return inputElements.toArray(); |
|
35 |
} |
|
36 |
|
|
37 |
@Override |
|
38 |
public Object[] getChildren(Object parentElement) { |
|
39 |
Collection<Object> children = new HashSet<>(); |
|
40 |
if(parentElement instanceof TermVocabulary){ |
|
41 |
children.addAll(CdmStore.getService(IVocabularyService.class).getTopLevelTerms(((TermVocabulary)parentElement).getId())); |
|
42 |
} else { |
|
43 |
Collection<Object> includes = new HashSet<>(); |
|
44 |
Collection<Object> generalizationOfs = new HashSet<>(); |
|
45 |
if (parentElement instanceof DefinedTermBase) { |
|
46 |
includes = ((DefinedTermBase) parentElement).getIncludes(); |
|
47 |
generalizationOfs = ((DefinedTermBase) parentElement).getGeneralizationOf(); |
|
48 |
} |
|
49 |
else if(parentElement instanceof UuidAndTitleCache){ |
|
50 |
includes.addAll(CdmStore.getService(ITermService.class).getIncludesAsUuidAndTitleCache((UuidAndTitleCache<DefinedTermBase>) parentElement)); |
|
51 |
generalizationOfs.addAll(CdmStore.getService(ITermService.class).getGeneralizationsAsUuidAndTitleCache((UuidAndTitleCache<DefinedTermBase>) parentElement)); |
|
52 |
} |
|
53 |
children.addAll(includes); |
|
54 |
children.addAll(generalizationOfs); |
|
55 |
} |
|
56 |
return children.toArray(); |
|
57 |
} |
|
58 |
|
|
59 |
@Override |
|
60 |
public Object getParent(Object element) { |
|
61 |
if(element instanceof DefinedTermBase){ |
|
62 |
DefinedTermBase definedTermBase = (DefinedTermBase)element; |
|
63 |
if (definedTermBase.getPartOf() != null) { |
|
64 |
return definedTermBase.getPartOf(); |
|
65 |
}else if (definedTermBase.getKindOf() != null) { |
|
66 |
return definedTermBase.getKindOf(); |
|
67 |
} else { |
|
68 |
return definedTermBase.getVocabulary(); |
|
69 |
} |
|
70 |
} |
|
71 |
else if(element instanceof UuidAndTitleCache){ |
|
72 |
return CdmStore.getService(ITermService.class).getParentUuidAndTitleCache((UuidAndTitleCache)element); |
|
73 |
} |
|
74 |
return null; |
|
75 |
|
|
76 |
} |
|
77 |
|
|
78 |
@Override |
|
79 |
public boolean hasChildren(Object element) { |
|
80 |
if (getChildren(element) != null){ |
|
81 |
return getChildren(element).length > 0; |
|
82 |
} |
|
83 |
return false; |
|
84 |
} |
|
85 |
|
|
86 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermUuidAndTitleCacheLabelProvider.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2009 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.editor.definedterm; |
|
10 |
|
|
11 |
import org.eclipse.jface.viewers.ColumnLabelProvider; |
|
12 |
|
|
13 |
import eu.etaxonomy.cdm.model.common.TermVocabulary; |
|
14 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
|
15 |
|
|
16 |
/** |
|
17 |
* |
|
18 |
* @author pplitzner |
|
19 |
* @since Oct 29, 2018 |
|
20 |
* |
|
21 |
*/ |
|
22 |
public class TermUuidAndTitleCacheLabelProvider extends ColumnLabelProvider { |
|
23 |
|
|
24 |
@Override |
|
25 |
public String getText(Object element) { |
|
26 |
if(element instanceof TermVocabulary){ |
|
27 |
return ((TermVocabulary) element).getTitleCache(); |
|
28 |
} |
|
29 |
else if(element instanceof UuidAndTitleCache){ |
|
30 |
return ((UuidAndTitleCache) element).getTitleCache(); |
|
31 |
} |
|
32 |
return element.toString(); |
|
33 |
} |
|
34 |
|
|
35 |
} |
Also available in: Unified diff
ref #7875 Use UuidAndTitleCache based services for area selection dialog