Search in sources :

Example 46 with PeakList

use of net.sf.mzmine.datamodel.PeakList in project mzmine2 by mzmine.

the class PeakListTreeModel method valueForPathChanged.

public void valueForPathChanged(TreePath path, Object value) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
    Object object = node.getUserObject();
    String newName = (String) value;
    if (object instanceof RawDataFile) {
        RawDataFile df = (RawDataFile) object;
        df.setName(newName);
    }
    if (object instanceof PeakList) {
        PeakList pl = (PeakList) object;
        pl.setName(newName);
    }
}
Also used : DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) RawDataFile(net.sf.mzmine.datamodel.RawDataFile) PeakList(net.sf.mzmine.datamodel.PeakList)

Example 47 with PeakList

use of net.sf.mzmine.datamodel.PeakList in project mzmine2 by mzmine.

the class PeakListTreeModel method addObject.

/**
 * This method must be called from Swing thread
 */
public void addObject(final Object object) {
    assert object != null;
    if (!SwingUtilities.isEventDispatchThread()) {
        throw new IllegalStateException("This method must be called from Swing thread");
    }
    // Create new node
    final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(object);
    treeObjects.put(object, newNode);
    if (object instanceof PeakList) {
        int childCount = getChildCount(rootNode);
        insertNodeInto(newNode, rootNode, childCount);
        final PeakList peakList = (PeakList) object;
        PeakListRow[] rows = peakList.getRows();
        for (int i = 0; i < rows.length; i++) {
            DefaultMutableTreeNode rowNode = new DefaultMutableTreeNode(rows[i]);
            treeObjects.put(rows[i], rowNode);
            insertNodeInto(rowNode, newNode, i);
        }
    }
    if (object instanceof MassList) {
        Scan scan = ((MassList) object).getScan();
        final DefaultMutableTreeNode scNode = treeObjects.get(scan);
        assert scNode != null;
        int index = scNode.getChildCount();
        insertNodeInto(newNode, scNode, index);
    }
}
Also used : PeakListRow(net.sf.mzmine.datamodel.PeakListRow) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) Scan(net.sf.mzmine.datamodel.Scan) PeakList(net.sf.mzmine.datamodel.PeakList) MassList(net.sf.mzmine.datamodel.MassList)

Example 48 with PeakList

use of net.sf.mzmine.datamodel.PeakList in project mzmine2 by mzmine.

the class PeakListTreeModel method notifyObjectChanged.

public void notifyObjectChanged(Object object, boolean structureChanged) {
    if (rootNode.getUserObject() == object) {
        if (structureChanged)
            nodeStructureChanged(rootNode);
        else
            nodeChanged(rootNode);
        return;
    }
    Enumeration<?> nodes = rootNode.breadthFirstEnumeration();
    while (nodes.hasMoreElements()) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) nodes.nextElement();
        if (node.getUserObject() == object) {
            if (structureChanged) {
                if (object instanceof PeakList) {
                    node.removeAllChildren();
                    PeakList peakList = (PeakList) object;
                    PeakListRow[] rows = peakList.getRows();
                    for (int i = 0; i < rows.length; i++) {
                        DefaultMutableTreeNode rowNode = new DefaultMutableTreeNode(rows[i]);
                        treeObjects.put(rows[i], rowNode);
                        insertNodeInto(rowNode, node, i);
                    }
                }
                nodeStructureChanged(node);
            } else
                nodeChanged(node);
            return;
        }
    }
}
Also used : PeakListRow(net.sf.mzmine.datamodel.PeakListRow) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) PeakList(net.sf.mzmine.datamodel.PeakList)

Example 49 with PeakList

use of net.sf.mzmine.datamodel.PeakList in project mzmine2 by mzmine.

the class ProjectTreeDnDHandler method importData.

