From d0bab9de317fb505abfe88032ed39a3a1f7e3d1b Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Tue, 6 Nov 2012 12:25:48 +0000 Subject: [PATCH] tidy code --- .../artemis/components/FeaturePlot.java | 40 +++---- uk/ac/sanger/artemis/components/Plot.java | 108 ++++++------------ 2 files changed, 49 insertions(+), 99 deletions(-) diff --git a/uk/ac/sanger/artemis/components/FeaturePlot.java b/uk/ac/sanger/artemis/components/FeaturePlot.java index 646f45c36..6d3425b09 100644 --- a/uk/ac/sanger/artemis/components/FeaturePlot.java +++ b/uk/ac/sanger/artemis/components/FeaturePlot.java @@ -25,24 +25,30 @@ package uk.ac.sanger.artemis.components; -import uk.ac.sanger.artemis.sequence.*; -import uk.ac.sanger.artemis.util.OutOfRangeException; -import uk.ac.sanger.artemis.util.ReadOnlyException; -import uk.ac.sanger.artemis.*; -import uk.ac.sanger.artemis.io.EntryInformationException; -import uk.ac.sanger.artemis.plot.*; -import java.awt.*; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; + +import uk.ac.sanger.artemis.Feature; +import uk.ac.sanger.artemis.FeatureChangeEvent; +import uk.ac.sanger.artemis.FeatureChangeListener; +import uk.ac.sanger.artemis.Options; +import uk.ac.sanger.artemis.plot.FeatureAlgorithm; +import uk.ac.sanger.artemis.plot.LineAttributes; +import uk.ac.sanger.artemis.sequence.AminoAcidSequence; + /** * The components of this class display a plot of a FeatureAlgorithm for a * particular feature. - * * @author Kim Rutherford - * @version $Id: FeaturePlot.java,v 1.11 2009-07-20 15:11:17 tjc Exp $ **/ public class FeaturePlot extends Plot implements DisplayAdjustmentListener, FeatureChangeListener { + + private static final long serialVersionUID = 1L; + /** * Create a new FeatureDisplay object. * @param algorithm The object that will generate the values we plot in @@ -102,10 +108,9 @@ public class FeaturePlot extends Plot public void displayAdjustmentValueChanged (DisplayAdjustmentEvent event) { start_base = event.getStart (); end_base = event.getEnd (); - width_in_bases = event.getWidthInBases (); + //width_in_bases = event.getWidthInBases (); recalculate_flag = true; - repaint(); } @@ -138,13 +143,6 @@ public class FeaturePlot extends Plot return end_base; } - /** - * Return the width in bases of the display, from the last event. - **/ - private int getWidthInBases () { - return width_in_bases; - } - /** * This array is used by drawGraph (). It is reallocated when the scale * changes. @@ -386,12 +384,6 @@ public class FeaturePlot extends Plot **/ private int end_base; - /** - * The width in bases of the display, as obtained from the - * DisplayAdjustmentEvent. - **/ - private int width_in_bases; - protected void calculateFeatures(boolean fromPeak) { // TODO Auto-generated method stub diff --git a/uk/ac/sanger/artemis/components/Plot.java b/uk/ac/sanger/artemis/components/Plot.java index 9fcc723af..b1f863a5d 100644 --- a/uk/ac/sanger/artemis/components/Plot.java +++ b/uk/ac/sanger/artemis/components/Plot.java @@ -29,8 +29,16 @@ import uk.ac.sanger.artemis.Options; import uk.ac.sanger.artemis.circular.TextFieldFloat; import uk.ac.sanger.artemis.plot.*; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.GridLayout; +import java.awt.Image; +import java.awt.Scrollbar; import java.awt.event.*; +import java.util.Vector; import javax.swing.JMenu; import javax.swing.JPanel; @@ -46,13 +54,12 @@ import javax.swing.JPopupMenu; /** * This class implements a simple plot component. - * * @author Kim Rutherford - * @version $Id: Plot.java,v 1.26 2009-08-18 09:01:44 tjc Exp $ **/ public abstract class Plot extends JPanel { + private static final long serialVersionUID = 1L; /** scroll bar for changing the window size. */ private JScrollBar window_changer = null; @@ -73,6 +80,8 @@ public abstract class Plot extends JPanel * drawScaleLine() is called. **/ private boolean draw_scale; + + private final int SCROLL_NOB_SIZE = 10; /** * Set to true if drawMultiValueGraph() should call recalculateValues(). @@ -95,7 +104,7 @@ public abstract class Plot extends JPanel /** * A vector of those objects listening for PlotMouse events. **/ - final private java.util.Vector listener_list = new java.util.Vector(); + final private Vector<PlotMouseListener> listener_list = new Vector<PlotMouseListener>(); /** * Recalculate the values all the state that is used for drawing the plot @@ -116,10 +125,12 @@ public abstract class Plot extends JPanel /** number of graph lines to be drawn */ private int numPlots; - /** colour array for graph drawing */ protected LineAttributes lines[]; private int lastPaintHeight = getHeight(); + + /** the minimum distance in pixels between the labels */ + private final static int MINIMUM_LABEL_SPACING = 50; /** * Create a new plot component. @@ -130,34 +141,27 @@ public abstract class Plot extends JPanel **/ public Plot(Algorithm algorithm, boolean draw_scale) { - super(); + super(new BorderLayout()); this.algorithm = algorithm; this.draw_scale = draw_scale; - final Font font = Options.getOptions().getFont(); - - setFont(font); - FontMetrics fm = getFontMetrics(font); + setFont(Options.getOptions().getFont()); + FontMetrics fm = getFontMetrics(getFont()); font_height = fm.getHeight(); - setLayout(new BorderLayout()); - final int MAX_WINDOW; - if(getAlgorithm().getDefaultMaxWindowSize() != null) MAX_WINDOW = getAlgorithm().getDefaultMaxWindowSize().intValue(); else MAX_WINDOW = 500; final int MIN_WINDOW; - if(getAlgorithm().getDefaultMinWindowSize() != null) MIN_WINDOW = getAlgorithm().getDefaultMinWindowSize().intValue(); else MIN_WINDOW = 5; final int START_WINDOW; - if(getAlgorithm().getDefaultWindowSize() == null) START_WINDOW = 10; else @@ -189,17 +193,11 @@ public abstract class Plot extends JPanel } }); - -// setBackground(Color.white); add(window_changer, "East"); - addMouseListener(mouse_listener); addMouseMotionListener(mouse_motion_listener); - } - final int SCROLL_NOB_SIZE = 10; - /** * Return the algorithm that was passed to the constructor. **/ @@ -220,8 +218,7 @@ public abstract class Plot extends JPanel final MouseListener mouse_listener = new MouseAdapter() { /** - * Listen for mouse press events so that we can do a popup menu and a - * crosshair. + * Listen for mouse press popup menu and crosshair events. **/ public void mousePressed(MouseEvent event) { @@ -351,13 +348,11 @@ public abstract class Plot extends JPanel } }); } - - + popup.addSeparator(); final JMenu max_window_size = new JMenu("Maximum Window Size"); - popup.add(max_window_size); final int[] window_sizes = @@ -366,9 +361,7 @@ public abstract class Plot extends JPanel 200000, 500000, 1000000 }; - JMenuItem window_size_item; - for(int i = 0 ; i < window_sizes.length ; ++i) { final int size = i; @@ -440,7 +433,6 @@ public abstract class Plot extends JPanel } final JSplitPane splitPane = getJSplitPane(); - if(splitPane == null) { popup.addSeparator(); @@ -611,7 +603,7 @@ public abstract class Plot extends JPanel PlotMouseListener listener; for(int i = 0; i < listener_list.size(); ++i) { - listener = (PlotMouseListener)listener_list.elementAt(i); + listener = listener_list.elementAt(i); listener.mouseClick(getPointPosition(cross_hair_position)); } } @@ -625,7 +617,7 @@ public abstract class Plot extends JPanel PlotMouseListener listener; for(int i = 0; i < listener_list.size(); ++i) { - listener = (PlotMouseListener)listener_list.elementAt(i); + listener = listener_list.elementAt(i); listener.mouseDrag(getPointPosition(drag_start_position), getPointPosition(cross_hair_position)); } @@ -640,7 +632,7 @@ public abstract class Plot extends JPanel PlotMouseListener listener; for(int i = 0; i < listener_list.size(); ++i) { - listener = (PlotMouseListener)listener_list.elementAt(i); + listener = listener_list.elementAt(i); listener.mouseDoubleClick(getPointPosition(cross_hair_position)); } } @@ -737,31 +729,19 @@ public abstract class Plot extends JPanel drag_start_position = -1; } - // the minimum distance in pixels between the labels - private final static int MINIMUM_LABEL_SPACING = 50; - /** - * Draw the scale line at the bottom of the graph. + * Draw the scale line at the bottom of the graph (used by FeaturePlot). * @param start The base on the left * @param end The base on the right **/ protected void drawScaleLine(final Graphics g, final int start, final int end) { - final int width = getWidth() - window_changer.getWidth(); - final int height = getHeight(); - - final int scale_number_y_pos = height - 1; - + final int hgt = getHeight(); + final int scale_number_y_pos = hgt - 1; final float bases_per_pixel = 1.0F; - // set the spacing so that the labels are at multiples of 10 - final int base_label_spacing = MINIMUM_LABEL_SPACING; - - final int label_spacing = (int)(base_label_spacing / bases_per_pixel); - - final int possible_index_of_first_label = start / base_label_spacing; - + final int possible_index_of_first_label = start / MINIMUM_LABEL_SPACING; final int index_of_first_label; if(possible_index_of_first_label == 0) @@ -769,22 +749,18 @@ public abstract class Plot extends JPanel else index_of_first_label = possible_index_of_first_label; - final int index_of_last_label = end / base_label_spacing; - - String label_string; + final int index_of_last_label = end / MINIMUM_LABEL_SPACING; for(int i = index_of_first_label; i <= index_of_last_label; i++) { - label_string = String.valueOf((int)(i * base_label_spacing)); - final int scale_number_x_pos = - (int)((i * base_label_spacing - start) / bases_per_pixel); + (int)((i * MINIMUM_LABEL_SPACING - start) / bases_per_pixel); - g.drawString(label_string, + g.drawString(String.valueOf((int)(i * MINIMUM_LABEL_SPACING)), scale_number_x_pos + 2, scale_number_y_pos); - g.drawLine(scale_number_x_pos, height - getScaleHeight() / 2, - scale_number_x_pos, height - getScaleHeight()); + g.drawLine(scale_number_x_pos, hgt - getScaleHeight() / 2, + scale_number_x_pos, hgt - getScaleHeight()); } } @@ -1129,22 +1105,6 @@ public abstract class Plot extends JPanel { return font_height; } - - /** - * Used to get the X coordinate for the tooltip text. - * @param total_unit_count The maximum number of residues/bases we can - * show. This is used to draw the scale line and to calculate the - * distance (in pixels) between plot points. - * @param start_position The distance from the edge of the canvas (measured - * in residues/bases) to start drawing the plot. - * @param xpos The mouse position on the canvas. - **/ - protected int getXCoordinate(final int total_unit_count, - final int start_position, - final int xpos) - { - return (xpos * total_unit_count)/getSize().width + start_position; - } /** * Used to get the Y coordinate for the tooltip text. @@ -1162,7 +1122,6 @@ public abstract class Plot extends JPanel final float plot_values[], int base_pos) { int ypos = (int)((base_pos - start_position - (window_size/2))/step_size); - if(ypos < 0) ypos = 0; else if(ypos > plot_values.length-1) @@ -1170,5 +1129,4 @@ public abstract class Plot extends JPanel return plot_values[ypos]; } - } -- GitLab