ref #8568: performance issues for term and voc preference pages
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / wizard / AvailableDistributionStatusPage.java
index d90c579bef17fed68176eeabd5217a91484caac2..c68b1bbce4229980aaf2e2bf30d95871d899b3c4 100755 (executable)
 */
 package eu.etaxonomy.taxeditor.preference.wizard;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.StyledString.Styler;
-import org.eclipse.jface.viewers.ViewerComparator;
-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.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.taxeditor.editor.definedterm.TermContentProvider;
-import eu.etaxonomy.taxeditor.editor.definedterm.TermLabelProvider;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+
 
 /**
  * @author k.luther
  * @since 05.10.2018
  *
  */
-public class AvailableDistributionStatusPage extends AbstractTermSelectionWizardPage implements ICdmEntitySessionEnabled{
+public class AvailableDistributionStatusPage extends AbstractTermSelectionWizardPage<TermDto> {
 
-    private ColumnViewer viewer;
-    private List<TermVocabulary<DefinedTermBase>> vocabularies = new ArrayList<>();
-    private CdmPreference pref;
 
 
-    public AvailableDistributionStatusPage(String pageName, CdmPreference pref) {
+    public AvailableDistributionStatusPage(String pageName, CdmPreference pref, boolean localPref) {
         super(pageName, TermType.PresenceAbsenceTerm);
         this.pref = pref;
-
+        this.localPref = localPref;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void createControl(Composite parent) {
-
-       // String checkedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_VOCABULARIES);
-
-
-       // String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
         setTitle(Messages.AvailableDistributionStatusPage_PAGE_TITLE);
         setDescription(Messages.AvailableDistributionStatusPage_PAGE_DESCRIPTION);
-        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));
-//        viewer.setContentProvider(new TermContentProvider());
-        Styler styler = new Styler() {
-            @Override
-            public void applyStyles(TextStyle textStyle) {
-                textStyle.foreground = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
-            }
-        };
-        getViewer().setContentProvider(new TermContentProvider());
-        getViewer().setLabelProvider(new TermLabelProvider(styler));
-        getViewer().setComparator(new ViewerComparator());
-        ((CheckboxTreeViewer)getViewer()).addCheckStateListener(new ICheckStateListener() {
-
-            private boolean ignoreCheckEvent = false;
-
-            @Override
-            public void checkStateChanged(CheckStateChangedEvent event) {
-
-
-                if (ignoreCheckEvent ) {
-                    return;
-                }
-
-                ignoreCheckEvent = true;
-
-                try {
-
-
-                }
-                finally {
-                    ignoreCheckEvent = false;
-                }
-
-            }
-        });
-        String checkedValues = null;
-        if (pref != null){
-            checkedValues = pref.getValue();
-        }
-        rememberCheckedValues(checkedValues, null);
-        ((CheckboxTreeViewer)getViewer()).setCheckedElements(listCheckedTerms.toArray());
-        ((CheckboxTreeViewer)getViewer()).expandToLevel(2);
-        setControl(composite);
+        //if (!localPref){
+        override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()));
+        createAllowOverrideButton(parent);
+        //}
+        super.createControl(parent);
 
     }
 
-
     @Override
-    public ColumnViewer getViewer() {
-        return viewer;
+    protected String getCheckedValuesFromPreferences() {
+       String checkedValues = null;
+        if (localPref){
+           checkedValues = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), true);
+        }else if(pref != null){
+            checkedValues = pref.getValue();
+        }
+        return checkedValues;
     }
 
-    @Override
-    public void setViewer(ColumnViewer viewer) {
-        this.viewer = viewer;
-    }
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        // TODO Auto-generated method stub
-        return null;
-    }
+
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public <T extends CdmBase> Collection<T> getRootEntities() {
+    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public Map<Object, List<String>> getPropertyPathsMap() {
+    protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
         // TODO Auto-generated method stub
         return null;
     }
-    @Override
-    protected  List<TermVocabulary<DefinedTermBase>> getVocabulariesFromPreference(){
-     return null;
-    }
+
 
 }