⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groutalignjframe.java

📁 emboss的linux版本的源代码
💻 JAVA
字号:
/***************************************************************** This program is free software; you can redistribute it and/or* modify it under the terms of the GNU General Public License* as published by the Free Software Foundation; either version 2* of the License, or (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.**  @author: Copyright (C) Tim Carver****************************************************************/package org.emboss.jemboss.editor;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.io.File;import javax.swing.border.*;import java.net.URL;import org.emboss.jemboss.gui.sequenceChooser.SequenceFilter;import org.emboss.jemboss.gui.filetree.FileEditorDisplay;import org.emboss.jemboss.gui.ScrollPanel;/***  * Displays a grapical representation of a collection of* sequences.**/public class GroutAlignJFrame extends AlignJFrame implements		GroutGraphicSequenceCollectionListener{		private Vector targets = new Vector();		private int position = 0;   /**  * This constructor is for Grout.  * It includes the indent for each sequence  *  * @param vseqs	vector containing Sequence objects  *  */   public GroutAlignJFrame(Vector vseqs, Vector indents)  {			super();			if(vseqs != null && vseqs.size() > 0)          openMethod(vseqs, indents);			addMenuItems();  }  /**  *  * @param vseqs	vector containing Sequence objects  *  */   public GroutAlignJFrame(Vector vseqs)  {			super(vseqs);			addMenuItems();  }  /**  *  * @param seqFile	sequence file  *  */  public GroutAlignJFrame(File seqFile)  {			super(seqFile);			addMenuItems();  }  /**  *  * @param seqString	formatted sequence string  * @param name 	name of sequence set  *  */  public GroutAlignJFrame(String seqString, String name)  {			super(seqString, name);			addMenuItems();  }  public GroutAlignJFrame()  {			super(false);			addMenuItems();  }  /**  *  * @param useExitMenu	true if an exit menu is to be displayed  *			otherwise a close menu is used  *  */  public GroutAlignJFrame(boolean useExitMenu)  {			super(useExitMenu);  }  /**  *  * Extends WindowAdapter to handle disposal of the occurance  *  */  class winExit extends WindowAdapter  {     public void windowClosing(WindowEvent we)     {					// System.out.println("windowClosing HERE");        dispose();     }			public void windowDeiconified(WindowEvent e)			{					// System.out.println("windowDeiconified HERE");			}			public void windowOpened(WindowEvent e)			{					// System.out.println("windowOpened HERE");			}  }  /**  *  * Given a Vector of Sequence display them in the editor  * @param seqVector	vector containing Sequence objects  *  */  protected void openMethod(Vector seqVector)  {			//			((AlignJFrame) this).openMethod(seqVector);		// System.out.println("GroutAlignJFrame openMethod");    gsc = new GroutGraphicSequenceCollection(seqVector,                                   jspSequence,true,false,true,true,                                   statusField);			((GroutGraphicSequenceCollection )gsc).					addGroutGraphicSequenceCollectionListener(this);// set colour scheme    gsc.setColorScheme(SequenceProperties.residueColor);    currentColour = (Hashtable)SequenceProperties.residueColor.clone();    residueColor.setSelected(true);    jspSequence.setViewportView(gsc);    colourScheme("Residue colour");  }  /**  *  * Given a Vector of Sequence and the indent for each	* display them in the editor  *  * @param seqVector	vector containing Sequence objects  * @param indents    vector containing ints giving indents  *  */  protected void openMethod(Vector seqVector, Vector indents)  {			//			((AlignJFrame) this).openMethod(seqVector);		// System.out.println("GroutAlignJFrame openMethod indents");    gsc = new GroutGraphicSequenceCollection(seqVector, indents,                                   jspSequence,true,false,true,true,                                   statusField);		if(seqVector.size() > 1)		{				gsc.drawNumber();		}			((GroutGraphicSequenceCollection )gsc).					addGroutGraphicSequenceCollectionListener(this);// set colour scheme    gsc.setColorScheme(SequenceProperties.residueColor);    currentColour = (Hashtable)SequenceProperties.residueColor.clone();    residueColor.setSelected(true);    jspSequence.setViewportView(gsc);    colourScheme("Residue colour");  }  public synchronized void addGroutAlignJFrameListener(GroutAlignJFrameListener listener)  {				// System.out.println("adding to GroutAlignJFrame = " + listener);    targets.addElement(listener);  }    public synchronized void removeGroutAlignJFrameListener(GroutAlignJFrameListener listener)  {    targets.removeElement(listener);  }    protected void notifyTargets(String propertyName, Object oldValue, Object newValue)  {    Vector l;    GroutAlignJFrameEvent s = new GroutAlignJFrameEvent((Object) this, propertyName, oldValue, newValue);    synchronized(this)    {      l = (Vector) targets.clone();    }    for (int i = 0; i < l.size(); i++)    {      GroutAlignJFrameListener sl = (GroutAlignJFrameListener) l.elementAt(i);      sl.groutAlignJFrameChanged(s);    }  }  /**  *  * Moves the view position to this point  *  * @param position the position to view  *  */		public void setPosition(int position)		{				// System.out.println("alignEditor setPosition");				// System.out.println("setPosition xcv to " + position);				((GroutGraphicSequenceCollection)gsc).setPosition(position);				this.position = position;		}  /**  *  * Sets the indents to these values  *  * @param position the position to view  *  */		public void setIndents(Vector indents)		{				// System.out.println("alignEditor setIndents to " + indents.elementAt(0) +  " " + indents.elementAt(1));				((GroutGraphicSequenceCollection)gsc).doIndent(indents);		}  /**  *  * when you close the window, should remove lines from Grout  *  */	protected void addWindowCloser()  {      addWindowListener(new java.awt.event.WindowAdapter()      {        public void windowClosing(java.awt.event.WindowEvent evt)        {					notifyTargets("windowClosed", new Boolean(false), new Boolean(true));          dispose();        }        public void windowOpened(java.awt.event.WindowEvent evt)        {						setPosition(position);						GroutSequenceJPanel sequenceJPanel = (GroutSequenceJPanel) ((GraphicSequenceCollection)gsc).getGraphicSequence().elementAt(0);						if(sequenceJPanel != null)						{								sequenceJPanel.drawCentreMarker(sequenceJPanel.getGraphics());						}						int height = ((GroutGraphicSequenceCollection) gsc).setSize();						Dimension size = jspSequence.getPreferredSize();						Dimension size2 = jspSequence.getHorizontalScrollBar().getPreferredSize();						size.height = height + size2.height + 4;						jspSequence.setPreferredSize(size);						pack();        }      });  }		private void addMenuItems()		{				JMenu groutMenu = new JMenu("Grout Menu");				JMenuItem newAlignFrame = new JMenuItem("new Align Frame");				newAlignFrame.addActionListener(new ActionListener()						{								public void actionPerformed(ActionEvent e)								{										notifyTargets("newAlignJFrame", new Boolean(false), new Boolean(true));								}						}																				);				groutMenu.add(newAlignFrame);				final JCheckBoxMenuItem jumpTo = new JCheckBoxMenuItem("Jump to nearest alignment");				jumpTo.addActionListener(new ActionListener()						{								public void actionPerformed(ActionEvent e)								{										notifyTargets("JumpToNearestAlignment",																	new Boolean(!jumpTo.getState()), 																	new Boolean(jumpTo.getState()));								}						}																				);				groutMenu.add(jumpTo);				menuBar.add(groutMenu);								}  /**  *  * Responds to the groutGraphicSequenceCollectionChanged event  *  * @param e the event  *  */		public void groutGraphicSequenceCollectionChanged				(GroutGraphicSequenceCollectionEvent e)		{				// System.out.println("groutGraphicSequenceCollectionChanged to " + e.getNewValue());				notifyTargets(e.getPropertyName(), e.getOldValue(), e.getNewValue());		}  /**  *  * Test main really  *  */  public static void main(String args[])  {    Vector indents = new Vector();    Vector seqs = new Vector();    Sequence s = new Sequence("Seq2","ggcagcttaagccaaacattcccaaatctatgaagcagggcccattgttggtcagttgtt"+"atttgcaatgaagcacagttctgatcatgtttaaagtggaggcacgcagggcaggagtgc"+"ttgagcccaagcaaaggatggaaaaaaataagcctttgttgggtaaaaaaggactgtctg"+"agactttcatttgttctgtgcaacatataagtcaatacagataagtcttcctctgcaaac"+"ttcactaaaaagcctgggggttctggcagtctagattaaaatgcttgcacatgcagaaac"+"ctctggggacaaagacacacttccactgaattatactctgctttaaaaaaatccccaaaa"+"gcaaatgatcagaaatgtagaaattaatggaaggatttaaacatgaccttctcgttcaat"+"atctactgttttttagttaaggaattacttgtgaacagataattgagattcattgctccg"+"gcatgaaatatactaataattttattccaccagagttgctgcacatttggagacaccttc"+"ctaagttgcagtttttgtatgtgtgcatgtagttttgttcagtgtcagcctgcactgcac"+"agcagcacatttctgcaggggagtgagcacacatacgcactgttggtacaattgccggtg"+"cagacatttctacctcctgacattttgcagcctacattccctgagggctgtgtgctgagg"+"gaactgtcagagaagggctatgtgggagtgcatgccacagctgctggctggcttacttct"+"tccttctcgctggctgtaatttccaccacggtcaggcagccagttccggcccacggttct"+"gttgtgtagacagcagagactttggagacccggatgtcgcacgccaggtgcaagaggtgg"+"gaatgggagaaaaggagtgacgtgggagcggagggtctgtatgtgtgcacttgggcacgt"+"atatgtgtgctctgaaggtcaggattgccagggcaaagtagcacagtctggtatagtctg"+"aagaagcggctgctcagctgcagaagccctctggtccggcaggatgggaacggctgcctt"+"gccttctgcccacaccctagggacatgagctgtccttccaaacagagctccaggcactct"+"cttggggacagcatggcaggctctgtgtggtagcagtgcctgggagttggccttttactc"+"attgttgaaataatttttgtttattatttatttaacgatacatatatttatatatttatc"+"aatggggtatctgcagggatgttttgacaccatcttccaggatggagattatttgtgaag"+"acttcagtagaatcccaggactaaacgtctaaattttttctccaaacttgactgacttgg"+"gaaaaccaggtgaatagaataagagctgaatgttttaagtaataaacgttcaaactgctc"+"taagtaaaaaaatgcattttactgcaatgaatttctagaatatttttcccccaaagctat"+"gcctcctaacccttaaatggtgaacaactggtttcttgctacagctcactgccatttctt"+"cttactatcatcactaggtttcctaagattcactcatacagtattatttgaagattcagc"+"tttgttctgtgaatgtcatcttaggattgtgtctatattcttttgcttatttctttttac"+"tctgggcctctcatactagtaagattttaaaaagccttttcttctctgtatgtttggctc"+"accaaggcgaaatatatattcttctctttttcatttctcaagaataaacctcatctgctt"+"ttttgtttttctgtgttttggcttggtactgaatgactcaactgctcggttttaaagttc"+"aaagtgtaagtacttagggttagtactgcttatttcaataatgttgacggtgactatctt"+"tggaaagcagtaacatgctgtcttagaaatgacattaataatgggcttaaacaaatgaat"+"aggggggtccccccactctccttttgtatgcctatgtgtgtctgatttgttaaaagatgg"+"acagggaattgattgcagagtgtcgcttccttctaaagtagttttattttgtctactgtt"+"agtatttaaagatcctggaggtggacataaggaataaatggaagagaaaagtagatattg"+"tatggtggctactaaaaggaaattcaaaaagtcttagaacccgagcacctgagcaaactg"+"cagtagtcaaaatatttatctcatgttaaagaaaggcaaatctagtgtaagaaatgagta"+"ccatatagggttttgaagttcatatactagaaacacttaaaagatatcatttcagatatt"+"acgtttggcattgttcttaagtatttatatctttgagtcaagctgataattaaaaaaaat"+"ctgttaatggagtgtatatttcataatgtatcaaaatggtgtctatacctaaggtagcat"+"tattgaagagagatatgtttatgtagtaagttattaacataatgagtaacaaataatgtt"+"tccagaagaaaggaaaacacattttcagagtgcgtttttatcagaggaagacaaaaatac"+"acacccctctccagtagcttatttttacaaagccggcccagtgaattagaaaaacaaagc"+"acttggatatgatttttggaaagcccaggtacacttattattcaaaatgcacttttactg");    Sequence s1 = new Sequence("Seq1a","ACTATACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC");    s1.reverseSequence();		seqs.add(s1);		seqs.add(s);//  seqs.add(new Sequence("Seq1b","ACTATACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));//  seqs.add(new Sequence("Seq2a","AAAAAACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));//  seqs.add(new Sequence("Seq3","ACTATACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));//  seqs.add(new Sequence("Seq4","AAAAAACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));//  seqs.add(new Sequence("Seq5","ACTATACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));//  seqs.add(new Sequence("Seq6","AAAAAACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));//  seqs.add(new Sequence("Seq111","ACTATACAGAGTAGACTgTATAGAtTATAAGCGACATACGAGAGACGAC"));		// System.out.println("GroutAlignJFrame main");		indents.add(new Integer(10));		indents.add(new Integer(0));    new GroutAlignJFrame(seqs, indents);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -