It doesn't work for me - the new peak is still not added. I tried the following:
Index:
src/main/java/net/sf/mzmine/modules/rawdatamethods/peakpicking/manual/ManualPickerTask.java
===================================================================
---
src/main/java/net/sf/mzmine/modules/rawdatamethods/peakpicking/manual/ManualPickerTask.java
(revision 3423)
+++
src/main/java/net/sf/mzmine/modules/rawdatamethods/peakpicking/manual/ManualPickerTask.java
(working copy)
@@ -30,8 +30,10 @@
import net.sf.mzmine.datamodel.RawDataFile;
import net.sf.mzmine.datamodel.Scan;
import net.sf.mzmine.datamodel.impl.SimpleDataPoint;
+import net.sf.mzmine.desktop.impl.projecttree.PeakListTreeModel;
import net.sf.mzmine.main.MZmineCore;
import net.sf.mzmine.modules.visualization.peaklist.table.PeakListTable;
+import net.sf.mzmine.project.impl.MZmineProjectImpl;
import net.sf.mzmine.taskcontrol.AbstractTask;
import net.sf.mzmine.taskcontrol.TaskStatus;
import net.sf.mzmine.util.Range;
@@ -129,7 +131,13 @@
}
// Notify the GUI that peaklist contents have changed
- if (peakList != null) {
MZmineCore.getCurrentProject().notifyObjectChanged(peakList, true); }
+ if (peakList != null) {
+
MZmineCore.getCurrentProject().notifyObjectChanged(peakList, true);
+ MZmineProjectImpl project = (MZmineProjectImpl)
MZmineCore.getCurrentProject();
+ PeakListTreeModel treeModel =
project.getPeakListTreeModel();
+ treeModel.notifyObjectChanged(peakList, true);
+ }
if (table != null) { ((AbstractTableModel)
table.getModel()).fireTableDataChanged(); }
logger.finest("Finished manual peak picker" + processedScans
Also, if I call treeModel.reload(); after
treeModel.notifyObjectChanged(peakList, true); I can see that the peak list
view is reloaded but when I expand the peak list again the new peak is still
not there.
/Thomas
From: Tomas Pluskal [mailto:[email protected]]
Sent: 31. oktober 2014 01:42
To: Developer discussion
Subject: Re: [Mzmine-devel] Error with adding a new peak to the peak list table
Hi Thomas,
I think instead of adding the row manually to the tree model, you should just
let the tree model know that the peak list structure has changed, by calling
treeModel.notifyObjectChanged(peakList, true);
That should result in updating the peak list rows in the tree.
Cheers,
Tomas
On Oct 30, 2014, at 19:05, TFRD (Thomas Franck Dyrlund)
<[email protected]<mailto:[email protected]>> wrote:
Hi everyone
I need your help to fix a bug in MZmine. The problem is that after adding a new
peak to the peak list table, it is not shown in the tree if the peak list is
expanded in the main window. When a user then deletes this row, an error is
returned in SimplePeakList.java l. 246.
Based on what I can see, the problem is that the project tree model is not
updated after adding the row in SimplePeakList.java:
public void addRow(PeakListRow row) {
List<RawDataFile> myFiles = Arrays.asList(this.getRawDataFiles());
for (RawDataFile testFile : row.getRawDataFiles()) {
if (!myFiles.contains(testFile))
throw (new IllegalArgumentException("Data file " +
testFile+ " is not in this peak list"));
}
peakListRows.add(row);
...
}
Deleting a non-user added row works fine and I have therefore tried adding the
following to addRow():
// We have to update the project tree model
MZmineProjectImpl project = (MZmineProjectImpl) MZmineCore.getCurrentProject();
PeakListTreeModel treeModel = project.getPeakListTreeModel();
treeModel.addObject(row);
However, I get the following error when loading a project and also a new row is
not added to the peak list tree:
java.lang.IllegalStateException: This method must be called from Swing thread
Can anyone please help solve this bug?
Best regards,
Thomas
------------------------------------------------------------------------------
_______________________________________________
Mzmine-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/mzmine-devel
===============================================
Tomas Pluskal
G0 Cell Unit, Okinawa Institute of Science and Technology Graduate University
1919-1 Tancha, Onna-son, Okinawa 904-0495, Japan
WWW: https://groups.oist.jp/g0
TEL: +81-98-966-8684
Fax: +81-98-966-2890
------------------------------------------------------------------------------
_______________________________________________
Mzmine-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mzmine-devel