- used native SWT checkBox button to toggle advanced view
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 25 Aug 2014 10:59:03 +0000 (10:59 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 25 Aug 2014 10:59:03 +0000 (10:59 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java

index 58024116f96c8fbe0cd3d50a1cebc0e81ac94590..0ba36fe84717aea3f28dc62624cc667fb5ce1838 100644 (file)
 package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.net.URISyntaxException;
-import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
-import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
 
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
@@ -24,7 +26,6 @@ import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
@@ -40,7 +41,7 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
     private UriWithLabelElement textUri;
     private MediaRepresentationSection section_mediaRepresentation;
 
-    private CheckboxElement checkBoxShowAdvancedView;
+    private Button checkBoxShowAdvancedView;
     private MediaRepresentationPart singleMediaRepresentationPart;
     private ICdmFormElement parentFormElement;
     private int style;
@@ -60,10 +61,20 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
     protected void createControls(ICdmFormElement formElement, Media entity, int style) {
         this.parentFormElement = formElement;
         this.style = style;
-        checkBoxShowAdvancedView = formFactory.createCheckbox(formElement, "Advanced Media View", false, style);
-        List<IPropertyChangeListener> checkBoxPropertyChangeListeners = checkBoxShowAdvancedView.getPropertyChangeListeners();
-        checkBoxPropertyChangeListeners.retainAll(Collections.singletonList(this));
-        checkBoxShowAdvancedView.setPropertyChangeListeners(checkBoxPropertyChangeListeners);//no property change events for checkbox
+        checkBoxShowAdvancedView = formFactory.createButton(formElement.getLayoutComposite(), "Advanced Media View", SWT.CHECK | style);
+        checkBoxShowAdvancedView.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        checkBoxShowAdvancedView.addSelectionListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                showAdvancedView(checkBoxShowAdvancedView.getSelection());
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+
+            }
+        });
     }
 
     /* (non-Javadoc)
@@ -122,16 +133,19 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
     private boolean isAdvancedMediaView(){
         if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ADVANCED_MEDIA_SECTION)){
             checkBoxShowAdvancedView.setSelection(true);
+            checkBoxShowAdvancedView.setEnabled(false);
             return true;
         }
         Set<MediaRepresentation> representations = getEntity().getRepresentations();
         if(representations.size()>1){
+            checkBoxShowAdvancedView.setSelection(true);
             checkBoxShowAdvancedView.setEnabled(false);
             return true;
         }
         if(representations.size()==1){
             List<MediaRepresentationPart> parts = representations.iterator().next().getParts();
             if(parts.size()>1){
+                checkBoxShowAdvancedView.setSelection(true);
                 checkBoxShowAdvancedView.setEnabled(false);
                 return true;
             }