public boolean importData(TransferSupport info) {
    if (!info.isDrop()) {
        return false;
    }
    ProjectTree projectTree = (ProjectTree) info.getComponent();
    DefaultTreeModel treeModel = (DefaultTreeModel) projectTree.getModel();
    MZmineProject project = MZmineCore.getProjectManager().getCurrentProject();
    JTree.DropLocation dl = (JTree.DropLocation) info.getDropLocation();
    TreePath dropPath = dl.getPath();
    DefaultMutableTreeNode droppedLocationNode = (DefaultMutableTreeNode) dropPath.getLastPathComponent();
    Object droppedLocationObject = droppedLocationNode.getUserObject();
    int childIndex = dl.getChildIndex();
    TreePath[] transferedPaths = projectTree.getSelectionPaths();
    // Check if the drop target is among the project data files
    if (droppedLocationObject == RawDataTreeModel.dataFilesNodeName) {
        for (TreePath path : transferedPaths) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
            int currentIndex = node.getParent().getIndex(node);
            Object transferObject = node.getUserObject();
            if (transferObject instanceof RawDataFile) {
                treeModel.removeNodeFromParent(node);
                if (childIndex > currentIndex)
                    childIndex--;
                treeModel.insertNodeInto(node, droppedLocationNode, childIndex);
                childIndex++;
            }
        }
    }
    // Check if the drop target is AFTER the data files (last position)
    if ((droppedLocationObject == project) && (childIndex == 1)) {
        int numOfFiles = project.getDataFiles().length;
        DefaultMutableTreeNode filesNode = (DefaultMutableTreeNode) droppedLocationNode.getChildAt(0);
        for (TreePath path : transferedPaths) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
            Object transferObject = node.getUserObject();
            if (transferObject instanceof RawDataFile) {
                treeModel.removeNodeFromParent(node);
                treeModel.insertNodeInto(node, filesNode, numOfFiles - 1);
            }
        }
    }
    // Check if the drop target is among the project feature lists
    if (droppedLocationObject == PeakListTreeModel.peakListsNodeName) {
        for (TreePath path : transferedPaths) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
            int currentIndex = node.getParent().getIndex(node);
            Object transferObject = node.getUserObject();
            if (childIndex > currentIndex)
                childIndex--;
            if (transferObject instanceof PeakList) {
                treeModel.removeNodeFromParent(node);
                treeModel.insertNodeInto(node, droppedLocationNode, childIndex);
                childIndex++;
            }
        }
    }
    // Check if the drop target is AFTER the feature lists (last position)
    if ((droppedLocationObject == project) && (childIndex == 2)) {
        DefaultMutableTreeNode peakListsNode = (DefaultMutableTreeNode) droppedLocationNode.getChildAt(1);
        int numOfPeakLists = project.getPeakLists().length;
        for (TreePath path : transferedPaths) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
            Object transferObject = node.getUserObject();
            if (transferObject instanceof PeakList) {
                treeModel.removeNodeFromParent(node);
                treeModel.insertNodeInto(node, peakListsNode, numOfPeakLists - 1);
            }
        }
    }
    return true;
}
Also used : DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) DefaultTreeModel(javax.swing.tree.DefaultTreeModel) JTree(javax.swing.JTree) TreePath(javax.swing.tree.TreePath) RawDataFile(net.sf.mzmine.datamodel.RawDataFile) MZmineProject(net.sf.mzmine.datamodel.MZmineProject) PeakList(net.sf.mzmine.datamodel.PeakList)

Example 50 with PeakList

use of net.sf.mzmine.datamodel.PeakList in project mzmine2 by mzmine.

