Author: kono
Date: 2012-04-27 16:04:15 -0700 (Fri, 27 Apr 2012)
New Revision: 29035

Added:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BooleanVisualPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/StringVisualPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/BooleanValueEditor.java
Modified:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BasicVisualPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/NumberVisualPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyStringPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/StringValueEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
Log:
fixes #910 Broken discrete cell editors are fixed.

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
      2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
      2012-04-27 23:04:15 UTC (rev 29035)
@@ -30,9 +30,13 @@
 import org.cytoscape.view.vizmap.gui.editor.VisualPropertyEditor;
 import org.cytoscape.view.vizmap.gui.internal.action.EditSelectedCellAction;
 import org.cytoscape.view.vizmap.gui.internal.bypass.BypassManager;
+import 
org.cytoscape.view.vizmap.gui.internal.editor.BooleanVisualPropertyEditor;
 import org.cytoscape.view.vizmap.gui.internal.editor.ColorVisualPropertyEditor;
 import org.cytoscape.view.vizmap.gui.internal.editor.EditorManagerImpl;
 import 
org.cytoscape.view.vizmap.gui.internal.editor.NumberVisualPropertyEditor;
+import 
org.cytoscape.view.vizmap.gui.internal.editor.StringVisualPropertyEditor;
+import 
org.cytoscape.view.vizmap.gui.internal.editor.propertyeditor.CyComboBoxPropertyEditor;
+import 
org.cytoscape.view.vizmap.gui.internal.editor.valueeditor.BooleanValueEditor;
 import 
org.cytoscape.view.vizmap.gui.internal.editor.valueeditor.CyColorChooser;
 import org.cytoscape.view.vizmap.gui.internal.editor.valueeditor.FontEditor;
 import 
org.cytoscape.view.vizmap.gui.internal.editor.valueeditor.NumericValueEditor;
@@ -96,14 +100,22 @@
                
                CyColorChooser colorEditor = new CyColorChooser();
                FontEditor fontEditor = new FontEditor();
-               NumericValueEditor doubleValueEditor = new 
NumericValueEditor(Double.class);
-               NumericValueEditor integerValueEditor = new 
NumericValueEditor(Integer.class);
-               NumericValueEditor floatValueEditor = new 
NumericValueEditor(Float.class);
-               StringValueEditor stringValueEditor = new 
StringValueEditor(String.class);
+               NumericValueEditor<Double> doubleValueEditor = new 
NumericValueEditor<Double>(Double.class);
+               NumericValueEditor<Integer> integerValueEditor = new 
NumericValueEditor<Integer>(Integer.class);
+               NumericValueEditor<Float> floatValueEditor = new 
NumericValueEditor<Float>(Float.class);
+               StringValueEditor stringValueEditor = new StringValueEditor();
+               BooleanValueEditor booleanValueEditor = new 
BooleanValueEditor();
+               
                ColorVisualPropertyEditor colorPropertyEditor = new 
ColorVisualPropertyEditor(Paint.class,cyNetworkTableManagerServiceRef,cyApplicationManagerServiceRef,selectedVisualStyleManager,editorManager,vmmServiceRef);
                NumberVisualPropertyEditor doublePropertyEditor = new 
NumberVisualPropertyEditor(Double.class,cyNetworkTableManagerServiceRef,cyApplicationManagerServiceRef,selectedVisualStyleManager,editorManager,vmmServiceRef);
                NumberVisualPropertyEditor integerPropertyEditor = new 
NumberVisualPropertyEditor(Integer.class,cyNetworkTableManagerServiceRef,cyApplicationManagerServiceRef,selectedVisualStyleManager,editorManager,vmmServiceRef);
                NumberVisualPropertyEditor floatPropertyEditor = new 
NumberVisualPropertyEditor(Float.class,cyNetworkTableManagerServiceRef,cyApplicationManagerServiceRef,selectedVisualStyleManager,editorManager,vmmServiceRef);
+               
+               StringVisualPropertyEditor stringPropertyEditor = new 
StringVisualPropertyEditor();
+               final CyComboBoxPropertyEditor booleanEditor = new 
CyComboBoxPropertyEditor();
+               booleanEditor.setAvailableValues(new Boolean[] {true, false});
+               BooleanVisualPropertyEditor booleanVisualPropertyEditor = new 
BooleanVisualPropertyEditor(booleanEditor);
+               
                ColorManager colorMgr = new ColorManager();
                IconManager iconManager = new IconManager();
                VizMapperMenuManager menuManager = new 
