Search in sources :

Example 1 with MSMSLibrarySubmissionWindow

use of net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow in project mzmine2 by mzmine.

the class PeakListTablePopupMenu method actionPerformed.

@Override
public void actionPerformed(final ActionEvent e) {
    final Object src = e.getSource();
    if (deleteRowsItem.equals(src)) {
        final int[] rowsToDelete = table.getSelectedRows();
        final int[] unsortedIndexes = new int[rowsToDelete.length];
        for (int i = rowsToDelete.length - 1; i >= 0; i--) {
            unsortedIndexes[i] = table.convertRowIndexToModel(rowsToDelete[i]);
        }
        // sort row indexes and start removing from the last
        Arrays.sort(unsortedIndexes);
        // delete the rows starting from last
        for (int i = unsortedIndexes.length - 1; i >= 0; i--) {
            peakList.removeRow(unsortedIndexes[i]);
        }
        // Notify the GUI that peaklist contents have changed
        updateTableGUI();
    }
    if (plotRowsItem.equals(src)) {
        final int[] selectedTableRows = table.getSelectedRows();
        final PeakListRow[] selectedRows = new PeakListRow[selectedTableRows.length];
        for (int i = 0; i < selectedTableRows.length; i++) {
            selectedRows[i] = getPeakListRow(table.convertRowIndexToModel(selectedTableRows[i]));
        }
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                IntensityPlotModule.showIntensityPlot(MZmineCore.getProjectManager().getCurrentProject(), peakList, selectedRows);
            }
        });
    }
    if (showXICItem.equals(src) && allClickedPeakListRows.length != 0) {
        // Map peaks to their identity labels.
        final Map<Feature, String> labelsMap = new HashMap<Feature, String>(allClickedPeakListRows.length);
        final RawDataFile selectedDataFile = clickedDataFile == null ? allClickedPeakListRows[0].getBestPeak().getDataFile() : clickedDataFile;
        Range<Double> mzRange = null;
        final List<Feature> selectedPeaks = new ArrayList<Feature>(allClickedPeakListRows.length);
        for (final PeakListRow row : allClickedPeakListRows) {
            for (final Feature peak : row.getPeaks()) {
                if (mzRange == null) {
                    mzRange = peak.getRawDataPointsMZRange();
                    double upper = mzRange.upperEndpoint();
                    double lower = mzRange.lowerEndpoint();
                    if ((upper - lower) < 0.000001) {
                        // Workaround to make ultra narrow mzRanges (e.g. from imported mzTab peaklist),
                        // a more reasonable default for a HRAM instrument (~5ppm)
                        double fiveppm = (upper * 5E-6);
                        mzRange = Range.closed(lower - fiveppm, upper + fiveppm);
                    }
                } else {
                    mzRange = mzRange.span(peak.getRawDataPointsMZRange());
                }
            }
            final Feature filePeak = row.getPeak(selectedDataFile);
            if (filePeak != null) {
                selectedPeaks.add(filePeak);
                // Label the peak with the row's preferred identity.
                final PeakIdentity identity = row.getPreferredPeakIdentity();
                if (identity != null) {
                    labelsMap.put(filePeak, identity.getName());
                }
            }
        }
        ScanSelection scanSelection = new ScanSelection(selectedDataFile.getDataRTRange(1), 1);
        TICVisualizerModule.showNewTICVisualizerWindow(new RawDataFile[] { selectedDataFile }, selectedPeaks.toArray(new Feature[selectedPeaks.size()]), labelsMap, scanSelection, TICPlotType.BASEPEAK, mzRange);
    }
    if (showXICSetupItem.equals(src) && allClickedPeakListRows.length != 0) {
        // Map peaks to their identity labels.
        final Map<Feature, String> labelsMap = new HashMap<Feature, String>(allClickedPeakListRows.length);
        final RawDataFile[] selectedDataFiles = clickedDataFile == null ? peakList.getRawDataFiles() : new RawDataFile[] { clickedDataFile };
        Range<Double> mzRange = null;
        final ArrayList<Feature> allClickedPeaks = new ArrayList<Feature>(allClickedPeakListRows.length);
        final ArrayList<Feature> selectedClickedPeaks = new ArrayList<Feature>(allClickedPeakListRows.length);
        for (final PeakListRow row : allClickedPeakListRows) {
            // Label the peak with the row's preferred identity.
            final PeakIdentity identity = row.getPreferredPeakIdentity();
            for (final Feature peak : row.getPeaks()) {
                allClickedPeaks.add(peak);
                if (peak.getDataFile() == clickedDataFile) {
                    selectedClickedPeaks.add(peak);
                }
                if (mzRange == null) {
                    mzRange = peak.getRawDataPointsMZRange();
                } else {
                    mzRange = mzRange.span(peak.getRawDataPointsMZRange());
                }
                if (identity != null) {
                    labelsMap.put(peak, identity.getName());
                }
            }
        }
        ScanSelection scanSelection = new ScanSelection(selectedDataFiles[0].getDataRTRange(1), 1);
        TICVisualizerModule.setupNewTICVisualizer(MZmineCore.getProjectManager().getCurrentProject().getDataFiles(), selectedDataFiles, allClickedPeaks.toArray(new Feature[allClickedPeaks.size()]), selectedClickedPeaks.toArray(new Feature[selectedClickedPeaks.size()]), labelsMap, scanSelection, mzRange);
    }
    if (show2DItem.equals(src)) {
        final Feature showPeak = getSelectedPeak();
        if (showPeak != null) {
            TwoDVisualizerModule.show2DVisualizerSetupDialog(showPeak.getDataFile(), getPeakMZRange(showPeak), getPeakRTRange(showPeak));
        }
    }
    if (show3DItem.equals(src)) {
        final Feature showPeak = getSelectedPeak();
        if (showPeak != null) {
            Fx3DVisualizerModule.setupNew3DVisualizer(showPeak.getDataFile(), getPeakMZRange(showPeak), getPeakRTRange(showPeak), showPeak);
        }
    }
    if (manuallyDefineItem.equals(src)) {
        // ManualPeakPickerModule.runManualDetection(clickedDataFile, clickedPeakListRow, peakList,
        // table);
        XICManualPickerModule.runManualDetection(clickedDataFile, clickedPeakListRow, peakList, table);
    }
    if (showSpectrumItem.equals(src)) {
        final Feature showPeak = getSelectedPeak();
        if (showPeak != null) {
            SpectraVisualizerModule.showNewSpectrumWindow(showPeak.getDataFile(), showPeak.getRepresentativeScanNumber(), showPeak);
        }
    }
    if (openCompoundIdUrl.equals(src)) {
        if (clickedPeakListRow != null && clickedPeakListRow.getPreferredPeakIdentity() != null) {
            String url = clickedPeakListRow.getPreferredPeakIdentity().getPropertyValue(PeakIdentity.PROPERTY_URL);
            if (url != null && !url.isEmpty() && Desktop.isDesktopSupported()) {
                try {
                    Desktop.getDesktop().browse(new URI(url));
                } catch (IOException | URISyntaxException e1) {
                }
            }
        }
    }
    if (showMSMSItem.equals(src)) {
        if (allClickedPeakListRows != null && allClickedPeakListRows.length > 1) {
            // show multi msms window of multiple rows
            MultiMSMSWindow multi = new MultiMSMSWindow();
            multi.setData(allClickedPeakListRows, peakList.getRawDataFiles(), clickedDataFile, true, SortingProperty.MZ, SortingDirection.Ascending);
            multi.setVisible(true);
        } else {
            Feature showPeak = getSelectedPeakForMSMS();
            if (showPeak != null) {
                final int scanNumber = showPeak.getMostIntenseFragmentScanNumber();
                if (scanNumber > 0) {
                    SpectraVisualizerModule.showNewSpectrumWindow(showPeak.getDataFile(), scanNumber);
                } else {
                    MZmineCore.getDesktop().displayMessage(window, "There is no fragment for " + MZmineCore.getConfiguration().getMZFormat().format(showPeak.getMZ()) + " m/z in the current raw data.");
                }
            }
        }
    }
    // mirror of the two best fragment scans
    if (showMSMSMirrorItem.equals(src)) {
        if (allClickedPeakListRows != null && allClickedPeakListRows.length == 2) {
            PeakListRow a = allClickedPeakListRows[0];
            PeakListRow b = allClickedPeakListRows[1];
            Scan scan = a.getBestFragmentation();
            Scan mirror = b.getBestFragmentation();
            if (scan != null && mirror != null) {
                // show mirror msms window of two rows
                MirrorScanWindow mirrorWindow = new MirrorScanWindow();
                mirrorWindow.setScans(scan, mirror);
                mirrorWindow.setVisible(true);
            }
        }
    }
    // show spectral db matches
    if (showSpectralDBResults.equals(src)) {
        List<SpectralDBPeakIdentity> spectralID = Arrays.stream(clickedPeakListRow.getPeakIdentities()).filter(pi -> pi instanceof SpectralDBPeakIdentity).map(pi -> ((SpectralDBPeakIdentity) pi)).collect(Collectors.toList());
        if (!spectralID.isEmpty()) {
            SpectraIdentificationResultsWindow window = new SpectraIdentificationResultsWindow();
            window.addMatches(spectralID);
            window.setTitle("Matched " + spectralID.size() + " compounds for feature list row" + clickedPeakListRow.getID());
            window.setVisible(true);
        }
    }
    if (showAllMSMSItem.equals(src)) {
        final Feature showPeak = getSelectedPeakForMSMS();
        RawDataFile raw = clickedPeakListRow.getBestFragmentation().getDataFile();
        if (showPeak != null && showPeak.getMostIntenseFragmentScanNumber() != 0)
            raw = showPeak.getDataFile();
        if (clickedPeakListRow.getBestFragmentation() != null) {
            MultiSpectraVisualizerWindow multiSpectraWindow = new MultiSpectraVisualizerWindow(clickedPeakListRow, raw);
            multiSpectraWindow.setVisible(true);
        } else {
            MZmineCore.getDesktop().displayMessage(window, "There is no fragment for " + MZmineCore.getConfiguration().getMZFormat().format(showPeak.getMZ()) + " m/z in the current raw data.");
        }
    }
    if (showIsotopePatternItem.equals(src)) {
        final Feature showPeak = getSelectedPeak();
        if (showPeak != null && showPeak.getIsotopePattern() != null) {
            SwingUtilities.invokeLater(new Runnable() {

                @Override
                public void run() {
                    SpectraVisualizerModule.showNewSpectrumWindow(showPeak.getDataFile(), showPeak.getRepresentativeScanNumber(), showPeak.getIsotopePattern());
                }
            });
        }
    }
    if (formulaItem != null && formulaItem.equals(src)) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                FormulaPredictionModule.showSingleRowIdentificationDialog(clickedPeakListRow);
            }
        });
    }
    // peak.
    if (siriusItem != null && siriusItem.equals(src)) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                SiriusProcessingModule.showSingleRowIdentificationDialog(clickedPeakListRow);
            }
        });
    }
    if (onlineDbSearchItem != null && onlineDbSearchItem.equals(src)) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                OnlineDBSearchModule.showSingleRowIdentificationDialog(clickedPeakListRow);
            }
        });
    }
    if (spectralDbSearchItem != null && spectralDbSearchItem.equals(src)) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                LocalSpectralDBSearchModule.showSelectedRowsIdentificationDialog(allClickedPeakListRows, table);
            }
        });
    }
    if (nistSearchItem != null && nistSearchItem.equals(src)) {
        NistMsSearchModule.singleRowSearch(peakList, clickedPeakListRow);
    }
    if (addNewRowItem.equals(src)) {
        // find maximum ID and add 1
        int newID = 1;
        for (final PeakListRow row : peakList.getRows()) {
            if (row.getID() >= newID) {
                newID = row.getID() + 1;
            }
        }
        // create a new row
        final PeakListRow newRow = new SimplePeakListRow(newID);
        ManualPeakPickerModule.runManualDetection(peakList.getRawDataFiles(), newRow, peakList, table);
    }
    if (showPeakRowSummaryItem.equals(src)) {
        PeakSummaryVisualizerModule.showNewPeakSummaryWindow(clickedPeakListRow);
    }
    if (exportIsotopesItem.equals(src)) {
        IsotopePatternExportModule.exportIsotopePattern(clickedPeakListRow);
    }
    if (exportToSirius.equals(src)) {
        // export all selected rows
        SiriusExportModule.exportSingleRows(allClickedPeakListRows);
    }
    if (exportMSMSLibrary.equals(src)) {
        // open window with all selected rows
        MSMSLibrarySubmissionWindow libraryWindow = new MSMSLibrarySubmissionWindow();
        libraryWindow.setData(allClickedPeakListRows, SortingProperty.MZ, SortingDirection.Ascending, true);
        libraryWindow.setVisible(true);
    }
    if (exportMS1Library.equals(src)) {
        // open window with all selected rows
        MSMSLibrarySubmissionWindow libraryWindow = new MSMSLibrarySubmissionWindow();
        libraryWindow.setData(allClickedPeakListRows, SortingProperty.MZ, SortingDirection.Ascending, false);
        libraryWindow.setVisible(true);
    }
    if (exportMSMSItem.equals(src)) {
        MSMSExportModule.exportMSMS(clickedPeakListRow);
    }
    if (clearIdsItem.equals(src)) {
        // Delete identities of selected rows.
        for (final PeakListRow row : allClickedPeakListRows) {
            // Selected row index.
            for (final PeakIdentity id : row.getPeakIdentities()) {
                // Remove id.
                row.removePeakIdentity(id);
            }
        }
        // Update table GUI.
        updateTableGUI();
    }
    if (copyIdsItem.equals(src) && allClickedPeakListRows.length > 0) {
        final PeakIdentity id = allClickedPeakListRows[0].getPreferredPeakIdentity();
        if (id != null) {
            copiedId = (PeakIdentity) id.clone();
        }
    }
    if (pasteIdsItem.equals(src) && copiedId != null) {
        // Paste identity into selected rows.
        for (final PeakListRow row : allClickedPeakListRows) {
            row.setPreferredPeakIdentity((PeakIdentity) copiedId.clone());
        }
        // Update table GUI.
        updateTableGUI();
    }
}
Also used : SiriusExportModule(net.sf.mzmine.modules.peaklistmethods.io.siriusexport.SiriusExportModule) Arrays(java.util.Arrays) IntensityPlotModule(net.sf.mzmine.modules.visualization.intensityplot.IntensityPlotModule) URISyntaxException(java.net.URISyntaxException) Point(java.awt.Point) SpectraVisualizerModule(net.sf.mzmine.modules.visualization.spectra.simplespectra.SpectraVisualizerModule) DataFileColumnType(net.sf.mzmine.modules.visualization.peaklisttable.table.DataFileColumnType) PeakListRow(net.sf.mzmine.datamodel.PeakListRow) SpectralDBPeakIdentity(net.sf.mzmine.util.spectraldb.entry.SpectralDBPeakIdentity) SiriusProcessingModule(net.sf.mzmine.modules.peaklistmethods.identification.sirius.SiriusProcessingModule) Map(java.util.Map) URI(java.net.URI) PeakListTable(net.sf.mzmine.modules.visualization.peaklisttable.table.PeakListTable) ScanSelection(net.sf.mzmine.parameters.parametertypes.selectors.ScanSelection) Fx3DVisualizerModule(net.sf.mzmine.modules.visualization.fx3d.Fx3DVisualizerModule) SortingProperty(net.sf.mzmine.util.SortingProperty) FormulaPredictionModule(net.sf.mzmine.modules.peaklistmethods.identification.formulaprediction.FormulaPredictionModule) Range(com.google.common.collect.Range) JMenu(javax.swing.JMenu) GUIUtils(net.sf.mzmine.util.GUIUtils) CommonColumnType(net.sf.mzmine.modules.visualization.peaklisttable.table.CommonColumnType) Component(java.awt.Component) Collectors(java.util.stream.Collectors) List(java.util.List) PeakSummaryVisualizerModule(net.sf.mzmine.modules.visualization.peaksummary.PeakSummaryVisualizerModule) MirrorScanWindow(net.sf.mzmine.modules.visualization.spectra.simplespectra.mirrorspectra.MirrorScanWindow) ListSelectionModel(javax.swing.ListSelectionModel) Scan(net.sf.mzmine.datamodel.Scan) SimplePeakListRow(net.sf.mzmine.datamodel.impl.SimplePeakListRow) MZmineCore(net.sf.mzmine.main.MZmineCore) ActionListener(java.awt.event.ActionListener) TICVisualizerModule(net.sf.mzmine.modules.visualization.tic.TICVisualizerModule) RawDataFile(net.sf.mzmine.datamodel.RawDataFile) HashMap(java.util.HashMap) PeakList(net.sf.mzmine.datamodel.PeakList) ArrayList(java.util.ArrayList) MSMSLibrarySubmissionWindow(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow) SwingUtilities(javax.swing.SwingUtilities) MultiSpectraVisualizerWindow(net.sf.mzmine.modules.visualization.spectra.simplespectra.MultiSpectraVisualizerWindow) Feature(net.sf.mzmine.datamodel.Feature) JMenuItem(javax.swing.JMenuItem) AbstractTableModel(javax.swing.table.AbstractTableModel) XICManualPickerModule(net.sf.mzmine.modules.rawdatamethods.peakpicking.manual.XICManualPickerModule) MSMSExportModule(net.sf.mzmine.modules.visualization.peaklisttable.export.MSMSExportModule) NistMsSearchModule(net.sf.mzmine.modules.peaklistmethods.identification.nist.NistMsSearchModule) ManualPeakPickerModule(net.sf.mzmine.modules.rawdatamethods.peakpicking.manual.ManualPeakPickerModule) PeakListTableColumnModel(net.sf.mzmine.modules.visualization.peaklisttable.table.PeakListTableColumnModel) Desktop(java.awt.Desktop) MultiMSMSWindow(net.sf.mzmine.modules.visualization.spectra.multimsms.MultiMSMSWindow) TICPlotType(net.sf.mzmine.modules.visualization.tic.TICPlotType) JPopupMenu(javax.swing.JPopupMenu) SpectraIdentificationResultsWindow(net.sf.mzmine.modules.visualization.spectra.spectralmatchresults.SpectraIdentificationResultsWindow) TwoDVisualizerModule(net.sf.mzmine.modules.visualization.twod.TwoDVisualizerModule) IOException(java.io.IOException) ActionEvent(java.awt.event.ActionEvent) IsotopePatternExportModule(net.sf.mzmine.modules.visualization.peaklisttable.export.IsotopePatternExportModule) SortingDirection(net.sf.mzmine.util.SortingDirection) OnlineDBSearchModule(net.sf.mzmine.modules.peaklistmethods.identification.onlinedbsearch.OnlineDBSearchModule) LocalSpectralDBSearchModule(net.sf.mzmine.modules.peaklistmethods.identification.spectraldbsearch.LocalSpectralDBSearchModule) PeakIdentity(net.sf.mzmine.datamodel.PeakIdentity) MSMSLibrarySubmissionWindow(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) URISyntaxException(java.net.URISyntaxException) Feature(net.sf.mzmine.datamodel.Feature) URI(java.net.URI) SimplePeakListRow(net.sf.mzmine.datamodel.impl.SimplePeakListRow) PeakListRow(net.sf.mzmine.datamodel.PeakListRow) SimplePeakListRow(net.sf.mzmine.datamodel.impl.SimplePeakListRow) SpectraIdentificationResultsWindow(net.sf.mzmine.modules.visualization.spectra.spectralmatchresults.SpectraIdentificationResultsWindow) MirrorScanWindow(net.sf.mzmine.modules.visualization.spectra.simplespectra.mirrorspectra.MirrorScanWindow) ScanSelection(net.sf.mzmine.parameters.parametertypes.selectors.ScanSelection) SpectralDBPeakIdentity(net.sf.mzmine.util.spectraldb.entry.SpectralDBPeakIdentity) IOException(java.io.IOException) Point(java.awt.Point) SpectralDBPeakIdentity(net.sf.mzmine.util.spectraldb.entry.SpectralDBPeakIdentity) PeakIdentity(net.sf.mzmine.datamodel.PeakIdentity) MultiMSMSWindow(net.sf.mzmine.modules.visualization.spectra.multimsms.MultiMSMSWindow) RawDataFile(net.sf.mzmine.datamodel.RawDataFile) Scan(net.sf.mzmine.datamodel.Scan) MultiSpectraVisualizerWindow(net.sf.mzmine.modules.visualization.spectra.simplespectra.MultiSpectraVisualizerWindow)

