Search in sources :

Example 1 with ChartData

use of org.baderlab.csplugins.enrichmentmap.style.ChartData in project EnrichmentMapApp by BaderLab.

the class ControlPanelMediator method createStyleOptions.

private EMStyleOptions createStyleOptions(EnrichmentMap map, EMViewControlPanel viewPanel) {
    if (map == null || viewPanel == null)
        return null;
    Set<AbstractDataSet> dataSets = viewPanel.getDataSetSelector().getCheckedItems();
    boolean publicationReady = viewPanel.getPublicationReadyCheck().isSelected();
    boolean postAnalysis = map.hasSignatureDataSets();
    ChartData data = (ChartData) viewPanel.getChartDataCombo().getSelectedItem();
    ChartType type = getChartType(viewPanel);
    ColorScheme colorScheme = (ColorScheme) viewPanel.getChartColorsCombo().getSelectedItem();
    boolean showLabels = viewPanel.getShowChartLabelsCheck().isSelected();
    ChartOptions chartOptions = new ChartOptions(data, type, colorScheme, showLabels);
    return new EMStyleOptions(viewPanel.getNetworkView(), map, dataSets::contains, chartOptions, postAnalysis, publicationReady);
}
Also used : EMStyleOptions(org.baderlab.csplugins.enrichmentmap.style.EMStyleOptions) ChartData(org.baderlab.csplugins.enrichmentmap.style.ChartData) AbstractDataSet(org.baderlab.csplugins.enrichmentmap.model.AbstractDataSet) ColorScheme(org.baderlab.csplugins.enrichmentmap.style.ColorScheme) ChartType(org.baderlab.csplugins.enrichmentmap.style.ChartType) ChartOptions(org.baderlab.csplugins.enrichmentmap.style.ChartOptions)

Example 2 with ChartData

use of org.baderlab.csplugins.enrichmentmap.style.ChartData in project EnrichmentMapApp by BaderLab.

the class ControlPanelMediator method createChart.

