@Test public void testCloning() throws CloneNotSupportedException { FastScatterPlot p1 = new FastScatterPlot(); FastScatterPlot p2 = (FastScatterPlot) p1.clone(); assertNotSame(p1, p2); assertSame(p1.getClass(), p2.getClass()); assertEquals(p1, p2); }
@Override public Object clone() throws CloneNotSupportedException { FastScatterPlot clone = (FastScatterPlot) super.clone(); if (this.data != null) { clone.data = ArrayUtilities.clone(this.data); } if (this.domainAxis != null) { clone.domainAxis = (ValueAxis) this.domainAxis.clone(); clone.domainAxis.setPlot(clone); clone.domainAxis.addChangeListener(clone); } if (this.rangeAxis != null) { clone.rangeAxis = (ValueAxis) this.rangeAxis.clone(); clone.rangeAxis.setPlot(clone); clone.rangeAxis.addChangeListener(clone); } return clone; }
FastScatterPlot extends Plot implements ValueAxisPlot, Pannable,
        Zoomable, Cloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { FastScatterPlot clone = (FastScatterPlot) super.clone(); if (this.data != null) { clone.data = ArrayUtilities.clone(this.data); } if (this.domainAxis != null) { clone.domainAxis = (ValueAxis) this.domainAxis.clone(); clone.domainAxis.setPlot(clone); clone.domainAxis.addChangeListener(clone); } if (this.rangeAxis != null) { clone.rangeAxis = (ValueAxis) this.rangeAxis.clone(); clone.rangeAxis.setPlot(clone); clone.rangeAxis.addChangeListener(clone); } return clone; } }
FastScatterPlot extends Plot implements ValueAxisPlot, Pannable,
        Zoomable, Cloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { FastScatterPlot clone = (FastScatterPlot) super.clone(); if (this.data != null) { clone.data = ArrayUtilities.clone(this.data); } if (this.domainAxis != null) { clone.domainAxis = (ValueAxis) this.domainAxis.clone(); clone.domainAxis.setPlot(clone); clone.domainAxis.addChangeListener(clone); } if (this.rangeAxis != null) { clone.rangeAxis = (ValueAxis) this.rangeAxis.clone(); clone.rangeAxis.setPlot(clone); clone.rangeAxis.addChangeListener(clone); } return clone; } FastScatterPlot();  FastScatterPlot(float[][] data,
                           ValueAxis domainAxis, ValueAxis rangeAxis); }
FastScatterPlot extends Plot implements ValueAxisPlot, Pannable,
        Zoomable, Cloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { FastScatterPlot clone = (FastScatterPlot) super.clone(); if (this.data != null) { clone.data = ArrayUtilities.clone(this.data); } if (this.domainAxis != null) { clone.domainAxis = (ValueAxis) this.domainAxis.clone(); clone.domainAxis.setPlot(clone); clone.domainAxis.addChangeListener(clone); } if (this.rangeAxis != null) { clone.rangeAxis = (ValueAxis) this.rangeAxis.clone(); clone.rangeAxis.setPlot(clone); clone.rangeAxis.addChangeListener(clone); } return clone; } FastScatterPlot();  FastScatterPlot(float[][] data,
                           ValueAxis domainAxis, ValueAxis rangeAxis); @Override String getPlotType(); float[][] getData(); void setData(float[][] data); @Override PlotOrientation getOrientation(); ValueAxis getDomainAxis(); void setDomainAxis(ValueAxis axis); ValueAxis getRangeAxis(); void setRangeAxis(ValueAxis axis); Paint getPaint(); void setPaint(Paint paint); boolean isDomainGridlinesVisible(); void setDomainGridlinesVisible(boolean visible); Stroke getDomainGridlineStroke(); void setDomainGridlineStroke(Stroke stroke); Paint getDomainGridlinePaint(); void setDomainGridlinePaint(Paint paint); boolean isRangeGridlinesVisible(); void setRangeGridlinesVisible(boolean visible); Stroke getRangeGridlineStroke(); void setRangeGridlineStroke(Stroke stroke); Paint getRangeGridlinePaint(); void setRangeGridlinePaint(Paint paint); @Override void draw(Graphics2D g2, Rectangle2D area, Point2D anchor,
                     PlotState parentState,
                     PlotRenderingInfo info); void render(Graphics2D g2, Rectangle2D dataArea,
                       PlotRenderingInfo info, CrosshairState crosshairState); @Override Range getDataRange(ValueAxis axis); @Override void zoomDomainAxes(double factor, PlotRenderingInfo info,
                               Point2D source); @Override void zoomDomainAxes(double factor, PlotRenderingInfo info,
                               Point2D source, boolean useAnchor); @Override void zoomDomainAxes(double lowerPercent, double upperPercent,
                               PlotRenderingInfo info, Point2D source); @Override void zoomRangeAxes(double factor,
                              PlotRenderingInfo info, Point2D source); @Override void zoomRangeAxes(double factor, PlotRenderingInfo info,
                              Point2D source, boolean useAnchor); @Override void zoomRangeAxes(double lowerPercent, double upperPercent,
                              PlotRenderingInfo info, Point2D source); @Override boolean isDomainZoomable(); @Override boolean isRangeZoomable(); @Override boolean isDomainPannable(); void setDomainPannable(boolean pannable); @Override boolean isRangePannable(); void setRangePannable(boolean pannable); @Override void panDomainAxes(double percent, PlotRenderingInfo info,
            Point2D source); @Override void panRangeAxes(double percent, PlotRenderingInfo info,
            Point2D source); @Override boolean equals(Object obj); @Override Object clone(); }