Example 2 with MSMSLibrarySubmissionWindow

use of net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow in project mzmine2 by mzmine.

the class SpectraVisualizerWindow method actionPerformed.

@Override
public void actionPerformed(ActionEvent event) {
    String command = event.getActionCommand();
    if (command.equals("PEAKLIST_CHANGE")) {
        // If no scan is loaded yet, ignore
        if (currentScan == null)
            return;
        PeakList selectedPeakList = bottomPanel.getSelectedPeakList();
        loadPeaks(selectedPeakList);
    }
    if (command.equals("PREVIOUS_SCAN")) {
        if (dataFile == null)
            return;
        int msLevel = currentScan.getMSLevel();
        int[] scanNumbers = dataFile.getScanNumbers(msLevel);
        int scanIndex = Arrays.binarySearch(scanNumbers, currentScan.getScanNumber());
        if (scanIndex > 0) {
            final int prevScanIndex = scanNumbers[scanIndex - 1];
            Runnable newThreadRunnable = new Runnable() {

                @Override
                public void run() {
                    loadRawData(dataFile.getScan(prevScanIndex));
                }
            };
            Thread newThread = new Thread(newThreadRunnable);
            newThread.start();
        }
    }
    if (command.equals("NEXT_SCAN")) {
        if (dataFile == null)
            return;
        int msLevel = currentScan.getMSLevel();
        int[] scanNumbers = dataFile.getScanNumbers(msLevel);
        int scanIndex = Arrays.binarySearch(scanNumbers, currentScan.getScanNumber());
        if (scanIndex < (scanNumbers.length - 1)) {
            final int nextScanIndex = scanNumbers[scanIndex + 1];
            Runnable newThreadRunnable = new Runnable() {

                @Override
                public void run() {
                    loadRawData(dataFile.getScan(nextScanIndex));
                }
            };
            Thread newThread = new Thread(newThreadRunnable);
            newThread.start();
        }
    }
    if (command.equals("SHOW_MSMS")) {
        String selectedScanString = (String) bottomPanel.getMSMSSelector().getSelectedItem();
        if (selectedScanString == null)
            return;
        int sharpIndex = selectedScanString.indexOf('#');
        int commaIndex = selectedScanString.indexOf(',');
        selectedScanString = selectedScanString.substring(sharpIndex + 1, commaIndex);
        int selectedScan = Integer.valueOf(selectedScanString);
        SpectraVisualizerModule.showNewSpectrumWindow(dataFile, selectedScan);
    }
    if (command.equals("TOGGLE_PLOT_MODE")) {
        if (spectrumPlot.getPlotMode() == MassSpectrumType.CENTROIDED) {
            spectrumPlot.setPlotMode(MassSpectrumType.PROFILE);
            toolBar.setCentroidButton(MassSpectrumType.PROFILE);
        } else {
            spectrumPlot.setPlotMode(MassSpectrumType.CENTROIDED);
            toolBar.setCentroidButton(MassSpectrumType.CENTROIDED);
        }
    }
    if (command.equals("SHOW_DATA_POINTS")) {
        spectrumPlot.switchDataPointsVisible();
    }
    if (command.equals("SHOW_ANNOTATIONS")) {
        spectrumPlot.switchItemLabelsVisible();
    }
    if (command.equals("SHOW_PICKED_PEAKS")) {
        spectrumPlot.switchPickedPeaksVisible();
    }
    if (command.equals("SHOW_ISOTOPE_PEAKS")) {
        spectrumPlot.switchIsotopePeaksVisible();
    }
    if (command.equals("SETUP_AXES")) {
        AxesSetupDialog dialog = new AxesSetupDialog(this, spectrumPlot.getXYPlot());
        dialog.setVisible(true);
    }
    // library entry creation
    if (command.equals("CREATE_LIBRARY_ENTRY")) {
        // open window with all selected rows
        MSMSLibrarySubmissionWindow libraryWindow = new MSMSLibrarySubmissionWindow();
        libraryWindow.setData(currentScan);
        libraryWindow.setVisible(true);
    }
    if (command.equals("EXPORT_SPECTRA")) {
        ExportScansModule.showSetupDialog(currentScan);
    }
    if (command.equals("ADD_ISOTOPE_PATTERN")) {
        IsotopePattern newPattern = IsotopePatternCalculator.showIsotopePredictionDialog(this, true);
        if (newPattern == null)
            return;
        loadIsotopes(newPattern);
    }
    if ((command.equals("ZOOM_IN")) || (command.equals("ZOOM_IN_BOTH_COMMAND"))) {
        spectrumPlot.getXYPlot().getDomainAxis().resizeRange(1 / zoomCoefficient);
    }
    if ((command.equals("ZOOM_OUT")) || (command.equals("ZOOM_OUT_BOTH_COMMAND"))) {
        spectrumPlot.getXYPlot().getDomainAxis().resizeRange(zoomCoefficient);
    }
    if (command.equals("SET_SAME_RANGE")) {
        // Get current axes range
        NumberAxis xAxis = (NumberAxis) spectrumPlot.getXYPlot().getDomainAxis();
        NumberAxis yAxis = (NumberAxis) spectrumPlot.getXYPlot().getRangeAxis();
        double xMin = xAxis.getRange().getLowerBound();
        double xMax = xAxis.getRange().getUpperBound();
        double xTick = xAxis.getTickUnit().getSize();
        double yMin = yAxis.getRange().getLowerBound();
        double yMax = yAxis.getRange().getUpperBound();
        double yTick = yAxis.getTickUnit().getSize();
        // Get all frames of my class
        Window[] spectraFrames = JFrame.getWindows();
        // Set the range of these frames
        for (Window frame : spectraFrames) {
            if (!(frame instanceof SpectraVisualizerWindow))
                continue;
            SpectraVisualizerWindow spectraFrame = (SpectraVisualizerWindow) frame;
            spectraFrame.setAxesRange(xMin, xMax, xTick, yMin, yMax, yTick);
        }
    }
    if (command.equals("ONLINEDATABASESEARCH")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                OnlineDBSpectraSearchModule.showSpectraIdentificationDialog(currentScan, spectrumPlot);
            }
        });
    }
    if (command.equals("CUSTOMDATABASESEARCH")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                CustomDBSpectraSearchModule.showSpectraIdentificationDialog(currentScan, spectrumPlot);
            }
        });
    }
    if (command.equals("LIPIDSEARCH")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                LipidSpectraSearchModule.showSpectraIdentificationDialog(currentScan, spectrumPlot);
            }
        });
    }
    if (command.equals("SUMFORMULA")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                SumFormulaSpectraSearchModule.showSpectraIdentificationDialog(currentScan, spectrumPlot);
            }
        });
    }
    if (command.equals("SPECTRALDATABASESEARCH")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                SpectraIdentificationSpectralDatabaseModule.showSpectraIdentificationDialog(currentScan, spectrumPlot);
            }
        });
    }
    if (command.equals("SET_PROCESSING_PARAMETERS")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                if (!dppmWindowOpen) {
                    dppmWindowOpen = true;
                    ExitCode exitCode = DataPointProcessingManager.getInst().getParameters().showSetupDialog(MZmineCore.getDesktop().getMainWindow(), true);
                    dppmWindowOpen = false;
                    if (exitCode == ExitCode.OK && DataPointProcessingManager.getInst().isEnabled()) {
                        // if processing was run before, this removes the previous results.
                        getSpectrumPlot().removeDataPointProcessingResultDataSets();
                        getSpectrumPlot().checkAndRunController();
                    }
                }
            }
        });
    }
    if (command.equals("ENABLE_PROCESSING")) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                DataPointProcessingManager inst = DataPointProcessingManager.getInst();
                inst.setEnabled(!inst.isEnabled());
                bottomPanel.updateProcessingButton();
                getSpectrumPlot().checkAndRunController();
                // if the tick is removed, set the data back to default
                if (!inst.isEnabled()) {
                    getSpectrumPlot().removeDataPointProcessingResultDataSets();
                // loadRawData(currentScan);
                }
            }
        });
    }
}
Also used : MSMSLibrarySubmissionWindow(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow) Window(java.awt.Window) NumberAxis(org.jfree.chart.axis.NumberAxis) MSMSLibrarySubmissionWindow(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow) ExitCode(net.sf.mzmine.util.ExitCode) IsotopePattern(net.sf.mzmine.datamodel.IsotopePattern) DataPoint(net.sf.mzmine.datamodel.DataPoint) AxesSetupDialog(net.sf.mzmine.util.dialogs.AxesSetupDialog) DataPointProcessingManager(net.sf.mzmine.modules.visualization.spectra.simplespectra.datapointprocessing.DataPointProcessingManager) PeakList(net.sf.mzmine.datamodel.PeakList)

Aggregations

PeakList (net.sf.mzmine.datamodel.PeakList)2 MSMSLibrarySubmissionWindow (net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.view.MSMSLibrarySubmissionWindow)2 Range (com.google.common.collect.Range)1 Component (java.awt.Component)1 Desktop (java.awt.Desktop)1 Point (java.awt.Point)1 Window (java.awt.Window)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 IOException (java.io.IOException)1 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 JMenu (javax.swing.JMenu)1 JMenuItem (javax.swing.JMenuItem)1