public CyCustomGraphics2<?> createChart(EMStyleOptions options) {
    CyCustomGraphics2<?> chart = null;
    ChartOptions chartOptions = options.getChartOptions();
    ChartData data = chartOptions != null ? chartOptions.getData() : null;
    if (data != null && data != ChartData.NONE) {
        // Ignore Signature Data Sets in charts
        Set<EMDataSet> dataSets = filterDataSets(options.getDataSets());
        if (dataSets.size() > 1) {
            ColumnDescriptor<Double> columnDescriptor = data.getColumnDescriptor();
            List<CyColumnIdentifier> columns = ChartUtil.getSortedColumnIdentifiers(options.getAttributePrefix(), dataSets, columnDescriptor, columnIdFactory);
            ChartType type = chartOptions.getType();
            Map<String, Object> props = new HashMap<>(type.getProperties());
            props.put("cy_dataColumns", columns);
            List<Double> range = ChartUtil.calculateGlobalRange(options.getNetworkView().getModel(), columns);
            props.put("cy_range", range);
            props.put("cy_autoRange", false);
            props.put("cy_globalRange", true);
            props.put("cy_showItemLabels", chartOptions.isShowLabels());
            props.put("cy_colors", chartOptions.getColorScheme().getColors());
            try {
                CyCustomGraphics2Factory<?> factory = chartFactoryManager.getChartFactory(type.getId());
                if (factory != null)
                    chart = factory.getInstance(props);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    return chart;
}
Also used : ChartData(org.baderlab.csplugins.enrichmentmap.style.ChartData) HashMap(java.util.HashMap) ChartType(org.baderlab.csplugins.enrichmentmap.style.ChartType) CyColumnIdentifier(org.cytoscape.view.presentation.property.values.CyColumnIdentifier) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) ChartOptions(org.baderlab.csplugins.enrichmentmap.style.ChartOptions)

Example 3 with ChartData

use of org.baderlab.csplugins.enrichmentmap.style.ChartData in project EnrichmentMapApp by BaderLab.

the class ControlPanelMediator method addNetworkView.

@SuppressWarnings("unchecked")
private void addNetworkView(CyNetworkView netView) {
    invokeOnEDT(() -> {
        EnrichmentMap map = emManager.getEnrichmentMap(netView.getModel().getSUID());
        // Is the new view an EnrichmentMap one?
        if (map != null) {
            EMViewControlPanel viewPanel = getControlPanel().addEnrichmentMapView(netView);
            if (viewPanel != null) {
                // Add listeners to the new panel's fields
                viewPanel.getQValueRadio().addActionListener(evt -> {
                    viewPanel.updateFilterPanel();
                    if (!updating)
                        filterNodesAndEdges(viewPanel, map);
                });
                viewPanel.getPValueRadio().addActionListener(evt -> {
                    viewPanel.updateFilterPanel();
                    if (!updating)
                        filterNodesAndEdges(viewPanel, map);
                });
                SliderBarPanel pvSliderPanel = viewPanel.getPValueSliderPanel();
                SliderBarPanel qvSliderPanel = viewPanel.getQValueSliderPanel();
                SliderBarPanel sSliderPanel = viewPanel.getSimilaritySliderPanel();
                if (pvSliderPanel != null)
                    pvSliderPanel.addChangeListener(evt -> {
                        if (!updating)
                            filterNodesAndEdges(viewPanel, map);
                    });
                if (qvSliderPanel != null)
                    qvSliderPanel.addChangeListener(evt -> {
                        if (!updating)
                            filterNodesAndEdges(viewPanel, map);
                    });
                if (sSliderPanel != null)
                    sSliderPanel.addChangeListener(evt -> {
                        if (!updating)
                            filterNodesAndEdges(viewPanel, map);
                    });
                viewPanel.getDataSetSelector().addPropertyChangeListener("checkedData", evt -> {
                    if (!updating) {
                        viewPanel.updateChartDataCombo();
                        filterNodesAndEdges(viewPanel, map);
                        ChartData data = (ChartData) viewPanel.getChartDataCombo().getSelectedItem();
                        Set<EMDataSet> oldDataSets = filterDataSets((Collection<AbstractDataSet>) evt.getOldValue());
                        Set<EMDataSet> newDataSets = filterDataSets((Collection<AbstractDataSet>) evt.getNewValue());
                        int oldSize = oldDataSets.size();
                        int newSize = newDataSets.size();
                        boolean updateStyle = data != null && data != ChartData.NONE && oldSize != newSize;
                        updateStyle = updateStyle || oldSize == 0 && newSize > 0;
                        updateStyle = updateStyle || oldSize > 0 && newSize == 0;
                        updateStyle = updateStyle || oldSize == 1 && newSize > 1;
                        updateStyle = updateStyle || oldSize > 1 && newSize == 1;
                        if (updateStyle)
                            updateVisualStyle(map, viewPanel);
                        else
                            netView.updateView();
                    }
                });
                viewPanel.getDataSetSelector().getAddButton().addActionListener(evt -> {
                    postAnalysisPanelMediatorProvider.get().showDialog(viewPanel, netView);
                });
                viewPanel.getDataSetSelector().getRemoveButton().addActionListener(evt -> {
                    removeSignatureDataSets(map, viewPanel);
                });
                viewPanel.getChartDataCombo().addItemListener(evt -> {
                    if (!updating && evt.getStateChange() == ItemEvent.SELECTED) {
                        updating = true;
                        try {
                            viewPanel.updateChartCombos();
                        } finally {
                            updating = false;
                        }
                        updateVisualStyle(map, viewPanel, true);
                    }
                });
                viewPanel.getChartTypeCombo().addItemListener(evt -> {
                    if (!updating && evt.getStateChange() == ItemEvent.SELECTED) {
                        updating = true;
                        try {
                            viewPanel.updateChartColorsCombo();
                            viewPanel.updateChartLabelsCheck();
                        } finally {
                            updating = false;
                        }
                        updateVisualStyle(map, viewPanel, true);
                    }
                });
                viewPanel.getChartColorsCombo().addItemListener(evt -> {
                    if (!updating && evt.getStateChange() == ItemEvent.SELECTED)
                        updateVisualStyle(map, viewPanel, true);
                });
                viewPanel.getShowChartLabelsCheck().addActionListener(evt -> {
                    if (!updating)
                        updateVisualStyle(map, viewPanel, true);
                });
                viewPanel.getPublicationReadyCheck().addActionListener(evt -> {
                    if (!updating)
                        updateVisualStyle(map, viewPanel);
                });
                viewPanel.getResetStyleButton().addActionListener(evt -> {
                    updateVisualStyle(map, viewPanel);
                });
                viewPanel.getSetEdgeWidthButton().addActionListener(evt -> {
                    showEdgeWidthDialog();
                });
                viewPanel.updateChartDataCombo();
            }
        }
    });
}
Also used : EMViewControlPanel(org.baderlab.csplugins.enrichmentmap.view.control.ControlPanel.EMViewControlPanel) ViewParams(org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams) ChartType(org.baderlab.csplugins.enrichmentmap.style.ChartType) EMViewControlPanel(org.baderlab.csplugins.enrichmentmap.view.control.ControlPanel.EMViewControlPanel) Inject(com.google.inject.Inject) AfterInjection(org.baderlab.csplugins.enrichmentmap.AfterInjection) SliderBarPanel(org.baderlab.csplugins.enrichmentmap.view.util.SliderBarPanel) CyCustomGraphics2(org.cytoscape.view.presentation.customgraphics.CyCustomGraphics2) JCheckBoxMenuItem(javax.swing.JCheckBoxMenuItem) CyNetwork(org.cytoscape.model.CyNetwork) Map(java.util.Map) SetCurrentNetworkViewEvent(org.cytoscape.application.events.SetCurrentNetworkViewEvent) LegendPanelMediator(org.baderlab.csplugins.enrichmentmap.view.legend.LegendPanelMediator) FinishStatus(org.cytoscape.work.FinishStatus) JComboBox(javax.swing.JComboBox) CyServiceRegistrar(org.cytoscape.service.util.CyServiceRegistrar) EDGE_DATASET_VALUE_COMPOUND(org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.Columns.EDGE_DATASET_VALUE_COMPOUND) Timer(javax.swing.Timer) EMCreationParameters(org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters) ChartData(org.baderlab.csplugins.enrichmentmap.style.ChartData) Columns(org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.Columns) ItemEvent(java.awt.event.ItemEvent) EMStyleOptions(org.baderlab.csplugins.enrichmentmap.style.EMStyleOptions) NetworkViewAboutToBeDestroyedListener(org.cytoscape.view.model.events.NetworkViewAboutToBeDestroyedListener) Collection(java.util.Collection) SetCurrentNetworkViewListener(org.cytoscape.application.events.SetCurrentNetworkViewListener) Set(java.util.Set) CyNetworkManager(org.cytoscape.model.CyNetworkManager) FilterMode(org.baderlab.csplugins.enrichmentmap.task.FilterNodesEdgesTask.FilterMode) Collectors(java.util.stream.Collectors) NODE_GS_TYPE(org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.Columns.NODE_GS_TYPE) ColorScheme(org.baderlab.csplugins.enrichmentmap.style.ColorScheme) AbstractDataSet(org.baderlab.csplugins.enrichmentmap.model.AbstractDataSet) ColumnDescriptor(org.baderlab.csplugins.enrichmentmap.style.ColumnDescriptor) List(java.util.List) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) CyApplicationManager(org.cytoscape.application.CyApplicationManager) CySwingApplication(org.cytoscape.application.swing.CySwingApplication) RemoveSignatureDataSetsTask(org.baderlab.csplugins.enrichmentmap.task.postanalysis.RemoveSignatureDataSetsTask) TaskObserver(org.cytoscape.work.TaskObserver) CyNetworkViewManager(org.cytoscape.view.model.CyNetworkViewManager) ApplyEMStyleTask(org.baderlab.csplugins.enrichmentmap.task.ApplyEMStyleTask) ObservableTask(org.cytoscape.work.ObservableTask) Singleton(com.google.inject.Singleton) ActionListener(java.awt.event.ActionListener) VisualStyle(org.cytoscape.view.vizmap.VisualStyle) EDGE_INTERACTION_VALUE_SIG(org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.Columns.EDGE_INTERACTION_VALUE_SIG) CyNode(org.cytoscape.model.CyNode) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) NetworkViewAboutToBeDestroyedEvent(org.cytoscape.view.model.events.NetworkViewAboutToBeDestroyedEvent) HashMap(java.util.HashMap) Action(javax.swing.Action) TaskIterator(org.cytoscape.work.TaskIterator) HashSet(java.util.HashSet) FilterNodesEdgesTask(org.baderlab.csplugins.enrichmentmap.task.FilterNodesEdgesTask) CyRow(org.cytoscape.model.CyRow) JMenuItem(javax.swing.JMenuItem) PostAnalysisPanelMediator(org.baderlab.csplugins.enrichmentmap.view.postanalysis.PostAnalysisPanelMediator) ShowEnrichmentMapDialogAction(org.baderlab.csplugins.enrichmentmap.actions.ShowEnrichmentMapDialogAction) ChartOptions(org.baderlab.csplugins.enrichmentmap.style.ChartOptions) NetworkViewAddedListener(org.cytoscape.view.model.events.NetworkViewAddedListener) CyTable(org.cytoscape.model.CyTable) NetworkViewAddedEvent(org.cytoscape.view.model.events.NetworkViewAddedEvent) Properties(java.util.Properties) CyCustomGraphics2Factory(org.cytoscape.view.presentation.customgraphics.CyCustomGraphics2Factory) JPopupMenu(javax.swing.JPopupMenu) CyColumnIdentifier(org.cytoscape.view.presentation.property.values.CyColumnIdentifier) EnrichmentMapManager(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMapManager) JOptionPane(javax.swing.JOptionPane) CutoffParam(org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams.CutoffParam) ActionEvent(java.awt.event.ActionEvent) CytoPanel(org.cytoscape.application.swing.CytoPanel) VisualMappingManager(org.cytoscape.view.vizmap.VisualMappingManager) DialogTaskManager(org.cytoscape.work.swing.DialogTaskManager) CytoPanelComponent(org.cytoscape.application.swing.CytoPanelComponent) Provider(com.google.inject.Provider) EdgeWidthDialog(org.baderlab.csplugins.enrichmentmap.view.postanalysis.EdgeWidthDialog) NODE_GS_TYPE_ENRICHMENT(org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder.Columns.NODE_GS_TYPE_ENRICHMENT) ForkJoinPool(java.util.concurrent.ForkJoinPool) ChartUtil(org.baderlab.csplugins.enrichmentmap.view.util.ChartUtil) ChartFactoryManager(org.baderlab.csplugins.enrichmentmap.style.ChartFactoryManager) CyNetworkView(org.cytoscape.view.model.CyNetworkView) CyColumnIdentifierFactory(org.cytoscape.view.presentation.property.values.CyColumnIdentifierFactory) EMSignatureDataSet(org.baderlab.csplugins.enrichmentmap.model.EMSignatureDataSet) CyEdge(org.cytoscape.model.CyEdge) WidthFunction(org.baderlab.csplugins.enrichmentmap.style.WidthFunction) Collections(java.util.Collections) SwingUtil.invokeOnEDT(org.baderlab.csplugins.enrichmentmap.view.util.SwingUtil.invokeOnEDT) ChartData(org.baderlab.csplugins.enrichmentmap.style.ChartData) AbstractDataSet(org.baderlab.csplugins.enrichmentmap.model.AbstractDataSet) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) SliderBarPanel(org.baderlab.csplugins.enrichmentmap.view.util.SliderBarPanel)

Aggregations

ChartData (org.baderlab.csplugins.enrichmentmap.style.ChartData)3 ChartOptions (org.baderlab.csplugins.enrichmentmap.style.ChartOptions)3 ChartType (org.baderlab.csplugins.enrichmentmap.style.ChartType)3 HashMap (java.util.HashMap)2 AbstractDataSet (org.baderlab.csplugins.enrichmentmap.model.AbstractDataSet)2 EMDataSet (org.baderlab.csplugins.enrichmentmap.model.EMDataSet)2 ColorScheme (org.baderlab.csplugins.enrichmentmap.style.ColorScheme)2 CyColumnIdentifier (org.cytoscape.view.presentation.property.values.CyColumnIdentifier)2 Inject (com.google.inject.Inject)1 Provider (com.google.inject.Provider)1 Singleton (com.google.inject.Singleton)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 ItemEvent (java.awt.event.ItemEvent)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Map (java.util.Map)1 Properties (java.util.Properties)1