VizMapperMenuManager(dialogTaskManagerServiceRef,propertySheetPanel,selectedVisualStyleManager,cyApplicationManagerServiceRef);
@@ -150,10 +162,15 @@
                registerAllServices(bc,integerValueEditor, new Properties());
                registerAllServices(bc,floatValueEditor, new Properties());
                registerAllServices(bc,stringValueEditor, new Properties());
+               registerAllServices(bc,booleanValueEditor, new Properties());
                registerAllServices(bc,colorPropertyEditor, new Properties());
                registerAllServices(bc,doublePropertyEditor, new Properties());
                registerAllServices(bc,floatPropertyEditor, new Properties());
                registerAllServices(bc,integerPropertyEditor, new Properties());
+               
+               registerAllServices(bc,stringPropertyEditor, new Properties());
+               registerAllServices(bc,booleanVisualPropertyEditor, new 
Properties());
+               
                registerAllServices(bc,editorManager, new Properties());
 
                Properties createNewVisualStyleTaskFactoryProps = new 
Properties();

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
    2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
    2012-04-27 23:04:15 UTC (rev 29035)
@@ -349,8 +349,9 @@
                                if (renderer != null)
                                        
cellRendererFactory.registerRenderer(valProp, renderer);
                        }
-                       final PropertyEditor cellEditor = 
editorManager.getVisualPropertyEditor(vp).getPropertyEditor();
+                       final PropertyEditor cellEditor = 
editor.getPropertyEditor();
 
+                       System.out.println(editor + ": CELL Editor = " + 
cellEditor);
                        if (cellEditor != null)
                                cellEditorFactory.registerEditor(valProp, 
cellEditor);
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BasicVisualPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BasicVisualPropertyEditor.java
 2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BasicVisualPropertyEditor.java
 2012-04-27 23:04:15 UTC (rev 29035)
@@ -5,6 +5,7 @@
 import org.cytoscape.view.vizmap.gui.editor.AbstractVisualPropertyEditor;
 import org.cytoscape.view.vizmap.gui.editor.ContinuousEditorType;
 
+import com.l2fprod.common.propertysheet.PropertyEditorRegistry;
 import com.l2fprod.common.propertysheet.PropertyRendererRegistry;
 
 public abstract class BasicVisualPropertyEditor<T> extends

Added: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BooleanVisualPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BooleanVisualPropertyEditor.java
                               (rev 0)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BooleanVisualPropertyEditor.java
       2012-04-27 23:04:15 UTC (rev 29035)
@@ -0,0 +1,14 @@
+package org.cytoscape.view.vizmap.gui.internal.editor;
+
+import java.beans.PropertyEditor;
+
+import org.cytoscape.view.vizmap.gui.editor.ContinuousEditorType;
+
+public class BooleanVisualPropertyEditor extends 
BasicVisualPropertyEditor<Boolean> {
+
+       public BooleanVisualPropertyEditor(final PropertyEditor editor) {
+               super(Boolean.class, editor, ContinuousEditorType.DISCRETE);
+               discreteTableCellRenderer = REG.getRenderer(Boolean.class);
+       }
+
+}
\ No newline at end of file

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
 2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/EditorManagerImpl.java
 2012-04-27 23:04:15 UTC (rev 29035)
