Author: kono
Date: 2012-06-14 16:13:45 -0700 (Thu, 14 Jun 2012)
New Revision: 29574

Added:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/mapgenerator/FitLabelMappingGenerator.java
Modified:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
   
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/VizMapperMenuManager.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.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/FontVisualPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/AttributeComboBoxPropertyEditor.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ExportLegendTask.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateNewVisualStyleTask.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/VizMapperUtil.java
Log:
fixes #1114 Fit node width to label function added.

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
      2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
      2012-06-14 23:13:45 UTC (rev 29574)
@@ -1,7 +1,6 @@
 package org.cytoscape.view.vizmap.gui.internal;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -21,8 +20,6 @@
 import org.cytoscape.model.events.ColumnDeletedListener;
 import org.cytoscape.model.events.NetworkAddedEvent;
 import org.cytoscape.model.events.NetworkAddedListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AttributeSetManager implements ColumnDeletedListener, 
ColumnCreatedListener, NetworkAddedListener {
 

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-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
      2012-06-14 23:13:45 UTC (rev 29574)
@@ -21,7 +21,6 @@
 import org.cytoscape.task.EdgeViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
-import org.cytoscape.view.presentation.RenderingEngineManager;
 import org.cytoscape.view.presentation.property.values.BendFactory;
 import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
 import org.cytoscape.view.vizmap.VisualMappingManager;
@@ -53,6 +52,7 @@
 import org.cytoscape.view.vizmap.gui.internal.theme.ColorManager;
 import org.cytoscape.view.vizmap.gui.internal.theme.IconManager;
 import org.cytoscape.view.vizmap.gui.internal.util.VizMapperUtil;
+import 
org.cytoscape.view.vizmap.gui.internal.util.mapgenerator.FitLabelMappingGenerator;
 import 
org.cytoscape.view.vizmap.gui.internal.util.mapgenerator.NumberSeriesMappingGenerator;
 import 
org.cytoscape.view.vizmap.gui.internal.util.mapgenerator.RainbowColorMappingGenerator;
 import 
org.cytoscape.view.vizmap.gui.internal.util.mapgenerator.RainbowOscColorMappingGenerator;
@@ -138,6 +138,7 @@
                RandomColorMappingGenerator randomColorGenerator = new 
RandomColorMappingGenerator(Color.class);
                NumberSeriesMappingGenerator<Number> seriesGenerator = new 
NumberSeriesMappingGenerator<Number>(Number.class);
                RandomNumberMappingGenerator randomNumberGenerator = new 
RandomNumberMappingGenerator();
+               FitLabelMappingGenerator<Number> fitLabelMappingGenerator = new 
FitLabelMappingGenerator<Number>(Number.class, cyApplicationManagerServiceRef, 
vmmServiceRef);
                
                DefaultTableCellRenderer emptyBoxRenderer = new 
DefaultTableCellRenderer();
                DefaultTableCellRenderer filledBoxRenderer = new 
DefaultTableCellRenderer();
@@ -242,6 +243,12 @@
                randomNumberGeneratorProps.setProperty("title","Random 
Numbers");
                randomNumberGeneratorProps.setProperty("menu","context");
                registerService(bc, randomNumberGenerator, 
DiscreteMappingGenerator.class, randomNumberGeneratorProps);
+               
+               Properties fitLabelGeneratorProps = new Properties();
+               
fitLabelGeneratorProps.setProperty("service.type","vizmapUI.contextMenu");
+               fitLabelGeneratorProps.setProperty("title","Fit label width 
(SUID to Node Width)");
+               fitLabelGeneratorProps.setProperty("menu","context");
+               registerService(bc, fitLabelMappingGenerator, 
DiscreteMappingGenerator.class, fitLabelGeneratorProps);
                                
                EditSelectedCellAction editAction = new 
EditSelectedCellAction(editorManager, cyApplicationManagerServiceRef, 
propertySheetPanel, vmmServiceRef);
                Properties editSelectedProps = 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-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertyBuilder.java
    2012-06-14 23:13:45 UTC (rev 29574)
@@ -43,12 +43,12 @@
 
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyTableManager;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.vizmap.VisualMappingFunction;

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMenuManager.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMenuManager.java
     2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMenuManager.java
     2012-06-14 23:13:45 UTC (rev 29574)
@@ -12,7 +12,6 @@
 import org.cytoscape.application.swing.CyAction;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import 
org.cytoscape.view.vizmap.gui.internal.task.generators.GenerateValuesTaskFactory;
-import org.cytoscape.view.vizmap.gui.internal.theme.IconManager;
 import org.cytoscape.view.vizmap.gui.util.DiscreteMappingGenerator;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskManager;

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
     2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
     2012-06-14 23:13:45 UTC (rev 29574)
@@ -3,8 +3,10 @@
 import static org.cytoscape.work.ServiceProperties.MENU_GRAVITY;
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Vector;
 
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNode;
@@ -22,10 +24,6 @@
 import org.cytoscape.work.ServiceProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Arrays;
-import java.util.Vector;
 
 /**
  * Creates Visual Style Bypass menu.

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-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/BasicVisualPropertyEditor.java
 2012-06-14 23:13:45 UTC (rev 29574)
@@ -5,7 +5,6 @@
 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

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/FontVisualPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/FontVisualPropertyEditor.java
  2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/FontVisualPropertyEditor.java
  2012-06-14 23:13:45 UTC (rev 29574)
@@ -3,7 +3,6 @@
 
 
 import java.awt.Font;
-import java.beans.PropertyEditor;
 
 import javax.swing.table.TableCellRenderer;
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/AttributeComboBoxPropertyEditor.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/AttributeComboBoxPropertyEditor.java
    2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/editor/propertyeditor/AttributeComboBoxPropertyEditor.java
    2012-06-14 23:13:45 UTC (rev 29574)
@@ -12,13 +12,9 @@
 
 import javax.swing.JComboBox;
 import javax.swing.JList;
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
 import javax.swing.plaf.basic.BasicComboBoxRenderer;
 
 import org.cytoscape.application.CyApplicationManager;
-import org.cytoscape.application.events.SetCurrentNetworkEvent;
-import org.cytoscape.application.events.SetCurrentNetworkListener;
 import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ExportLegendTask.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ExportLegendTask.java
  2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/legend/ExportLegendTask.java
  2012-06-14 23:13:45 UTC (rev 29574)
@@ -1,10 +1,7 @@
 package org.cytoscape.view.vizmap.gui.internal.legend;
 
-import java.io.File;
-
 import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskMonitor;
-import org.cytoscape.work.Tunable;
 
 public class ExportLegendTask implements Task {
        

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateNewVisualStyleTask.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateNewVisualStyleTask.java
    2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/CreateNewVisualStyleTask.java
    2012-06-14 23:13:45 UTC (rev 29574)
@@ -1,5 +1,6 @@
 package org.cytoscape.view.vizmap.gui.internal.task;
 
+import java.io.IOException;
 import java.util.Iterator;
 
 import org.cytoscape.view.vizmap.VisualMappingManager;
@@ -9,10 +10,9 @@
 import org.cytoscape.work.ProvidesTitle;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.Tunable;
+import org.cytoscape.work.TunableValidator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.cytoscape.work.TunableValidator;
-import java.io.IOException;
 
 public class CreateNewVisualStyleTask extends AbstractTask implements 
TunableValidator {
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
     2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/task/ui/LegendDialog.java
     2012-06-14 23:13:45 UTC (rev 29574)
@@ -30,10 +30,7 @@
 import org.cytoscape.view.vizmap.mappings.ContinuousMapping;
 import org.cytoscape.view.vizmap.mappings.DiscreteMapping;
 import org.cytoscape.view.vizmap.mappings.PassthroughMapping;
-import org.freehep.graphicsio.exportchooser.ImageExportFileType;
 import org.freehep.graphicsio.gif.GIFExportFileType;
-import org.freehep.graphicsio.ppm.PPMExportFileType;
-import org.freehep.graphicsio.ps.EPSExportFileType;
 import org.freehep.graphicsio.svg.SVGExportFileType;
 import org.freehep.util.export.ExportDialog;
 

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/VizMapperUtil.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/VizMapperUtil.java
       2012-06-14 23:12:03 UTC (rev 29573)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/VizMapperUtil.java
       2012-06-14 23:13:45 UTC (rev 29574)
@@ -11,9 +11,9 @@
 import javax.swing.JOptionPane;
 
 import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.model.Visualizable;

Added: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/mapgenerator/FitLabelMappingGenerator.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/mapgenerator/FitLabelMappingGenerator.java
                               (rev 0)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/util/mapgenerator/FitLabelMappingGenerator.java
       2012-06-14 23:13:45 UTC (rev 29574)
@@ -0,0 +1,82 @@
+package org.cytoscape.view.vizmap.gui.internal.util.mapgenerator;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.presentation.property.BasicVisualLexicon;
+import org.cytoscape.view.vizmap.VisualMappingFunction;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualStyle;
+
+
+/**
+ * Generates node width based on label size.  Only accepts SUID as the key.
+ *
+ */
+public class FitLabelMappingGenerator<V extends Number> extends 
AbstractDiscreteMappingGenerator<V>{
+
+       private final CyApplicationManager appManager;
+       private final VisualMappingManager vmm;
+       
+       public FitLabelMappingGenerator(final Class<V> type, final 
CyApplicationManager appManager,
+                       final VisualMappingManager vmm) {
+               super(type);
+               this.vmm = vmm;
+               this.appManager = appManager;
+       }
+
+       @Override
+       public <T> Map<T, V> generateMap(final Set<T> tableValues) {
+               // Generate map for the current network view.
+               final CyNetworkView networkView = 
appManager.getCurrentNetworkView();
+               if(networkView == null)
+                       return Collections.emptyMap();
+               
+               final VisualStyle style = vmm.getCurrentVisualStyle();
+               // Check label size mapping exists or not
+               final VisualMappingFunction<?, Integer> fontSizeMapping = 
style.getVisualMappingFunction(BasicVisualLexicon.NODE_LABEL_FONT_SIZE);
+               // Use default label width for checking.  TODO: should we use 
mapping?
+               final Double maxLabelWidth = 
style.getDefaultValue(BasicVisualLexicon.NODE_LABEL_WIDTH);
+               
+               final Map<T, V> valueMap = new HashMap<T, V>();
+               
+               for(final T attrVal: tableValues) {
+                       Long suid = null;
+                       try {
+                               suid = Long.class.cast(attrVal);
+                       } catch(Exception e) {
+                               throw new IllegalArgumentException("This 
generator only works with Long (SUID).", e);
+                       }
+                       final CyNode node = 
networkView.getModel().getNode(suid);
+                       if(node == null)
+                               continue;
+                       
+                       final View<CyNode> nodeView = 
networkView.getNodeView(node);
+                       if(nodeView == null)
+                               continue;
+                       
+                       final String labelText = 
nodeView.getVisualProperty(BasicVisualLexicon.NODE_LABEL);
+                       final int textLen = labelText.length();
+                       final int fontSize;
+                       if(fontSizeMapping == null)
+                               fontSize = 
style.getDefaultValue(BasicVisualLexicon.NODE_LABEL_FONT_SIZE);
+                       else
+                               fontSize = 
nodeView.getVisualProperty(BasicVisualLexicon.NODE_LABEL_FONT_SIZE);
+                       
+                       final Double width = fontSize*textLen*0.7;
+                       if(maxLabelWidth>width)
+                               valueMap.put(attrVal, (V) width);
+                       else {
+                               valueMap.put(attrVal, (V) maxLabelWidth);
+                       }
+               }
+               
+               return valueMap;
+       }
+}

-- 
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