diff --git a/uk/ac/sanger/artemis/components/Plot.java b/uk/ac/sanger/artemis/components/Plot.java index a8ef94b511b8f8e4d2965f543e7669f208ec6821..35a9d965ad297e9714c8a8e52726fe2b1b510c88 100644 --- a/uk/ac/sanger/artemis/components/Plot.java +++ b/uk/ac/sanger/artemis/components/Plot.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/Plot.java,v 1.19 2009-06-05 10:29:31 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/Plot.java,v 1.20 2009-06-24 15:41:04 tjc Exp $ **/ package uk.ac.sanger.artemis.components; @@ -51,7 +51,7 @@ import javax.swing.JPopupMenu; * This class implements a simple plot component. * * @author Kim Rutherford - * @version $Id: Plot.java,v 1.19 2009-06-05 10:29:31 tjc Exp $ + * @version $Id: Plot.java,v 1.20 2009-06-24 15:41:04 tjc Exp $ **/ public abstract class Plot extends JPanel @@ -120,9 +120,13 @@ public abstract class Plot extends JPanel private int numPlots; /** colour array for graph drawing */ - protected Color frameColour[] = { Color.red, + protected Color frameColour[] = { + Color.red, new Color(0,200,0), Color.blue, + Color.magenta, + Color.orange, + Color.yellow, Color.black }; private int lastPaintHeight = getHeight(); @@ -965,18 +969,18 @@ public abstract class Plot extends JPanel g.drawString(desc, 2, font_height); - if(numPlots < 3) + if(numPlots < 3 || numPlots > 10) return; final FontMetrics fm = g.getFontMetrics(); int font_width = fm.stringWidth("2"); - int width = getWidth() - window_changer.getWidth() - (15*font_width); + int width = getWidth() - window_changer.getWidth() - + ((5*numPlots)*font_width); - g.translate(width,0); ((BaseAlgorithm)getAlgorithm()).drawLegend(g,font_height, - font_width,frameColour); + font_width,frameColour, numPlots); g.translate(-width,0); } diff --git a/uk/ac/sanger/artemis/plot/BaseAlgorithm.java b/uk/ac/sanger/artemis/plot/BaseAlgorithm.java index 36136f881ee296b1b5a16068a5ab393ebc60a11a..a328ea617a5be1035a623bc2dde28916500b9a74 100644 --- a/uk/ac/sanger/artemis/plot/BaseAlgorithm.java +++ b/uk/ac/sanger/artemis/plot/BaseAlgorithm.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/plot/BaseAlgorithm.java,v 1.7 2006-06-23 10:40:14 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/plot/BaseAlgorithm.java,v 1.8 2009-06-24 15:41:04 tjc Exp $ */ package uk.ac.sanger.artemis.plot; @@ -38,7 +38,7 @@ import java.awt.BasicStroke; * Strand of DNA, meaning the algorithm can't change strand part way along. * * @author Kim Rutherford - * @version $Id: BaseAlgorithm.java,v 1.7 2006-06-23 10:40:14 tjc Exp $ + * @version $Id: BaseAlgorithm.java,v 1.8 2009-06-24 15:41:04 tjc Exp $ **/ public abstract class BaseAlgorithm extends Algorithm @@ -105,12 +105,11 @@ public abstract class BaseAlgorithm extends Algorithm /** - * * Draw in a legend - * */ public void drawLegend(Graphics g, int font_height, - int font_width, Color[] frameColour) + int font_width, Color[] frameColour, + int numPlots) { Graphics2D g2d = (Graphics2D)g; @@ -119,23 +118,18 @@ public abstract class BaseAlgorithm extends Algorithm if( (strand.isForwardStrand() && !isRevCompDisplay()) || (!strand.isForwardStrand() && isRevCompDisplay())) - { - g2d.setColor(Color.black); - g2d.drawString("1",0,font_height); - g2d.drawString("2",font_width*5,font_height); - g2d.drawString("3",font_width*10,font_height); - - BasicStroke stroke = (BasicStroke)g2d.getStroke(); - g2d.setStroke(new BasicStroke(3.f)); - g2d.setColor(frameColour[0]); - g2d.drawLine(font_width*2, lineHgt, font_width*4, lineHgt); - - g2d.setColor(frameColour[1]); - g2d.drawLine(font_width*7, lineHgt, font_width*9, lineHgt); - - g2d.setColor(frameColour[2]); - g2d.drawLine(font_width*12, lineHgt, font_width*14, lineHgt); - g2d.setStroke(stroke); + { + for(int i=0; i<numPlots; i++) + { + g2d.setColor(Color.black); + g2d.drawString(Integer.toString(i+1),i*5*font_width,font_height); + + BasicStroke stroke = (BasicStroke)g2d.getStroke(); + g2d.setStroke(new BasicStroke(3.f)); + g2d.setColor(frameColour[i]); + g2d.drawLine(font_width*(2 + (i*5)), lineHgt, font_width*(4 + (i*5)), lineHgt); + g2d.setStroke(stroke); + } } else {