/** * Move to the specified origin (in bins) * * @param newBinX new location X * @param newBinY new location Y */ private void moveTo(double newBinX, double newBinY) { try { MatrixZoomData zd = getZd(); final double wBins = (superAdapter.getHeatmapPanel().getWidth() / getScaleFactor()); double maxX = zd.getXGridAxis().getBinCount() - wBins; final double hBins = (superAdapter.getHeatmapPanel().getHeight() / getScaleFactor()); double maxY = zd.getYGridAxis().getBinCount() - hBins; double x = Math.max(0, Math.min(maxX, newBinX)); double y = Math.max(0, Math.min(maxY, newBinY)); xContext.setBinOrigin(x); yContext.setBinOrigin(y); superAdapter.repaint(); } catch (Exception e) { e.printStackTrace(); } if (linkedMode) { broadcastLocation(); } }
public void setScaleFactor(double scaleFactor) { this.scaleFactor = Math.max(Math.min(50, scaleFactor), 1e-10); }