package edu.sdsc.plantsp.vis; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.awt.List; import java.awt.Scrollbar; import edu.sdsc.plantsp.*; import java.io.*; import java.net.*; import edu.sdsc.plantsp.model.*; import edu.sdsc.plantsp.util.*; public class ExonController extends JPanel implements ExonControllerInterface { private int mode_=0; private static int createNew=2; private static int modifyExisting=1; private ArrayList exonList = new ArrayList(); private sequenceViewer dnaSeqViewer_; private ExonViewerInterface eviewer; private ExonProteinViewerInterface epviewer; private String BPseq; private String Target; private ArrayList seqs = new ArrayList(); private ArrayList exons = new ArrayList(); private JPanel jp = new JPanel(); private JScrollPane scrollPane; private URL codeBase_; private URL documentBase_; private String serverPath_; private static boolean reduceZoom = true; private static boolean increaseZoom = true; public ExonController(Component evSibling, Component avSibling) { eviewer = (ExonViewerInterface)evSibling; epviewer = (ExonProteinViewerInterface)avSibling; jp.setBackground(Color.white); jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS)); scrollPane = new JScrollPane(jp); this.setLayout(new BorderLayout()); this.add(scrollPane, BorderLayout.CENTER); } public void initialize() { buildModel(); String[] AA = new String[3]; char[] sequence = BPseq.toCharArray(); for (int offset=0; offset<3; offset++) { StringBuffer result = BaseToProtein.translateBaseSequenceToProtein(sequence, offset, '.'); AA[offset] = result.toString(); } eviewer.updateExons(exons, 0); for (int offset=0; offset<3; offset++) { seqs.add(new sequenceViewer(this, AA[offset])); } dnaSeqViewer_ = new sequenceViewer(this, BPseq); seqs.add(dnaSeqViewer_); // Setup AlignmentViewer epviewer.setTargetProtein(Target); epviewer.updateModel(getExonProtein()); epviewer.buildModel(); sequenceViewer tmp; for (int i=0; i