String visualizerType = (String) comboShow.getSelectedItem();
int[] indexesRow = peaksInfoList.getSelectedRows();
ChromatographicPeak[] selectedPeaks = new ChromatographicPeak[indexesRow.length];
RawDataFile[] dataFiles = new RawDataFile[indexesRow.length];
Range rtRange = null, mzRange = null;
for (int i = 0; i < indexesRow.length; i++) {
selectedPeaks[i] = listElementModel.getElementAt(indexesRow[i]);
dataFiles[i] = selectedPeaks[i].getDataFile();
if ((rtRange == null) || (mzRange == null)) {
rtRange = dataFiles[i].getDataRTRange(1);
mzRange = selectedPeaks[i].getRawDataPointsMZRange();
} else {
rtRange.extendRange(dataFiles[i].getDataRTRange(1));
mzRange.extendRange(selectedPeaks[i]
.getRawDataPointsMZRange());
}
}
if (dataFiles.length == 0) {
return;
}
if (visualizerType.equals("Chromatogram")) {
// Label best peak with preferred identity.
final ChromatographicPeak bestPeak = row.getBestPeak();
final PeakIdentity peakIdentity = row
.getPreferredPeakIdentity();
final Map<ChromatographicPeak, String> labelMap = new HashMap<ChromatographicPeak, String>(
1);
if (bestPeak != null && peakIdentity != null) {
labelMap.put(bestPeak, peakIdentity.getName());
}
TICVisualizerModule.showNewTICVisualizerWindow(dataFiles,
selectedPeaks, labelMap, 1, PlotType.BASEPEAK, rtRange,
mzRange);
return;
} else if (visualizerType.equals("Mass spectrum")) {
for (int i = 0; i < selectedPeaks.length; i++) {
SpectraVisualizerModule.showNewSpectrumWindow(dataFiles[i],
selectedPeaks[i].getRepresentativeScanNumber());
}
} else if (visualizerType.equals("Peak in 2D")) {
for (int i = 0; i < selectedPeaks.length; i++) {
Range peakRTRange = selectedPeaks[i]
.getRawDataPointsRTRange();
Range peakMZRange = selectedPeaks[i]
.getRawDataPointsMZRange();
Range localRTRange = new Range(Math.max(0,
peakRTRange.getMin() - peakRTRange.getSize()),
peakRTRange.getMax() + peakRTRange.getSize());
Range localMZRange = new Range(Math.max(0,
peakMZRange.getMin() - peakMZRange.getSize()),
peakMZRange.getMax() + peakMZRange.getSize());
TwoDVisualizerModule.show2DVisualizerSetupDialog(
dataFiles[i], localMZRange, localRTRange);
}
} else if (visualizerType.equals("Peak in 3D")) {
for (int i = 0; i < selectedPeaks.length; i++) {
Range peakRTRange = selectedPeaks[i]
.getRawDataPointsRTRange();
Range peakMZRange = selectedPeaks[i]
.getRawDataPointsMZRange();
Range localRTRange = new Range(Math.max(0,
peakRTRange.getMin() - peakRTRange.getSize()),
peakRTRange.getMax() + peakRTRange.getSize());
Range localMZRange = new Range(Math.max(0,
peakMZRange.getMin() - peakMZRange.getSize()),
peakMZRange.getMax() + peakMZRange.getSize());
ThreeDVisualizerModule.setupNew3DVisualizer(dataFiles[i],
localMZRange, localRTRange);
}