@@ -75,12 +75,16 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.l2fprod.common.propertysheet.PropertyEditorRegistry;
+
 /**
  *
  */
 public class EditorManagerImpl implements EditorManager {
 
        private static final Logger logger = 
LoggerFactory.getLogger(EditorManagerImpl.class);
+       
+       private static final PropertyEditorRegistry REGISTRY = new 
PropertyEditorRegistry();
 
        private final Map<Class<?>, VisualPropertyEditor<?>> editors;
 
@@ -149,13 +153,7 @@
                return (AttributeComboBoxPropertyEditor) 
attrComboBoxEditors.get(CyNetwork.class);
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see 
org.cytoscape.application.swing.vizmap.gui.editors.EditorFactory#
-        * addEditorDisplayer(org .cytoscape.vizmap.gui.editors.EditorDisplayer,
-        * java.util.Map)
-        */
+       @Override
        public void addValueEditor(ValueEditor<?> ve, 
@SuppressWarnings("rawtypes") Map properties) {
                logger.debug("Got Value Editor " + ve.toString() + ", this is 
for " + ve.getType() + "\n\n\n");
                this.valueEditors.put(ve.getType(), ve);
@@ -169,7 +167,6 @@
        public void addVisualPropertyEditor(VisualPropertyEditor<?> ve, 
@SuppressWarnings("rawtypes") Map properties) {
                logger.debug("### Got VP Editor " + ve.toString() + ", this is 
for " + ve.getType());
                this.editors.put(ve.getType(), ve);
-               logger.debug("Total editor count = " + editors.size());
        }
 
        public void removeVisualPropertyEditor(VisualPropertyEditor<?> vpEditor,
@@ -269,17 +266,18 @@
        }
 
        private void buildDiscreteEditors(final VisualLexicon lexicon) {
+               final Set<VisualProperty<?>> vps = 
lexicon.getAllVisualProperties();
 
-               logger.debug("\n\n\nNew Engine Factory: Adding discrete value 
editors------------------------");
-
-               Set<VisualProperty<?>> vps = lexicon.getAllVisualProperties();
                for (final VisualProperty<?> vp : vps) {
                        Range<?> range = vp.getRange();
 
+                       // If data type is basic (String, Boolean, etc.) not 
custom editor is not necessary.
+                       final Class<?> targetDataType = range.getType();
+                       if(REGISTRY.getEditor(targetDataType) != null)
+                               continue;
+                       
                        if (range instanceof DiscreteRange<?>) {
-
                                // Visual Property Editor.
-                               logger.debug("Got new Discrete.  Creating new 
VP editor: " + vp.getDisplayName());
                                final Set<?> values = ((DiscreteRange<?>) 
range).values();
                                VisualPropertyEditor<?> vpEditor = new 
DiscreteValuePropertyEditor(range.getType(), values,
                                                tableManager, appManager, 
selectedManager, this, vmm);

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/NumberVisualPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/NumberVisualPropertyEditor.java
        2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/NumberVisualPropertyEditor.java
        2012-04-27 23:04:15 UTC (rev 29035)
@@ -56,9 +56,6 @@
                        final EditorManager editorManager, final 
VisualMappingManager vmm) {
                super(type, new CyNumberPropertyEditor<T>(type, null), 
ContinuousEditorType.CONTINUOUS);
                discreteTableCellRenderer = REG.getRenderer(type);
-
-//             continuousEditor = new C2CEditor(manager, appManager, 
selectedManager, editorManager, vmm);
-//             continuousTableCellRenderer = new 
NumberContinuousCellRenderer((AbstractContinuousMappingEditor<?, ?>) 
continuousEditor);;
        }
 
        @Override

Added: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/StringVisualPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/StringVisualPropertyEditor.java
                                (rev 0)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/StringVisualPropertyEditor.java
        2012-04-27 23:04:15 UTC (rev 29035)
@@ -0,0 +1,13 @@
+package org.cytoscape.view.vizmap.gui.internal.editor;
+
+import org.cytoscape.view.vizmap.gui.editor.ContinuousEditorType;
+import 
org.cytoscape.view.vizmap.gui.internal.editor.propertyeditor.CyStringPropertyEditor;
+
+public class StringVisualPropertyEditor extends 
BasicVisualPropertyEditor<String> {
+
+       public StringVisualPropertyEditor() {
+               super(String.class, new CyStringPropertyEditor(), 
ContinuousEditorType.DISCRETE);
+               discreteTableCellRenderer = REG.getRenderer(String.class);
+       }
+
+}

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyStringPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyStringPropertyEditor.java
     2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/CyStringPropertyEditor.java
     2012-04-27 23:04:15 UTC (rev 29035)
@@ -62,7 +62,7 @@
                                Method getM = null;
                                Object val = null;
 
-                               //System.out.println("* String E Called!");
+                               System.out.println("!* String E Called!");
                                
                                try {
                                        getM = 
e.getOppositeComponent().getClass().getMethod("getSelectedRow", new Class[] {});

Added: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/BooleanValueEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/BooleanValueEditor.java
                            (rev 0)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/BooleanValueEditor.java
    2012-04-27 23:04:15 UTC (rev 29035)
@@ -0,0 +1,32 @@
+package org.cytoscape.view.vizmap.gui.internal.editor.valueeditor;
+
+import java.awt.Component;
+
+import javax.swing.Icon;
+import javax.swing.JOptionPane;
+
+import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
+
+public final class BooleanValueEditor implements ValueEditor<Boolean> {
+
+       @Override
+       public Boolean showEditor(final Component parent, final Boolean 
initialValue) {
+               
+               String message = "Please select new value:";
+               String title = "Select True or False";
+               int optionType = JOptionPane.DEFAULT_OPTION;
+               int messageType = JOptionPane.QUESTION_MESSAGE;
+               Icon icon = null;
+               Boolean[] options = new Boolean[] {true, false};
+               int result = JOptionPane.showOptionDialog(parent, message, 
title, optionType, messageType, icon, options, initialValue);
+               if(result == JOptionPane.CLOSED_OPTION)
+                       return false;
+               else
+                       return options[result];
+       }
+
+       @Override
+       public Class<Boolean> getType() {
+               return Boolean.class;
+       }
+}

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/StringValueEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/StringValueEditor.java
     2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/valueeditor/StringValueEditor.java
     2012-04-27 23:04:15 UTC (rev 29035)
@@ -8,8 +8,8 @@
 
        private static final String MESSAGE = "Please enter new text value";
 
-       public StringValueEditor(Class<String> type) {
-               super(type);
+       public StringValueEditor() {
+               super(String.class);
        }
 
        

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
     2012-04-27 21:57:55 UTC (rev 29034)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/event/CellEditorEventHandler.java
     2012-04-27 23:04:15 UTC (rev 29035)
@@ -116,31 +116,31 @@
         */
        @Override
        public void processEvent(PropertyChangeEvent e) {
+               
+               System.out.println("2# Cell editor PC event");
 
                final Object newVal = e.getNewValue();
                final Object oldVal = e.getOldValue();
 
                // Check update is necessary or not.
-               if (newVal == null && oldVal == null) {
-                       logger.debug("Both null.");
+               if (newVal == null && oldVal == null)
                        return;
-               }
 
-               if (newVal != null && newVal.equals(oldVal)) {
-                       logger.debug("No change.  No need to update.");
+               System.out.println("**e1");
+               // Same value.  No change required.
+               if (newVal != null && newVal.equals(oldVal))
                        return;
-               }
 
+               System.out.println("**e2");
                // find selected cell
                final PropertySheetTable table = propertySheetPanel.getTable();
                final int selected = table.getSelectedRow();
 
-               // If not selected, ignore.
-               if (selected < 0) {
-                       logger.debug("No celected Cells!!.");
+               // If nothing selected, ignore.
+               if (selected < 0)
                        return;
-               }
 
+               System.out.println("**e3");
                // Extract selected Property object in the table.
                final Item selectedItem = (Item) 
propertySheetPanel.getTable().getValueAt(selected, 0);
                final VizMapperProperty<?, ?, ?> prop = (VizMapperProperty<?, 
?, ?>) selectedItem.getProperty();
@@ -150,8 +150,11 @@
 
                VisualProperty<?> type = null;
 
+               System.out.println("**e4");
                // Case 1: Attribute type changed.
                if (prop.getCellType().equals(CellType.VISUAL_PROPERTY_TYPE)) {
+                       System.out.println("**attr edit!");
+                       
                        if (e.getNewValue() == null)
                                throw new NullPointerException("New controlling 
attr name is null.");
 
@@ -179,6 +182,7 @@
                // 2. Switch mapping type
                if (prop.getCellType().equals(CellType.MAPPING_TYPE)) {
 
+                       System.out.println("**map type edit!");
                        if (e.getNewValue() == e.getOldValue())
                                return;
 
@@ -196,7 +200,9 @@
                        switchMappingType(prop, type, 
(VisualMappingFunctionFactory) e.getNewValue(),
                                        controllingAttrName.toString());
                } else if (prop.getParentProperty() != null) {
-                       // Discrete Cell editor. Create new map entry and 
register it.
+                       System.out.println("** Discrete cell edit!");
+
+                       // Discrete Cell editor event. Create new map entry and 
register it.
                        logger.debug("Cell edit event: name = " + 
prop.getName());
                        logger.debug("Cell edit event: old val = " + 
prop.getValue());
                        logger.debug("Cell edit event: new val = " + newVal);
@@ -214,6 +220,8 @@
 
                        
selectedStyleManager.getCurrentVisualStyle().apply(applicationManager.getCurrentNetworkView());
                        applicationManager.getCurrentNetworkView().updateView();
+               } else {
+                       System.out.println("**INVALID edit!");
                }
        }
 

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to