use of net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper in project mzmine2 by mzmine.
the class EChartPanel method initChartPanel.
/**
* Init ChartPanel Mouse Listener For MouseDraggedOverAxis event For scrolling X-Axis und zooming
* Y-Axis0
*/
private void initChartPanel(boolean stickyZeroForRangeAxis) {
final EChartPanel chartPanel = this;
// remove old init
if (mouseAdapter != null) {
this.removeMouseListener(mouseAdapter);
this.removeMouseMotionListener(mouseAdapter);
this.removeMouseWheelListener(mouseAdapter);
}
if (chartPanel.getChart().getPlot() instanceof XYPlot) {
// set sticky zero
if (stickyZeroForRangeAxis) {
ValueAxis rangeAxis = chartPanel.getChart().getXYPlot().getRangeAxis();
if (rangeAxis instanceof NumberAxis) {
NumberAxis axis = (NumberAxis) rangeAxis;
axis.setAutoRangeIncludesZero(true);
axis.setAutoRange(true);
axis.setAutoRangeStickyZero(true);
axis.setRangeType(RangeType.POSITIVE);
}
}
Plot p = getChart().getPlot();
if (addZoomHistory && (p instanceof XYPlot) && !(p instanceof CombinedDomainXYPlot || p instanceof CombinedRangeXYPlot)) {
// zoom history
zoomHistory = new ZoomHistory(this, 20);
// axis range changed listener for zooming and more
ValueAxis rangeAxis = this.getChart().getXYPlot().getRangeAxis();
ValueAxis domainAxis = this.getChart().getXYPlot().getDomainAxis();
if (rangeAxis != null) {
rangeAxis.addChangeListener(new AxisRangeChangedListener(new ChartViewWrapper(this)) {
@Override
public void axisRangeChanged(ChartViewWrapper chart, ValueAxis axis, Range lastR, Range newR) {
// notify listeners of changed range
if (axesRangeListener != null)
for (AxesRangeChangedListener l : axesRangeListener) l.axesRangeChanged(chart, axis, lastR, newR);
}
});
}
if (domainAxis != null) {
domainAxis.addChangeListener(new AxisRangeChangedListener(new ChartViewWrapper(this)) {
@Override
public void axisRangeChanged(ChartViewWrapper chart, ValueAxis axis, Range lastR, Range newR) {
// notify listeners of changed range
if (axesRangeListener != null)
for (AxesRangeChangedListener l : axesRangeListener) l.axesRangeChanged(chart, axis, lastR, newR);
}
});
}
}
// mouse adapter for scrolling and zooming
mouseAdapter = new ChartGestureMouseAdapter();
// mouseAdapter.addDebugHandler();
this.addMouseListener(mouseAdapter);
this.addMouseMotionListener(mouseAdapter);
this.addMouseWheelListener(mouseAdapter);
// add gestures
if (standardGestures) {
addStandardGestures();
}
}
}
use of net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper in project mzmine2 by mzmine.
the class EChartViewer method initChartPanel.
/**
* Init ChartPanel Mouse Listener For MouseDraggedOverAxis event For scrolling X-Axis und zooming
* Y-Axis0
*/
private void initChartPanel() {
final EChartViewer chartPanel = this;
// remove old init
if (mouseAdapter != null) {
this.getCanvas().removeMouseHandler(mouseAdapter);
}
if (chartPanel.getChart().getPlot() instanceof XYPlot) {
// set sticky zero
if (stickyZeroForRangeAxis) {
ValueAxis rangeAxis = chartPanel.getChart().getXYPlot().getRangeAxis();
if (rangeAxis instanceof NumberAxis) {
NumberAxis axis = (NumberAxis) rangeAxis;
axis.setAutoRangeIncludesZero(true);
axis.setAutoRange(true);
axis.setAutoRangeStickyZero(true);
axis.setRangeType(RangeType.POSITIVE);
}
}
Plot p = getChart().getPlot();
if (addZoomHistory && p instanceof XYPlot && !(p instanceof CombinedDomainXYPlot || p instanceof CombinedRangeXYPlot)) {
// zoom history
zoomHistory = new ZoomHistory(this, 20);
// axis range changed listener for zooming and more
ValueAxis rangeAxis = this.getChart().getXYPlot().getRangeAxis();
ValueAxis domainAxis = this.getChart().getXYPlot().getDomainAxis();
if (rangeAxis != null) {
rangeAxis.addChangeListener(new AxisRangeChangedListener(new ChartViewWrapper(this)) {
@Override
public void axisRangeChanged(ChartViewWrapper chart, ValueAxis axis, Range lastR, Range newR) {
// notify listeners of changed range
if (axesRangeListener != null)
for (AxesRangeChangedListener l : axesRangeListener) l.axesRangeChanged(chart, axis, lastR, newR);
}
});
}
if (domainAxis != null) {
domainAxis.addChangeListener(new AxisRangeChangedListener(new ChartViewWrapper(this)) {
@Override
public void axisRangeChanged(ChartViewWrapper chart, ValueAxis axis, Range lastR, Range newR) {
// notify listeners of changed range
if (axesRangeListener != null)
for (AxesRangeChangedListener l : axesRangeListener) l.axesRangeChanged(chart, axis, lastR, newR);
}
});
}
}
// mouse adapter for scrolling and zooming
mouseAdapter = new ChartGestureMouseAdapterFX("gestures", this);
addMouseHandler(mouseAdapter);
// add gestures
if (standardGestures) {
addStandardGestures();
}
// mouseAdapter.addDebugHandler();
}
}
use of net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper in project mzmine2 by mzmine.
the class MSMSLibrarySubmissionWindow method updateAllChartSelectors.
/**
* Create new scan selector panels
*/
public void updateAllChartSelectors() {
group = new ChartGroup(showCrosshair, showCrosshair, true, false);
pnCharts.removeAll();
GridLayout layout = new GridLayout(0, 1);
pnCharts.setLayout(layout);
if (checkInput()) {
Integer minSignals = paramSubmit.getParameter(LibrarySubmitParameters.minSignals).getValue();
Double noiseLevel = paramSubmit.getParameter(LibrarySubmitParameters.noiseLevel).getValue();
String massListName = paramSubmit.getParameter(LibrarySubmitParameters.massList).getValue();
if (minSignals != null && noiseLevel != null && massListName != null) {
ScanSortMode sort = (ScanSortMode) getComboSortMode().getSelectedItem();
if (rows != null) {
// create MS2 of all rows
for (int i = 0; i < rows.length; i++) {
PeakListRow row = rows[i];
ScanSelectPanel pn = new ScanSelectPanel(row, sort, noiseLevel, minSignals, massListName);
pnScanSelect[i] = pn;
pn.addChartChangedListener(chart -> regroupCharts());
pnCharts.add(pn);
// add to group
EChartPanel c = pn.getChart();
if (c != null) {
group.add(new ChartViewWrapper(c));
}
}
} else if (scanList != null) {
// all selectors of scanlist
for (int i = 0; i < scanList.size(); i++) {
Scan[] scansEntry = scanList.get(i);
ScanSelectPanel pn = new ScanSelectPanel(scansEntry, sort, noiseLevel, minSignals, massListName);
pnScanSelect[i] = pn;
pn.addChartChangedListener(chart -> regroupCharts());
pnCharts.add(pn);
// add to group
EChartPanel c = pn.getChart();
if (c != null) {
group.add(new ChartViewWrapper(c));
}
}
}
}
streamSelection().forEach(pn -> {
pn.setFragmentScan(isFragmentScan);
// only show exclude/check button if more than 1 entry
pn.setShowExcludeButton(pnScanSelect.length > 1);
});
}
pnCharts.revalidate();
pnCharts.repaint();
}
use of net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper in project mzmine2 by mzmine.
the class MultiMSMSWindow method updateAllCharts.
/**
* Create new charts
*/
public void updateAllCharts() {
msone = null;
group = new ChartGroup(showCrosshair, showCrosshair, true, false);
// MS1
if (createMS1) {
Scan scan = null;
Feature best = null;
for (PeakListRow r : rows) {
Feature f = raw == null ? r.getBestPeak() : r.getPeak(raw);
if (f != null && (best == null || f.getHeight() > best.getHeight())) {
best = f;
}
}
if (best != null) {
scan = best.getDataFile().getScan(best.getRepresentativeScanNumber());
EChartPanel cp = SpectrumChartFactory.createScanChartPanel(scan, showTitle, showLegend);
if (cp != null)
msone = new ChartViewWrapper(cp);
}
} else {
// pseudo MS1 from all rows and isotope pattern
EChartPanel cp = PseudoSpectrum.createChartPanel(rows, raw, false, "pseudo");
if (cp != null) {
cp.getChart().getLegend().setVisible(showLegend);
cp.getChart().getTitle().setVisible(showTitle);
msone = new ChartViewWrapper(cp);
}
}
if (msone != null)
group.add(msone);
// MS2 of all rows
for (PeakListRow row : rows) {
EChartPanel c = SpectrumChartFactory.createMSMSChartPanel(row, raw, showTitle, showLegend, alwaysShowBest, useBestForMissingRaw);
if (c != null) {
group.add(new ChartViewWrapper(c));
}
}
renewCharts(group);
}
Aggregations