Skip to content

Commit 44179b3

Browse files
committed
Chart command basically working. Refs #348
1 parent 964cd10 commit 44179b3

File tree

2 files changed

+35
-31
lines changed

2 files changed

+35
-31
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,56 +41,56 @@ protected void configure() {
4141

4242
@Provides @BuildCommand
4343
public TaskFactory provideBuild(Provider<EMBuildCommandTask> taskProvider, OpenEnrichmentMapAction showTask) {
44-
return createTaskFactory(taskProvider.get(), showTask);
44+
return createTaskFactory(taskProvider, showTask);
4545
}
4646

4747
@Provides @GSEACommand
4848
public TaskFactory provideGSEA(Provider<EMGseaCommandTask> taskProvider, OpenEnrichmentMapAction showTask) {
49-
return createTaskFactory(taskProvider.get(), showTask);
49+
return createTaskFactory(taskProvider, showTask);
5050
}
5151

5252
@Provides @ResolveCommand
5353
public TaskFactory provideResolve(Provider<ResolverCommandTask> taskProvider, OpenEnrichmentMapAction showTask) {
54-
return createTaskFactory(taskProvider.get(), showTask);
54+
return createTaskFactory(taskProvider, showTask);
5555
}
5656

5757
@Provides @PACommand
5858
public TaskFactory providePA(Provider<PAKnownSignatureCommandTask> taskProvider) {
59-
return createTaskFactory(taskProvider.get());
59+
return createTaskFactory(taskProvider);
6060
}
6161

6262
@Provides @JsonCommand
6363
public TaskFactory provideJson(Provider<ExportModelJsonCommandTask> taskProvider) {
64-
return createTaskFactory(taskProvider.get());
64+
return createTaskFactory(taskProvider);
6565
}
6666

6767
@Provides @BuildTableCommand
6868
public TaskFactory provideBuildTable(Provider<TableCommandTask> taskProvider, OpenEnrichmentMapAction showTask) {
69-
return createTaskFactory(taskProvider.get(), showTask);
69+
return createTaskFactory(taskProvider, showTask);
7070
}
7171

7272
@Provides @DatasetShowCommand
7373
public TaskFactory provideDatasetShow(DatasetShowCommandTask.Factory taskFactory) {
74-
return createTaskFactory(taskFactory.create(true));
74+
return createTaskFactory(() -> taskFactory.create(true));
7575
}
7676

7777
@Provides @DatasetHideCommand
7878
public TaskFactory provideDatasetHide(DatasetShowCommandTask.Factory taskFactory) {
79-
return createTaskFactory(taskFactory.create(false));
79+
return createTaskFactory(() -> taskFactory.create(false));
8080
}
8181

8282
@Provides @ChartCommand
8383
public TaskFactory provideChart(Provider<ChartCommandTask> taskFactory) {
84-
return createTaskFactory(taskFactory.get());
84+
return createTaskFactory(taskFactory);
8585
}
8686

8787

8888

89-
private static TaskFactory createTaskFactory(Task ... tasks) {
89+
private static TaskFactory createTaskFactory(Provider<? extends Task> taskProvider, Task ... tasks) {
9090
return new AbstractTaskFactory() {
9191
@Override
9292
public TaskIterator createTaskIterator() {
93-
TaskIterator taskIterator = new TaskIterator();
93+
TaskIterator taskIterator = new TaskIterator(taskProvider.get());
9494
for(Task task : tasks) {
9595
taskIterator.append(task);
9696
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/commands/ChartCommandTask.java

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
package org.baderlab.csplugins.enrichmentmap.commands;
22

3+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.DATA_SET;
4+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.EXPRESSION_DATA;
5+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.FDR_VALUE;
6+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.NES_VALUE;
7+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.NONE;
8+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.PHENOTYPES;
9+
import static org.baderlab.csplugins.enrichmentmap.style.ChartData.P_VALUE;
10+
import static org.baderlab.csplugins.enrichmentmap.style.ChartType.DATASET_PIE;
11+
import static org.baderlab.csplugins.enrichmentmap.style.ChartType.HEAT_MAP;
12+
import static org.baderlab.csplugins.enrichmentmap.style.ChartType.HEAT_STRIPS;
13+
import static org.baderlab.csplugins.enrichmentmap.style.ChartType.RADIAL_HEAT_MAP;
14+
315
import java.util.ArrayList;
416
import java.util.List;
517
import java.util.Map;
6-
import java.util.function.Predicate;
718

819
import org.baderlab.csplugins.enrichmentmap.commands.tunables.NetworkTunable;
920
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap;
@@ -40,13 +51,13 @@ public class ChartCommandTask extends AbstractTask {
4051
public ListSingleSelection<String> colors;
4152

4253
@Tunable
43-
public boolean showLabels;
54+
public boolean showChartLabels = true;
4455

4556

4657
public ChartCommandTask() {
47-
data = lssFromEnum(ChartData.values(), x -> true);
48-
type = lssFromEnum(ChartType.values(), ct -> ct != ChartType.DATASET_PIE);
49-
colors = lssFromEnum(ColorScheme.values(), x -> true);
58+
data = lssFromEnum(NES_VALUE, P_VALUE, FDR_VALUE, PHENOTYPES, DATA_SET, EXPRESSION_DATA, NONE); // want NES to be the default
59+
type = lssFromEnum(RADIAL_HEAT_MAP, HEAT_STRIPS, HEAT_MAP); // don't include DATASET_PIE
60+
colors = lssFromEnum(ColorScheme.values());
5061
}
5162

5263
@Override
@@ -57,13 +68,9 @@ public void run(TaskMonitor taskMonitor) {
5768
if(networkView == null || map == null)
5869
throw new IllegalArgumentException("network is not an EnrichmentMap network");
5970

60-
Map<Long,ViewParams> viewParamsMap = controlPanelMediator.getAllViewParams();
61-
ViewParams params = viewParamsMap.get(networkView.getSUID());
62-
ChartOptions chartOptions = params.getChartOptions();
63-
64-
ChartData chartData = "null".equals(data.getSelectedValue()) ? chartOptions.getData() : ChartData.valueOf(data.getSelectedValue());
65-
ChartType chartType = "null".equals(type.getSelectedValue()) ? chartOptions.getType() : ChartType.valueOf(type.getSelectedValue());
66-
ColorScheme colorScheme = "null".equals(colors.getSelectedValue()) ? chartOptions.getColorScheme() : ColorScheme.valueOf(colors.getSelectedValue());
71+
ChartData chartData = ChartData.valueOf(data.getSelectedValue());
72+
ChartType chartType = chartData == DATA_SET ? DATASET_PIE : ChartType.valueOf(type.getSelectedValue());
73+
ColorScheme colorScheme = ColorScheme.valueOf(colors.getSelectedValue());
6774

6875
// validate
6976
if(chartData == ChartData.EXPRESSION_DATA && !networkTunable.isAssociatedEnrichmenMap())
@@ -75,22 +82,19 @@ public void run(TaskMonitor taskMonitor) {
7582
if(chartData == ChartData.FDR_VALUE && !map.getParams().isFDR())
7683
throw new IllegalArgumentException("data=FDR_VALUE cannot be used on this network");
7784

78-
if(chartData == ChartData.DATA_SET)
79-
chartType = ChartType.DATASET_PIE;
85+
ChartOptions options = new ChartOptions(chartData, chartType, colorScheme, showChartLabels);
8086

81-
ChartOptions options = new ChartOptions(chartData, chartType, colorScheme, showLabels);
87+
Map<Long,ViewParams> viewParamsMap = controlPanelMediator.getAllViewParams();
88+
ViewParams params = viewParamsMap.get(networkView.getSUID());
8289
params.setChartOptions(options);
8390
controlPanelMediator.reset(params);
8491
}
8592

8693

87-
private static ListSingleSelection<String> lssFromEnum(Enum<?>[] values, Predicate<Enum<?>> valueTester) {
94+
private static ListSingleSelection<String> lssFromEnum(Enum<?> ... values) {
8895
List<String> names = new ArrayList<>(values.length);
89-
names.add("null"); // important, need to know if the user did not set the value
9096
for(Enum<?> value : values) {
91-
if(valueTester.test(value)) {
92-
names.add(value.name());
93-
}
97+
names.add(value.name());
9498
}
9599
return new ListSingleSelection<>(names);
96100
}

0 commit comments

Comments
 (0)