Author: kono
Date: 2011-10-17 10:36:20 -0700 (Mon, 17 Oct 2011)
New Revision: 27201
Added:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/PropertySheetUtil.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
Modified:
core3/impl/trunk/vizmap-gui-impl/pom.xml
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/VizMapPropertySheetBuilder.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/action/AbstractVizMapperAction.java
Log:
fixes #421 Filter for visual properties had been implemented. Users can
show/hide "advanced" visual properties from View menu.
Modified: core3/impl/trunk/vizmap-gui-impl/pom.xml
===================================================================
--- core3/impl/trunk/vizmap-gui-impl/pom.xml 2011-10-17 16:28:40 UTC (rev
27200)
+++ core3/impl/trunk/vizmap-gui-impl/pom.xml 2011-10-17 17:36:20 UTC (rev
27201)
@@ -13,7 +13,6 @@
</properties>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.cytoscape</groupId>
<artifactId>vizmap-gui-impl</artifactId>
<name>${bundle.symbolicName}</name>
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
2011-10-17 16:28:40 UTC (rev 27200)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/CyActivator.java
2011-10-17 17:36:20 UTC (rev 27201)
@@ -128,6 +128,9 @@
VizMapEventHandlerManagerImpl vizMapEventHandlerManager = new
VizMapEventHandlerManagerImpl(selectedVisualStyleManager,editorManager,vizMapPropertySheetBuilder,propertySheetPanel,vizMapperMainPanel,cyNetworkTableManagerServiceRef,cyApplicationManagerServiceRef,attributeSetManager,vizMapperUtil);
BypassManager bypassManager = new
BypassManager(cyServiceRegistrarServiceRef,editorManager,selectedVisualStyleManager);
+ SetViewModeAction viewModeAction = new
SetViewModeAction(cyApplicationManagerServiceRef, vizMapperMainPanel,
selectedVisualStyleManager);
+ registerAllServices(bc,viewModeAction, new Properties());
+
registerAllServices(bc,selectedVisualStyleManager, new
Properties());
registerAllServices(bc,attributeSetManager, new Properties());
registerAllServices(bc,vizMapperMainPanel, new Properties());
Added:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/PropertySheetUtil.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/PropertySheetUtil.java
(rev 0)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/PropertySheetUtil.java
2011-10-17 17:36:20 UTC (rev 27201)
@@ -0,0 +1,46 @@
+package org.cytoscape.view.vizmap.gui.internal;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.property.RichVisualLexicon;
+
+public final class PropertySheetUtil {
+
+ private static final Set<VisualProperty<?>> BASIC_PROPS = new
HashSet<VisualProperty<?>>();
+
+ private static boolean mode = false;
+
+ // Preset Basic Properties
+ static {
+ BASIC_PROPS.add(RichVisualLexicon.NODE_FILL_COLOR);
+ BASIC_PROPS.add(RichVisualLexicon.NODE_SHAPE);
+ BASIC_PROPS.add(RichVisualLexicon.NODE_WIDTH);
+ BASIC_PROPS.add(RichVisualLexicon.NODE_HEIGHT);
+ BASIC_PROPS.add(RichVisualLexicon.NODE_LABEL);
+ BASIC_PROPS.add(RichVisualLexicon.NODE_BORDER_PAINT);
+ BASIC_PROPS.add(RichVisualLexicon.NODE_BORDER_WIDTH);
+
+ BASIC_PROPS.add(RichVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT);
+ BASIC_PROPS.add(RichVisualLexicon.EDGE_WIDTH);
+ BASIC_PROPS.add(RichVisualLexicon.EDGE_LABEL);
+ BASIC_PROPS.add(RichVisualLexicon.EDGE_LINE_TYPE);
+ }
+
+ public static boolean isBasic(final VisualProperty<?> vp) {
+ if(BASIC_PROPS.contains(vp))
+ return true;
+ else
+ return false;
+ }
+
+ public static boolean isAdvancedMode() {
+ return mode;
+ }
+
+ public static void setMode(boolean advanced) {
+ mode = advanced;
+ }
+
+}
Added:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
(rev 0)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/SetViewModeAction.java
2011-10-17 17:36:20 UTC (rev 27201)
@@ -0,0 +1,53 @@
+package org.cytoscape.view.vizmap.gui.internal;
+
+import java.awt.event.ActionEvent;
+
+import javax.swing.Action;
+import javax.swing.event.MenuEvent;
+
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.application.swing.AbstractCyAction;
+import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
+
+public class SetViewModeAction extends AbstractCyAction {
+
+ private final static String BASIC = "Show All Visual Properties";
+ private final static String ALL = "Hide Advanced Visual Proeprties";
+
+ private VizMapperMainPanel mainPanel;
+ final SelectedVisualStyleManager manager;
+
+ public SetViewModeAction(final CyApplicationManager applicationManager,
VizMapperMainPanel mainPanel, final SelectedVisualStyleManager manager) {
+ super(BASIC, applicationManager);
+ this.mainPanel = mainPanel;
+ this.manager = manager;
+
+ PropertySheetUtil.setMode(false);
+
+ setPreferredMenu("View");
+ setMenuGravity(25.0f);
+ }
+
+ /**
+ * Toggles the Show/Hide state.
+ *
+ * @param ev
+ * Triggering event - not used.
+ */
+ public void actionPerformed(ActionEvent ev) {
+ // TODO: DO NOT CALL apply
+ mainPanel.switchVS(manager.getCurrentVisualStyle(), true);
+ }
+
+ @Override
+ public void menuSelected(MenuEvent me) {
+
+ if (PropertySheetUtil.isAdvancedMode()) {
+ putValue(Action.NAME, ALL);
+ PropertySheetUtil.setMode(false);
+ } else {
+ putValue(Action.NAME, BASIC);
+ PropertySheetUtil.setMode(true);
+ }
+ }
+}
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
2011-10-17 16:28:40 UTC (rev 27200)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapPropertySheetBuilder.java
2011-10-17 17:36:20 UTC (rev 27201)
@@ -232,11 +232,33 @@
final Collection<VisualProperty<?>> edgeVP =
util.getVisualPropertySet(CyEdge.class);
//final Collection<VisualProperty<?>> networkVP =
style.getVisualLexicon().getVisualLexiconNode(TwoDVisualLexicon.NETWORK).getChildren();
- final List<Property> nodeProps = getProps(style,
MinimalVisualLexicon.NODE.getDisplayName(), nodeVP);
- final List<Property> edgeProps = getProps(style,
MinimalVisualLexicon.EDGE.getDisplayName(), edgeVP);
+ Collection<VisualProperty<?>> nodeVPSelected = new
ArrayList<VisualProperty<?>>();
+ Collection<VisualProperty<?>> edgeVPSelected = new
ArrayList<VisualProperty<?>>();
+
+ if (PropertySheetUtil.isAdvancedMode()) {
+ nodeVPSelected = nodeVP;
+ edgeVPSelected = edgeVP;
+ } else {
+
+ for (VisualProperty<?> vp : nodeVP) {
+ if (PropertySheetUtil.isBasic(vp))
+ nodeVPSelected.add(vp);
+ }
+
+ for (VisualProperty<?> vp : edgeVP) {
+ if (PropertySheetUtil.isBasic(vp))
+ edgeVPSelected.add(vp);
+ }
+ }
+
+
+ final List<Property> nodeProps = getProps(style,
MinimalVisualLexicon.NODE.getDisplayName(), nodeVPSelected);
+ final List<Property> edgeProps = getProps(style,
MinimalVisualLexicon.EDGE.getDisplayName(), edgeVPSelected);
//final List<Property> networkProps = setProps(style,
TwoDVisualLexicon.NETWORK);
final List<Property> result = new ArrayList<Property>();
+
+
result.addAll(nodeProps);
result.addAll(edgeProps);
//result.addAll(networkProps);
@@ -315,6 +337,11 @@
for(VisualLexicon lex: lexSet) {
for (VisualProperty<?> type :
lex.getAllVisualProperties()) {
+ if (PropertySheetUtil.isAdvancedMode() ==
false) {
+ if (PropertySheetUtil.isBasic(type) ==
false)
+ continue;
+ }
+
mapping = style.getVisualMappingFunction(type);
if (mapping == null &&
lex.getVisualLexiconNode(type).getChildren().size() == 0)
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
2011-10-17 16:28:40 UTC (rev 27200)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/VizMapperMainPanel.java
2011-10-17 17:36:20 UTC (rev 27201)
@@ -36,13 +36,7 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
import javax.swing.Icon;
import javax.swing.ImageIcon;
@@ -63,12 +57,10 @@
import org.cytoscape.model.events.NetworkAddedEvent;
import org.cytoscape.model.events.NetworkAddedListener;
import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.VisualProperty;
import org.cytoscape.view.model.events.NetworkViewAddedEvent;
import org.cytoscape.view.model.events.NetworkViewAddedListener;
import org.cytoscape.view.presentation.RenderingEngine;
import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
-import org.cytoscape.view.vizmap.VisualMappingFunction;
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.view.vizmap.VisualStyle;
import org.cytoscape.view.vizmap.VisualStyleFactory;
@@ -200,7 +192,7 @@
switchVS(style, false);
}
- private void switchVS(final VisualStyle style, boolean forceUpdate) {
+ protected void switchVS(final VisualStyle style, boolean forceUpdate) {
logger.debug("######## Switching VS start: " +
style.getTitle());
@@ -211,65 +203,14 @@
// Close editor windows
editorWindowManager.closeAllEditorWindows();
- final List<Property> props =
vizMapPropertySheetBuilder.getPropertyList(style);
- if (props.size() != 0) {
- logger.debug("######## Style exists in buffer: " +
style.getTitle());
+ logger.debug("######## Need to create new prop sheet: " +
style.getTitle());
+ vizMapPropertySheetBuilder.setPropertyTable(style);
+ updateAttributeList();
- // Validate consistency
- Collection<VisualMappingFunction<?, ?>> mappings =
style.getAllVisualMappingFunctions();
- final Set<VisualProperty<?>> hasMap = new
HashSet<VisualProperty<?>>();
- for(VisualMappingFunction map: mappings)
- hasMap.add(map.getVisualProperty());
-
- boolean needUpdate = false;
- int unusedCount = 0;
- for (Property prop : props) {
- if
(prop.getCategory().startsWith(CATEGORY_UNUSED)) {
- logger.debug("######## unused Prop VAL
= " + ((VizMapperProperty)prop).getInternalValue());
- unusedCount++;
- }
- }
-
- if (unusedCount == props.size()) {
-
vizMapPropertySheetBuilder.setPropertyTable(style);
- updateAttributeList();
- } else {
-
- final Map<String, Property> unused = new
TreeMap<String, Property>();
-
- // Remove all from current table
- for (Property item :
propertySheetPanel.getProperties())
- propertySheetPanel.removeProperty(item);
-
- /*
- * Add properties to current property sheet.
- */
- for (Property prop : props) {
- logger.debug("<Prop> " +
prop.getDisplayName());
- if
(prop.getCategory().startsWith(CATEGORY_UNUSED) == false) {
-
propertySheetPanel.addProperty(prop);
- } else {
-
unused.put(prop.getDisplayName(), prop);
- }
- }
-
- final List<String> keys = new
ArrayList<String>(unused.keySet());
- Collections.sort(keys);
-
- for (Object key : keys)
-
propertySheetPanel.addProperty(unused.get(key));
-
- }
- } else {
- logger.debug("######## Need to create new prop sheet: "
+ style.getTitle());
- vizMapPropertySheetBuilder.setPropertyTable(style);
- updateAttributeList();
- }
-
// Apply style to the current network view.
final CyNetworkView currentView =
applicationManager.getCurrentNetworkView();
- if (currentView != null) {
+ if (currentView != null &&
style.equals(manager.getCurrentVisualStyle()) == false) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
vmm.setVisualStyle((VisualStyle)
visualStyleComboBox.getModel().getSelectedItem(), currentView);
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/action/AbstractVizMapperAction.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/action/AbstractVizMapperAction.java
2011-10-17 16:28:40 UTC (rev 27200)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/action/AbstractVizMapperAction.java
2011-10-17 17:36:20 UTC (rev 27201)
@@ -79,10 +79,8 @@
protected PropertySheetPanel propertySheetPanel;
-
protected EditorWindowManager editorWindowManager;
-
protected Properties vizmapUIResource;
protected String menuLabel;
--
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.