FastScatterPlot extends Plot implements ValueAxisPlot, Pannable,
        Zoomable, Cloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { FastScatterPlot clone = (FastScatterPlot) super.clone(); if (this.data != null) { clone.data = ArrayUtilities.clone(this.data); } if (this.domainAxis != null) { clone.domainAxis = (ValueAxis) this.domainAxis.clone(); clone.domainAxis.setPlot(clone); clone.domainAxis.addChangeListener(clone); } if (this.rangeAxis != null) { clone.rangeAxis = (ValueAxis) this.rangeAxis.clone(); clone.rangeAxis.setPlot(clone); clone.rangeAxis.addChangeListener(clone); } return clone; } FastScatterPlot();  FastScatterPlot(float[][] data,
                           ValueAxis domainAxis, ValueAxis rangeAxis); @Override String getPlotType(); float[][] getData(); void setData(float[][] data); @Override PlotOrientation getOrientation(); ValueAxis getDomainAxis(); void setDomainAxis(ValueAxis axis); ValueAxis getRangeAxis(); void setRangeAxis(ValueAxis axis); Paint getPaint(); void setPaint(Paint paint); boolean isDomainGridlinesVisible(); void setDomainGridlinesVisible(boolean visible); Stroke getDomainGridlineStroke(); void setDomainGridlineStroke(Stroke stroke); Paint getDomainGridlinePaint(); void setDomainGridlinePaint(Paint paint); boolean isRangeGridlinesVisible(); void setRangeGridlinesVisible(boolean visible); Stroke getRangeGridlineStroke(); void setRangeGridlineStroke(Stroke stroke); Paint getRangeGridlinePaint(); void setRangeGridlinePaint(Paint paint); @Override void draw(Graphics2D g2, Rectangle2D area, Point2D anchor,
                     PlotState parentState,
                     PlotRenderingInfo info); void render(Graphics2D g2, Rectangle2D dataArea,
                       PlotRenderingInfo info, CrosshairState crosshairState); @Override Range getDataRange(ValueAxis axis); @Override void zoomDomainAxes(double factor, PlotRenderingInfo info,
                               Point2D source); @Override void zoomDomainAxes(double factor, PlotRenderingInfo info,
                               Point2D source, boolean useAnchor); @Override void zoomDomainAxes(double lowerPercent, double upperPercent,
                               PlotRenderingInfo info, Point2D source); @Override void zoomRangeAxes(double factor,
                              PlotRenderingInfo info, Point2D source); @Override void zoomRangeAxes(double factor, PlotRenderingInfo info,
                              Point2D source, boolean useAnchor); @Override void zoomRangeAxes(double lowerPercent, double upperPercent,
                              PlotRenderingInfo info, Point2D source); @Override boolean isDomainZoomable(); @Override boolean isRangeZoomable(); @Override boolean isDomainPannable(); void setDomainPannable(boolean pannable); @Override boolean isRangePannable(); void setRangePannable(boolean pannable); @Override void panDomainAxes(double percent, PlotRenderingInfo info,
            Point2D source); @Override void panRangeAxes(double percent, PlotRenderingInfo info,
            Point2D source); @Override boolean equals(Object obj); @Override Object clone(); static final Stroke DEFAULT_GRIDLINE_STROKE; static final Paint DEFAULT_GRIDLINE_PAINT; }