Skip to content

Commit c9d5937

Browse files
committed
Publication-Ready toggle. Closes #134.
1 parent 2655500 commit c9d5937

File tree

4 files changed

+635
-478
lines changed

4 files changed

+635
-478
lines changed

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/CyActivator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.baderlab.csplugins.enrichmentmap.autoannotate.action.DisplayOptionsPanelAction;
1919
import org.baderlab.csplugins.enrichmentmap.commands.EnrichmentMapGSEACommandHandlerTaskFactory;
2020
import org.baderlab.csplugins.enrichmentmap.task.BuildEnrichmentMapTuneableTaskFactory;
21+
import org.baderlab.csplugins.enrichmentmap.task.CreatePublicationVisualStyleTaskRunner;
2122
import org.baderlab.csplugins.enrichmentmap.task.EdgeWidthTableColumnTaskFactory;
2223
import org.baderlab.csplugins.enrichmentmap.view.BulkEMCreationPanel;
2324
import org.baderlab.csplugins.enrichmentmap.view.EnrichmentMapInputPanel;
@@ -121,7 +122,8 @@ public void start(BundleContext bc) {
121122
//create two instances of the heatmap panel
122123
HeatMapPanel heatMapPanel_node = new HeatMapPanel(true, cySwingApplicationRef, fileUtil, cyApplicationManagerRef, openBrowserRef,dialogTaskManager,streamUtil);
123124
HeatMapPanel heatMapPanel_edge = new HeatMapPanel(false, cySwingApplicationRef, fileUtil, cyApplicationManagerRef, openBrowserRef,dialogTaskManager,streamUtil);
124-
ParametersPanel paramsPanel = new ParametersPanel(openBrowserRef, cyApplicationManagerRef);
125+
CreatePublicationVisualStyleTaskRunner taskRunner = new CreatePublicationVisualStyleTaskRunner(cyApplicationManagerRef, visualMappingManagerRef, visualStyleFactoryRef, eventHelper, dialogTaskManager);
126+
ParametersPanel paramsPanel = new ParametersPanel(openBrowserRef, cyApplicationManagerRef, taskRunner);
125127

126128
//Get an instance of EM manager
127129
EnrichmentMapManager manager = EnrichmentMapManager.getInstance();
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package org.baderlab.csplugins.enrichmentmap.task;
2+
3+
import java.awt.Color;
4+
5+
import org.cytoscape.application.CyApplicationManager;
6+
import org.cytoscape.event.CyEventHelper;
7+
import org.cytoscape.view.model.CyNetworkView;
8+
import org.cytoscape.view.presentation.property.BasicVisualLexicon;
9+
import org.cytoscape.view.vizmap.VisualMappingManager;
10+
import org.cytoscape.view.vizmap.VisualStyle;
11+
import org.cytoscape.view.vizmap.VisualStyleFactory;
12+
import org.cytoscape.work.AbstractTask;
13+
import org.cytoscape.work.TaskMonitor;
14+
15+
public class CreatePublicationVisualStyleTask extends AbstractTask {
16+
17+
private static final String SUFFIX = "_publication";
18+
19+
private final CyApplicationManager applicationManager;
20+
private final VisualMappingManager visualMappingManager;
21+
private final VisualStyleFactory visualStyleFactory;
22+
private final CyEventHelper eventHelper;
23+
24+
25+
public CreatePublicationVisualStyleTask(
26+
CyApplicationManager applicationManager,
27+
VisualMappingManager visualMappingManager,
28+
VisualStyleFactory visualStyleFactory,
29+
CyEventHelper eventHelper) {
30+
31+
this.applicationManager = applicationManager;
32+
this.visualMappingManager = visualMappingManager;
33+
this.visualStyleFactory = visualStyleFactory;
34+
this.eventHelper = eventHelper;
35+
}
36+
37+
private VisualStyle attemptToGetExistingStyle(String vs_name) {
38+
for(VisualStyle vs : visualMappingManager.getAllVisualStyles()) {
39+
if(vs.getTitle() != null && vs.getTitle().equals(vs_name)) {
40+
return vs;
41+
}
42+
}
43+
return null;
44+
}
45+
46+
@Override
47+
public void run(TaskMonitor taskMonitor) {
48+
taskMonitor.setTitle("EnrichmentMap");
49+
taskMonitor.setStatusMessage("Create Publication-Ready Visual Style");
50+
51+
VisualStyle currentStyle = visualMappingManager.getCurrentVisualStyle();
52+
if(currentStyle == null)
53+
return;
54+
String currentTitle = currentStyle.getTitle();
55+
56+
// If the current visual style is publication then attempt to switch back
57+
if(currentTitle.endsWith(SUFFIX)) {
58+
String title = currentTitle.substring(0, currentTitle.length() - SUFFIX.length());
59+
VisualStyle existingStyle = attemptToGetExistingStyle(title);
60+
if(existingStyle != null) {
61+
visualMappingManager.setCurrentVisualStyle(existingStyle);
62+
}
63+
}
64+
else {
65+
String title = currentTitle + SUFFIX;
66+
VisualStyle visualStyle = attemptToGetExistingStyle(title);
67+
if(visualStyle == null) {
68+
// create a copy of the current style
69+
visualStyle = visualStyleFactory.createVisualStyle(currentStyle);
70+
visualStyle.setTitle(title);
71+
72+
// Remove node labels
73+
visualStyle.removeVisualMappingFunction(BasicVisualLexicon.NODE_LABEL);
74+
visualStyle.setDefaultValue(BasicVisualLexicon.NODE_LABEL, "");
75+
76+
// Make background white
77+
visualStyle.removeVisualMappingFunction(BasicVisualLexicon.NETWORK_BACKGROUND_PAINT);
78+
visualStyle.setDefaultValue(BasicVisualLexicon.NETWORK_BACKGROUND_PAINT, Color.WHITE);
79+
80+
visualMappingManager.addVisualStyle(visualStyle);
81+
}
82+
visualMappingManager.setCurrentVisualStyle(visualStyle);
83+
}
84+
85+
eventHelper.flushPayloadEvents(); // view won't update properly without this
86+
CyNetworkView view = applicationManager.getCurrentNetworkView();
87+
view.updateView();
88+
}
89+
90+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.baderlab.csplugins.enrichmentmap.task;
2+
3+
import java.awt.event.ActionEvent;
4+
import java.awt.event.ActionListener;
5+
6+
import org.cytoscape.application.CyApplicationManager;
7+
import org.cytoscape.event.CyEventHelper;
8+
import org.cytoscape.view.vizmap.VisualMappingManager;
9+
import org.cytoscape.view.vizmap.VisualStyleFactory;
10+
import org.cytoscape.work.TaskIterator;
11+
import org.cytoscape.work.TaskManager;
12+
13+
public class CreatePublicationVisualStyleTaskRunner implements ActionListener {
14+
15+
private final CyApplicationManager applicationManager;
16+
private final VisualMappingManager visualMappingManager;
17+
private final VisualStyleFactory visualStyleFactory;
18+
private final CyEventHelper eventHelper;
19+
20+
private final TaskManager<?,?> taskManager;
21+
22+
public CreatePublicationVisualStyleTaskRunner(
23+
CyApplicationManager applicationManager,
24+
VisualMappingManager visualMappingManager,
25+
VisualStyleFactory visualStyleFactory,
26+
CyEventHelper eventHelper,
27+
TaskManager<?,?> taskManager) {
28+
29+
this.applicationManager = applicationManager;
30+
this.visualMappingManager = visualMappingManager;
31+
this.visualStyleFactory = visualStyleFactory;
32+
this.eventHelper = eventHelper;
33+
this.taskManager = taskManager;
34+
}
35+
36+
public void run() {
37+
taskManager.execute(new TaskIterator(new CreatePublicationVisualStyleTask(applicationManager, visualMappingManager, visualStyleFactory, eventHelper)));
38+
}
39+
40+
@Override
41+
public void actionPerformed(ActionEvent e) {
42+
run();
43+
}
44+
}

0 commit comments

Comments
 (0)