import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.term.DefinedTermBase;
import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
* @since 05.06.2019
*
*/
-abstract public class GeneralTermPreference extends CdmPreferencePage implements ISelectionChangedListener, SelectionListener{
+abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> extends CdmPreferencePage implements ISelectionChangedListener, SelectionListener{
protected CheckBoxTreeComposite treeComposite;
protected List<TermVocabularyDto> vocabularies = new ArrayList<>();
protected Combo useLocalOrAdmin ;
protected IPreferencePredicate predicate;
- public GeneralTermPreference(){
+ public AbstractGeneralTermPreference(){
super();
}
}
- treeComposite = new CheckBoxTreeComposite(container, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+ treeComposite = new CheckBoxTreeComposite(container, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
treeComposite.getViewer().setComparator(new DefinedTermSorter());
rememberCheckedValues(getCheckedValuesFromPreferences());
useLocalOrAdmin.select(1);
}else{
useLocalOrAdmin.select(0);
+ treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
treeComposite.setEnabled(false);
+
+ //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
}
}else{
if (allowOverride){
if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
checked = Arrays.asList(listCheckedComma);
}
- List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(checked);
+ List<T> termsFromStringValues = getTermsFromStringValues(checked);
treeComposite.setCheckedElements(termsFromStringValues.toArray());
}else{
- List<AbstractTermDto> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
+ List<T> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
treeComposite.setCheckedElements(termsFromStringValues.toArray());
treeComposite.getViewer().refresh();
treeComposite.redraw();
}
}
- protected List<AbstractTermDto> getTermsFromStringValues(List<String> listValue) {
- List<AbstractTermDto> termlist = new ArrayList<>();
- ITermService termService = CdmStore.getService(ITermService.class);
- for (String s : listValue) {
- if (!StringUtils.isBlank(s)){
- UUID uuid = UUID.fromString(s);
-
- DefinedTermBase definedTermBase = termService.load(uuid);
- if(definedTermBase != null){
- termlist.add(TermDto.fromTerm(definedTermBase, true));
- }else{
- IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
- TermVocabulary termVocabulary = vocabularyService.load(uuid);
- if (termVocabulary != null){
- termlist.add(new TermVocabularyDto(uuid, termVocabulary.getRepresentations(), termVocabulary.getTermType()));
- }
- }
- }
- }
- if (listValue.isEmpty()){
- List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
- for (DefinedTermBase term: terms){
- if (!(term instanceof eu.etaxonomy.cdm.model.description.Character) && term != null){
- termlist.add(TermDto.fromTerm(term, true));
- }
- }
- }
-
- return termlist;
- }
+ protected abstract List<T> getTermsFromStringValues(List<String> listValue);
protected void initialiseVocabularies() {
if (getVocabularies() != null) {