the class ProjectTreeMouseHandler method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    String command = e.getActionCommand();
    if (command.equals("SHOW_TIC")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        TICVisualizerModule.setupNewTICVisualizer(selectedFiles);
    }
    if (command.equals("SHOW_SPECTRUM")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        SpectraVisualizerModule module = MZmineCore.getModuleInstance(SpectraVisualizerModule.class);
        ParameterSet parameters = MZmineCore.getConfiguration().getModuleParameters(SpectraVisualizerModule.class);
        parameters.getParameter(SpectraVisualizerParameters.dataFiles).setValue(RawDataFilesSelectionType.SPECIFIC_FILES, selectedFiles);
        ExitCode exitCode = parameters.showSetupDialog(MZmineCore.getDesktop().getMainWindow(), true);
        MZmineProject project = MZmineCore.getProjectManager().getCurrentProject();
        if (exitCode == ExitCode.OK)
            module.runModule(project, parameters, new ArrayList<Task>());
    }
    if (command.equals("SHOW_IDA")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        if (selectedFiles.length == 0)
            return;
        MsMsVisualizerModule.showIDAVisualizerSetupDialog(selectedFiles[0]);
    }
    if (command.equals("SHOW_2D")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        if (selectedFiles.length == 0)
            return;
        TwoDVisualizerModule.show2DVisualizerSetupDialog(selectedFiles[0]);
    }
    if (command.equals("SHOW_3D")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        if (selectedFiles.length == 0)
            return;
        Fx3DVisualizerModule.setupNew3DVisualizer(selectedFiles[0]);
    }
    if (command.equals("SORT_FILES")) {
        // save current selection
        TreePath[] savedSelection = tree.getSelectionPaths();
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        SortDataFilesModule module = MZmineCore.getModuleInstance(SortDataFilesModule.class);
        ParameterSet params = MZmineCore.getConfiguration().getModuleParameters(SortDataFilesModule.class);
        params.getParameter(SortDataFilesParameters.dataFiles).setValue(RawDataFilesSelectionType.SPECIFIC_FILES, selectedFiles);
        module.runModule(MZmineCore.getProjectManager().getCurrentProject(), params, new ArrayList<Task>());
        // restore selection
        tree.setSelectionPaths(savedSelection);
    }
    if (command.equals("REMOVE_EXTENSION")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        for (RawDataFile file : selectedFiles) {
            file.setName(FilenameUtils.removeExtension(file.toString()));
        }
        tree.updateUI();
    }
    if (command.equals("EXPORT_FILE")) {
        RawDataExportModule exportModule = MZmineCore.getModuleInstance(RawDataExportModule.class);
        ParameterSet params = MZmineCore.getConfiguration().getModuleParameters(RawDataExportModule.class);
        ExitCode ec = params.showSetupDialog(null, true);
        if (ec == ExitCode.OK) {
            ParameterSet parametersCopy = params.cloneParameterSet();
            ArrayList<Task> tasks = new ArrayList<>();
            MZmineProject project = MZmineCore.getProjectManager().getCurrentProject();
            exportModule.runModule(project, parametersCopy, tasks);
            MZmineCore.getTaskController().addTasks(tasks.toArray(new Task[0]));
        }
    }
    if (command.equals("RENAME_FILE")) {
        TreePath path = tree.getSelectionPath();
        if (path == null)
            return;
        else
            tree.startEditingAtPath(path);
    }
    if (command.equals("REMOVE_FILE")) {
        RawDataFile[] selectedFiles = tree.getSelectedObjects(RawDataFile.class);
        PeakList[] allPeakLists = MZmineCore.getProjectManager().getCurrentProject().getPeakLists();
        for (RawDataFile file : selectedFiles) {
            for (PeakList peakList : allPeakLists) {
                if (peakList.hasRawDataFile(file)) {
                    String msg = "Cannot remove file " + file.getName() + ", because it is present in the feature list " + peakList.getName();
                    MZmineCore.getDesktop().displayErrorMessage(MZmineCore.getDesktop().getMainWindow(), msg);
                    return;
                }
            }
            MZmineCore.getProjectManager().getCurrentProject().removeFile(file);
        }
    }
    if (command.equals("SHOW_SCAN")) {
        Scan[] selectedScans = tree.getSelectedObjects(Scan.class);
        for (Scan scan : selectedScans) {
            SpectraVisualizerModule.showNewSpectrumWindow(scan.getDataFile(), scan.getScanNumber());
        }
    }
    if (command.equals("EXPORT_SCAN")) {
        Scan[] selectedScans = tree.getSelectedObjects(Scan.class);
        ExportScansModule.showSetupDialog(selectedScans);
    }
    if (command.equals("SHOW_MASSLIST")) {
        MassList[] selectedMassLists = tree.getSelectedObjects(MassList.class);
        for (MassList massList : selectedMassLists) {
            Scan scan = massList.getScan();
            SpectraVisualizerWindow window = SpectraVisualizerModule.showNewSpectrumWindow(scan.getDataFile(), scan.getScanNumber());
            MassListDataSet dataset = new MassListDataSet(massList);
            window.addDataSet(dataset, Color.green);
        }
    }
    if (command.equals("REMOVE_MASSLIST")) {
        MassList[] selectedMassLists = tree.getSelectedObjects(MassList.class);
        for (MassList massList : selectedMassLists) {
            Scan scan = massList.getScan();
            scan.removeMassList(massList);
        }
    }
    if (command.equals("REMOVE_ALL_MASSLISTS")) {
        MassList[] selectedMassLists = tree.getSelectedObjects(MassList.class);
        for (MassList massList : selectedMassLists) {
            String massListName = massList.getName();
            RawDataFile[] dataFiles = MZmineCore.getProjectManager().getCurrentProject().getDataFiles();
            for (RawDataFile dataFile : dataFiles) {
                int[] scanNumbers = dataFile.getScanNumbers();
                for (int scanNum : scanNumbers) {
                    Scan scan = dataFile.getScan(scanNum);
                    MassList ml = scan.getMassList(massListName);
                    if (ml != null)
                        scan.removeMassList(ml);
                }
            }
        }
    }
    if (command.equals("SHOW_PEAKLIST_TABLES")) {
        PeakList[] selectedPeakLists = tree.getSelectedObjects(PeakList.class);
        for (PeakList peakList : selectedPeakLists) {
            PeakListTableModule.showNewPeakListVisualizerWindow(peakList);
        }
    }
    if (command.equals("SHOW_PEAKLIST_INFO")) {
        PeakList[] selectedPeakLists = tree.getSelectedObjects(PeakList.class);
        for (PeakList peakList : selectedPeakLists) {
            InfoVisualizerModule.showNewPeakListInfo(peakList);
        }
    }
    if (command.equals("SHOW_SCATTER_PLOT")) {
        PeakList[] selectedPeakLists = tree.getSelectedObjects(PeakList.class);
        for (PeakList peakList : selectedPeakLists) {
            ScatterPlotVisualizerModule.showNewScatterPlotWindow(peakList);
        }
    }
    if (command.equals("SORT_PEAKLISTS")) {
        // save current selection
        TreePath[] savedSelection = tree.getSelectionPaths();
        PeakList[] selectedPeakLists = tree.getSelectedObjects(PeakList.class);
        SortPeakListsModule module = MZmineCore.getModuleInstance(SortPeakListsModule.class);
        ParameterSet params = MZmineCore.getConfiguration().getModuleParameters(SortPeakListsModule.class);
        params.getParameter(SortPeakListsParameters.peakLists).setValue(PeakListsSelectionType.SPECIFIC_PEAKLISTS, selectedPeakLists);
        module.runModule(MZmineCore.getProjectManager().getCurrentProject(), params, new ArrayList<Task>());
        // restore selection
        tree.setSelectionPaths(savedSelection);
    }
    if (command.equals("RENAME_FEATURELIST")) {
        TreePath path = tree.getSelectionPath();
        if (path == null)
            return;
        else
            tree.startEditingAtPath(path);
    }
    if (command.equals("REMOVE_PEAKLIST")) {
        PeakList[] selectedPeakLists = tree.getSelectedObjects(PeakList.class);
        for (PeakList peakList : selectedPeakLists) MZmineCore.getProjectManager().getCurrentProject().removePeakList(peakList);
    }
    if (command.equals("SHOW_PEAK_SUMMARY")) {
        PeakListRow[] selectedRows = tree.getSelectedObjects(PeakListRow.class);
        for (PeakListRow row : selectedRows) {
            PeakSummaryVisualizerModule.showNewPeakSummaryWindow(row);
        }
    }
}
Also used : Task(net.sf.mzmine.taskcontrol.Task) ExitCode(net.sf.mzmine.util.ExitCode) ArrayList(java.util.ArrayList) SpectraVisualizerWindow(net.sf.mzmine.modules.visualization.spectra.simplespectra.SpectraVisualizerWindow) PeakListRow(net.sf.mzmine.datamodel.PeakListRow) SpectraVisualizerModule(net.sf.mzmine.modules.visualization.spectra.simplespectra.SpectraVisualizerModule) MZmineProject(net.sf.mzmine.datamodel.MZmineProject) MassListDataSet(net.sf.mzmine.modules.visualization.spectra.simplespectra.datasets.MassListDataSet) ParameterSet(net.sf.mzmine.parameters.ParameterSet) SortDataFilesModule(net.sf.mzmine.modules.rawdatamethods.sortdatafiles.SortDataFilesModule) RawDataExportModule(net.sf.mzmine.modules.rawdatamethods.rawdataexport.RawDataExportModule) TreePath(javax.swing.tree.TreePath) RawDataFile(net.sf.mzmine.datamodel.RawDataFile) Scan(net.sf.mzmine.datamodel.Scan) PeakList(net.sf.mzmine.datamodel.PeakList) MassList(net.sf.mzmine.datamodel.MassList) SortPeakListsModule(net.sf.mzmine.modules.peaklistmethods.sortpeaklists.SortPeakListsModule)

