Skip to content

Commit b35585a

Browse files
committed
Menu actions for Genemania and STRING
1 parent a751558 commit b35585a

File tree

9 files changed

+215
-33
lines changed

9 files changed

+215
-33
lines changed

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/control/ControlPanelMediator.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,14 @@
7878
import org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams;
7979
import org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams.CutoffParam;
8080
import org.baderlab.csplugins.enrichmentmap.view.creation.CreationDialogShowAction;
81+
import org.baderlab.csplugins.enrichmentmap.view.creation.genemania.GenemaniaDialogShowAction;
82+
import org.baderlab.csplugins.enrichmentmap.view.creation.string.StringDialogShowAction;
8183
import org.baderlab.csplugins.enrichmentmap.view.heatmap.HeatMapMediator;
8284
import org.baderlab.csplugins.enrichmentmap.view.legend.CreationParametersPanel;
8385
import org.baderlab.csplugins.enrichmentmap.view.legend.LegendPanelMediator;
8486
import org.baderlab.csplugins.enrichmentmap.view.postanalysis.EdgeWidthDialog;
8587
import org.baderlab.csplugins.enrichmentmap.view.postanalysis.PADialogMediator;
88+
import org.baderlab.csplugins.enrichmentmap.view.util.IconUtil;
8689
import org.baderlab.csplugins.enrichmentmap.view.util.SliderBarPanel;
8790
import org.cytoscape.application.CyApplicationManager;
8891
import org.cytoscape.application.events.SetCurrentNetworkViewEvent;
@@ -98,6 +101,7 @@
98101
import org.cytoscape.model.CyTable;
99102
import org.cytoscape.service.util.CyServiceRegistrar;
100103
import org.cytoscape.util.swing.LookAndFeelUtil;
104+
import org.cytoscape.util.swing.TextIcon;
101105
import org.cytoscape.view.model.CyNetworkView;
102106
import org.cytoscape.view.model.CyNetworkViewManager;
103107
import org.cytoscape.view.model.events.NetworkViewAboutToBeDestroyedEvent;
@@ -123,6 +127,8 @@ public class ControlPanelMediator implements SetCurrentNetworkViewListener, Netw
123127
@Inject private Provider<EdgeWidthDialog> dialogProvider;
124128
@Inject private Provider<HeatMapMediator> heatMapMediatorProvider;
125129
@Inject private Provider<ShowAboutDialogAction> showAboutDialogActionProvider;
130+
@Inject private GenemaniaDialogShowAction genemaniaAction;
131+
@Inject private StringDialogShowAction stringAction;
126132
@Inject private EnrichmentMapManager emManager;
127133
@Inject private CreationDialogShowAction masterMapDialogAction;
128134
@Inject private VisualMappingManager visualMappingManager;
@@ -904,6 +910,13 @@ private JPopupMenu getOptionsMenu() {
904910
menu.add(showParamsItem);
905911
}
906912

913+
menu.addSeparator();
914+
{
915+
int iconSize = 16;
916+
menu.add(genemaniaAction).setIcon(new TextIcon(IconUtil.GENEMANIA_ICON, IconUtil.getIconFont(14.0f), IconUtil.GENEMANIA_ICON_COLOR, iconSize, iconSize));
917+
menu.add(stringAction).setIcon(new TextIcon(IconUtil.LAYERED_STRING_ICON, IconUtil.getIconFont(16.0f), IconUtil.STRING_ICON_COLORS, iconSize, iconSize));
918+
}
919+
907920
menu.addSeparator();
908921

