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.