Aggregations

PeakList (net.sf.mzmine.datamodel.PeakList)120 PeakListRow (net.sf.mzmine.datamodel.PeakListRow)41 Nonnull (javax.annotation.Nonnull)40 Task (net.sf.mzmine.taskcontrol.Task)37 RawDataFile (net.sf.mzmine.datamodel.RawDataFile)36 SimplePeakList (net.sf.mzmine.datamodel.impl.SimplePeakList)26 Feature (net.sf.mzmine.datamodel.Feature)19 ArrayList (java.util.ArrayList)15 DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode)11 SimplePeakListAppliedMethod (net.sf.mzmine.datamodel.impl.SimplePeakListAppliedMethod)11 SimplePeakListRow (net.sf.mzmine.datamodel.impl.SimplePeakListRow)10 File (java.io.File)9 FileWriter (java.io.FileWriter)8 ParameterSet (net.sf.mzmine.parameters.ParameterSet)8 IOException (java.io.IOException)7 DataPoint (net.sf.mzmine.datamodel.DataPoint)7 Vector (java.util.Vector)6 IsotopePattern (net.sf.mzmine.datamodel.IsotopePattern)6 MZmineProject (net.sf.mzmine.datamodel.MZmineProject)6 PeakIdentity (net.sf.mzmine.datamodel.PeakIdentity)6