Skip to content

Commit

Permalink
Refs #3872: VisualStyle now listens to the new VisualPropertyDependen…
Browse files Browse the repository at this point in the history
…cyChangedEvent to fire a VisualStyleChangedEvent when one of its dependencies is enabled or disabled. VizMapperMediator no longer has to fire another event (to force a style to be applied) when a dependency is enabled or disabled through the UI.
  • Loading branch information
chrtannus committed Jul 20, 2017
1 parent dfa5bc6 commit 69d430f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@

import org.cytoscape.application.swing.AbstractCyAction;
import org.cytoscape.application.swing.CyAction;
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyColumn;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyIdentifiable;
Expand Down Expand Up @@ -1301,20 +1300,10 @@ public void redo() {
}
}

@SuppressWarnings("rawtypes")
private void onDependencySelectionChanged(final ItemEvent e, final VisualPropertySheetItem<?> vpSheetItem) {
final boolean selected = e.getStateChange() == ItemEvent.SELECTED;
final VisualPropertyDependency<?> dep = vpSheetItem.getModel().getVisualPropertyDependency();
dep.setDependency(selected);

final CyEventHelper evtHelper = servicesUtil.get(CyEventHelper.class);
final Set<VisualProperty<?>> visualProperties = dep.getVisualProperties();
final Set parent = Collections.singleton(dep.getParentVisualProperty());

if (selected)
evtHelper.fireEvent(new LexiconStateChangedEvent(this, parent, visualProperties));
else
evtHelper.fireEvent(new LexiconStateChangedEvent(this, visualProperties, parent));
}

private void onColumnChanged(final String colName, final CyTable tbl) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import org.cytoscape.view.vizmap.VisualStyle;
import org.cytoscape.view.vizmap.events.VisualMappingFunctionChangedEvent;
import org.cytoscape.view.vizmap.events.VisualMappingFunctionChangedListener;
import org.cytoscape.view.vizmap.events.VisualPropertyDependencyChangedEvent;
import org.cytoscape.view.vizmap.events.VisualPropertyDependencyChangedListener;
import org.cytoscape.view.vizmap.events.VisualStyleChangeRecord;
import org.cytoscape.view.vizmap.events.VisualStyleChangedEvent;
import org.slf4j.Logger;
Expand Down Expand Up @@ -53,7 +55,8 @@
* #L%
*/

public class VisualStyleImpl implements VisualStyle, VisualMappingFunctionChangedListener {
public class VisualStyleImpl
implements VisualStyle, VisualMappingFunctionChangedListener, VisualPropertyDependencyChangedListener {

private static final Logger logger = LoggerFactory.getLogger(VisualStyleImpl.class);

Expand Down Expand Up @@ -106,7 +109,7 @@ public VisualStyleImpl(final String title, final CyServiceRegistrar serviceRegis
serviceRegistrar.registerServiceListener(this, "registerDependencyFactory", "unregisterDependencyFactory",
VisualPropertyDependencyFactory.class);
serviceRegistrar.registerService(this, VisualMappingFunctionChangedListener.class, new Properties());
logger.info("New Visual Style Created: Style Name = " + this.title);
serviceRegistrar.registerService(this, VisualPropertyDependencyChangedListener.class, new Properties());
}

@Override
Expand Down Expand Up @@ -255,8 +258,10 @@ public void addVisualPropertyDependency(VisualPropertyDependency<?> dependency)
changed = dependencies.add(dependency);
}

if (changed)
if (changed) {
dependency.setEventHelper(eventHelper);
eventHelper.addEventPayload(this, new VisualStyleChangeRecord(), VisualStyleChangedEvent.class);
}
}

@Override
Expand Down Expand Up @@ -294,4 +299,12 @@ public void handleEvent(VisualMappingFunctionChangedEvent e) {
if (hasMapping)
eventHelper.addEventPayload(this, new VisualStyleChangeRecord(), VisualStyleChangedEvent.class);
}

@Override
public void handleEvent(VisualPropertyDependencyChangedEvent e) {
final VisualPropertyDependency<?> dep = e.getSource();

if (dependencies.contains(dep))
eventHelper.addEventPayload(this, new VisualStyleChangeRecord(), VisualStyleChangedEvent.class);
}
}

0 comments on commit 69d430f

Please sign in to comment.