909922
for (FilterMode mode : FilterMode.values()) {
Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,15 @@
11
package org.baderlab.csplugins.enrichmentmap.view.creation;
22

3-
import java.awt.event.ActionEvent;
3+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogShowAction;
44

5-
import javax.swing.AbstractAction;
6-
import javax.swing.JFrame;
7-
8-
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialog;
9-
import org.baderlab.csplugins.enrichmentmap.view.util.SwingUtil;
10-
11-
import com.google.inject.Inject;
12-
import com.google.inject.Provider;
135
import com.google.inject.Singleton;
146

157
@SuppressWarnings("serial")
168
@Singleton
17-
public class CreationDialogShowAction extends AbstractAction {
9+
public class CreationDialogShowAction extends CardDialogShowAction {
1810

19-
@Inject private Provider<CreationDialogParameters> dialogParametersProvider;
20-
@Inject private Provider<JFrame> jframeProvider;
21-
22-
private CardDialog masterMapDialog;
23-
2411
public CreationDialogShowAction() {
25-
super("New EnrichmentMap...");
26-
}
27-
28-
@Override
29-
public void actionPerformed(ActionEvent e) {
30-
if (masterMapDialog == null) {
31-
CreationDialogParameters params = dialogParametersProvider.get();
32-
masterMapDialog = new CardDialog(jframeProvider.get(), params);
33-
}
34-
masterMapDialog.open();
12+
super(CreationDialogParameters.class, "New EnrichmentMap...");
3513
}
3614

37-
38-
public void dispose() {
39-
if(masterMapDialog != null) {
40-
SwingUtil.invokeOnEDTAndWait(() -> {
41-
masterMapDialog.dispose();
42-
});
43-
}
44-
}
4515
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.creation.genemania;
2+
3+
import javax.swing.JPanel;
4+
5+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogCallback;
6+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogPage;
7+
8+
public class GenemaniaDialogPage implements CardDialogPage {
9+
10+
@Override
11+
public String getID() {
12+
return getClass().getSimpleName();
13+
}
14+
15+
@Override
16+
public String getPageComboText() {
17+
return "Create Enrichment Map";
18+
}
19+
20+
@Override
21+
public JPanel createBodyPanel(CardDialogCallback callback) {
22+
return new JPanel();
23+
}
24+
25+
@Override
26+
public void finish() {
27+
28+
}
29+
30+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.creation.genemania;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogPage;
7+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogParameters;
8+
9+
import com.google.inject.Inject;
10+
import com.google.inject.Provider;
11+
12+
public class GenemaniaDialogParameters implements CardDialogParameters {
13+
14+
@Inject private Provider<GenemaniaDialogPage> genemaniaDialogPage;
15+
16+
@Override
17+
public String getTitle() {
18+
return "Create Enrichment Map from Genemania Network";
19+
}
20+
21+
@Override
22+
public List<CardDialogPage> getPages() {
23+
return Arrays.asList(genemaniaDialogPage.get());
24+
}
25+
26+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.creation.genemania;
2+
3+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogShowAction;
4+
5+
import com.google.inject.Singleton;
6+
7+
@SuppressWarnings("serial")
8+
@Singleton
9+
public class GenemaniaDialogShowAction extends CardDialogShowAction {
10+
11+
public GenemaniaDialogShowAction() {
12+
super(GenemaniaDialogParameters.class, "Create from Genemania...");
13+
}
14+
15+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.creation.string;
2+
3+
import javax.swing.JPanel;
4+
5+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogCallback;
6+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogPage;
7+
8+
public class StringDialogPage implements CardDialogPage {
9+
10+
@Override
11+
public String getID() {
12+
return getClass().getSimpleName();
13+
}
14+
15+
@Override
16+
public String getPageComboText() {
17+
return "Create Enrichment Map";
18+
}
19+
20+
@Override
21+
public JPanel createBodyPanel(CardDialogCallback callback) {
22+
return new JPanel();
23+
}
24+
25+
@Override
26+
public void finish() {
27+
28+
}
29+
30+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.creation.string;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogPage;
7+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogParameters;
8+
9+
import com.google.inject.Inject;
10+
import com.google.inject.Provider;
11+
12+
public class StringDialogParameters implements CardDialogParameters {
13+
14+
@Inject private Provider<StringDialogPage> genemaniaDialogPage;
15+
16+
@Override
17+
public String getTitle() {
18+
return "Create Enrichment Map from STRING Network";
19+
}
20+
21+
@Override
22+
public List<CardDialogPage> getPages() {
23+
return Arrays.asList(genemaniaDialogPage.get());
24+
}
25+
26+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.creation.string;
2+
3+
import org.baderlab.csplugins.enrichmentmap.view.util.CardDialogShowAction;
4+
5+
import com.google.inject.Singleton;
6+
7+
@SuppressWarnings("serial")
8+
@Singleton
9+
public class StringDialogShowAction extends CardDialogShowAction {
10+
11+
public StringDialogShowAction() {
12+
super(StringDialogParameters.class, "Create from STRING...");
13+
}
14+
15+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package org.baderlab.csplugins.enrichmentmap.view.util;
2+
3+
import java.awt.event.ActionEvent;
4+
5+
import javax.swing.JFrame;
6+
7+
import org.cytoscape.application.swing.AbstractCyAction;
8+
9+
import com.google.inject.Inject;
10+
import com.google.inject.Injector;
11+
import com.google.inject.Provider;
12+
import com.google.inject.assistedinject.Assisted;
13+
14+
@SuppressWarnings("serial")
15+
public class CardDialogShowAction extends AbstractCyAction {
16+
17+
@Inject private Provider<JFrame> jframeProvider;
18+
@Inject private Injector injector;
19+
20+
private final Class<? extends CardDialogParameters> dialogParamsClass;
21+
22+
private CardDialog dialog;
23+
24+
25+
public static interface Factory {
26+
CardDialogShowAction create(Class<? extends CardDialogParameters> dialogParamsClass, String title);
27+
}
28+
29+
@Inject
30+
public CardDialogShowAction(@Assisted Class<? extends CardDialogParameters> dialogParamsClass, @Assisted String title) {
31+
super(title);
32+
this.dialogParamsClass = dialogParamsClass;
33+
}
34+
35+
public void showDialog() {
36+
if (dialog == null) {
37+
CardDialogParameters dialogParams = injector.getInstance(dialogParamsClass);
38+
dialog = new CardDialog(jframeProvider.get(), dialogParams);
39+
}
40+
dialog.open();
41+
}
42+
43+
@Override
44+
public void actionPerformed(ActionEvent e) {
45+
showDialog();
46+
}
47+
48+
49+
public void dispose() {
50+
if(dialog != null) {
51+
SwingUtil.invokeOnEDTAndWait(() -> {
52+
dialog.dispose();
53+
});
54+
}
55+
}
56+
57+
}

0 commit comments

Comments
 (0)