*/
package eu.etaxonomy.taxeditor.preference.wizard;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.StyledString.Styler;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.TextStyle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
}
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
- * .Composite)
- */
/** {@inheritDoc} */
@Override
public void createControl(Composite parent) {
- IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
-
- String checkedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
- String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
- setTitle("Select areas for Distribution Editor");
- setDescription("In order to be able to modify and see the distribution status of taxa,\n"
- + "you have to select the areas which you like to see.");
- Composite composite = new Composite(parent, SWT.NULL);
- composite.setLayout(new GridLayout());
- setViewer(new CheckboxTreeViewer(composite, SWT.NULL));
- ((CheckboxTreeViewer)getViewer()).getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- getViewer().setContentProvider(new DistributionContentProvider());
- Styler styler = new Styler() {
- @Override
- public void applyStyles(TextStyle textStyle) {
- textStyle.foreground = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
- }
- };
- getViewer().setLabelProvider(new AreaLabelProvider(styler));
- getViewer().setComparator(new AreaViewerComparator());
- ((CheckboxTreeViewer)getViewer()).addCheckStateListener(new ICheckStateListener() {
-
- private boolean ignoreCheckEvent = false;
-
- @Override
- public void checkStateChanged(CheckStateChangedEvent event) {
- if (ignoreCheckEvent ) {
- return;
- }
- ignoreCheckEvent = true;
- try {
- checkChildren(event.getElement(), event.getChecked());
- grayParents(event.getElement(), event.getChecked());
- // ((CheckboxTreeViewer)getViewer()).refresh();
- }
- finally {
- ignoreCheckEvent = false;
- }
- checkNoneChecked();
- }
- });
- ((CheckboxTreeViewer)getViewer()).addTreeListener(new ITreeViewerListener() {
- @Override
- public void treeCollapsed(TreeExpansionEvent event) {
- }
-
- @Override
- public void treeExpanded(TreeExpansionEvent event) {
- final Object element = event.getElement();
- final Object[] children = ((DistributionContentProvider)getViewer().getContentProvider()).getChildren(element);
- for (Object child : children) {
- if (child instanceof NamedAreaWrapper){
- if (getListCheckedTerms().contains(((NamedAreaWrapper) child).getNamedArea()) ){
- ((CheckboxTreeViewer)getViewer()).setChecked(child, true);
- }
- if (getListGrayedTerms().contains(((NamedAreaWrapper) child).getNamedArea())&& !((NamedAreaWrapper) child).isBaseElement){
- ((CheckboxTreeViewer)getViewer()).setGrayChecked(child, true);
- }
- }
-
- }
- }
- });
+ //IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
- // TODO: write listener or toggle button to select all named areas
+ setTitle(Messages.AvailableDistributionPage_PAGE_TITLE);
+ setDescription(Messages.AvailableDistributionPage_PAGE_DESCRIPTION);
- rememberCheckedValues(checkedValues, grayedValues);
- // ((CheckboxTreeViewer)getViewer()).expandToLevel(2);
- setControl(composite);
+ super.createControl(parent);
}
-
-
-
-
+ @Override
+ protected String getCheckedValuesFromPreferences() {
+ return PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
+ }
private boolean checkNoneChecked() {
- if (((CheckboxTreeViewer)getViewer()).getCheckedElements().length == 0) {
- setMessage("Please check at least one item", WARNING);
+ if (getViewer().getCheckedElements().length == 0) {
+ setMessage(Messages.AvailableDistributionPage_CHECK_MESSAGE, WARNING);
return true;
} else {
setMessage(null);
return;
}
- if (((CheckboxTreeViewer)getViewer()).isExpandable(element)){
- ((CheckboxTreeViewer)getViewer()).expandToLevel(element, CheckboxTreeViewer.ALL_LEVELS);
- ((CheckboxTreeViewer)getViewer()).setSubtreeChecked(element, checked);
+ if (getViewer().isExpandable(element)){
+ getViewer().expandToLevel(element, CheckboxTreeViewer.ALL_LEVELS);
+ getViewer().setSubtreeChecked(element, checked);
- ((CheckboxTreeViewer)getViewer()).setChecked(element, checked);
- if (((CheckboxTreeViewer)getViewer()).getGrayed(element)){
- ((CheckboxTreeViewer)getViewer()).setGrayChecked(element, !checked);
+ getViewer().setChecked(element, checked);
+ if (getViewer().getGrayed(element)){
+ getViewer().setGrayChecked(element, !checked);
}
// if (element instanceof NamedAreaWrapper){
// NamedAreaWrapper baseElement = new NamedAreaWrapper(((NamedAreaWrapper)element).getNamedArea(), true, ((NamedAreaWrapper)element).parent);
// }
}else{
- ((CheckboxTreeViewer)getViewer()).setChecked(element, checked);
- ((CheckboxTreeViewer)getViewer()).setGrayed(element, false);
+ getViewer().setChecked(element, checked);
+ getViewer().setGrayed(element, false);
}
}
//
// }else{
for (final Object fieldElement : tcp.getChildren(parent)) {
- allChecked = allChecked && ((CheckboxTreeViewer)getViewer()).getChecked(fieldElement);
- allUnchecked = allUnchecked && !((CheckboxTreeViewer)getViewer()).getChecked(fieldElement);
- allUnchecked = allUnchecked && !((CheckboxTreeViewer)getViewer()).getGrayed(fieldElement);
+ allChecked = allChecked && getViewer().getChecked(fieldElement);
+ allUnchecked = allUnchecked && !getViewer().getChecked(fieldElement);
+ allUnchecked = allUnchecked && !getViewer().getGrayed(fieldElement);
}
if (allUnchecked) {
// if (!((CheckboxTreeViewer)getViewer()).getChecked(parent)){
- ((CheckboxTreeViewer)getViewer()).setChecked(parent, false);
- ((CheckboxTreeViewer)getViewer()).setGrayed(parent, false);
+ getViewer().setChecked(parent, false);
+ getViewer().setGrayed(parent, false);
// }else{
// checked = true;
// }
} else if (allChecked){
- ((CheckboxTreeViewer)getViewer()).setChecked(parent, true);
- ((CheckboxTreeViewer)getViewer()).setGrayed(parent, false);
+ getViewer().setChecked(parent, true);
+ getViewer().setGrayed(parent, false);
}else {
// if (!((CheckboxTreeViewer)getViewer()).getChecked(parent)){
- ((CheckboxTreeViewer)getViewer()).setGrayChecked(parent, true);
- ((CheckboxTreeViewer)getViewer()).setChecked(parent, true);
+ getViewer().setGrayChecked(parent, true);
+ getViewer().setChecked(parent, true);
// }
checked = true;
public Map<Object, List<String>> getPropertyPathsMap() {
Map<Object, List<String>> propertyPathsMap = new HashMap<Object, List<String>>();
List<String> termsPropertyPaths = Arrays.asList(new String[] {
- "includes"
+ "includes" //$NON-NLS-1$
});
- propertyPathsMap.put("includes", termsPropertyPaths);
- propertyPathsMap.put("terms", termsPropertyPaths);
+ propertyPathsMap.put("includes", termsPropertyPaths); //$NON-NLS-1$
+ propertyPathsMap.put("terms", termsPropertyPaths); //$NON-NLS-1$
return propertyPathsMap;
}
+ @Override
+ protected List<TermVocabularyDto> getVocabulariesFromPreference(){
+ List<TermVocabularyDto> vocs = new ArrayList<>();
+
+ if (PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null && PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_VOCABULARIES) == null){
+ vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+ }else{
+ String vocString = PreferencesUtil.getStringValue(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
+
+ String[] arrayVocs = vocString.split(";"); //$NON-NLS-1$
+
+ Set<UUID> uuidVocs = new HashSet();
+ for (String voc: arrayVocs){
+ if (!StringUtils.isBlank(voc)){
+ uuidVocs.add(UUID.fromString(voc));
+ }
+ }
+ List<TermVocabulary> tempVocs = CdmStore.getService(IVocabularyService.class).find(uuidVocs);
+ for (TermVocabulary voc: tempVocs){
+ vocs.add(new TermVocabularyDto(voc.getUuid(), voc.getRepresentations()));
+ }
+
+ }
+ return vocs;
+ }