X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=6e2d32b3c8f11a57ca244213b51b0bb043374a6c;hb=d429962a1e4d2413e0c18fd88227cffee8bfa502;hp=289e7611bf83c9e565ba4d07ae052fbe52c5e775;hpb=9344c308a62c48e2ddedd12247edab74e581c2e7;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 289e761..6e2d32b 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -29,18 +29,19 @@ import java.awt.event.*; import java.util.*; import java.io.InputStreamReader; import java.io.BufferedReader; +import java.net.URL; public class AlignFrame extends GAlignFrame { final AlignmentPanel alignPanel; final AlignViewport viewport; - public static final int NEW_WINDOW_WIDTH = 700; - public static final int NEW_WINDOW_HEIGHT = 500; + int NEW_WINDOW_WIDTH = 700; + int NEW_WINDOW_HEIGHT = 500; jalview.bin.JalviewLite applet; - public AlignFrame(AlignmentI al, jalview.bin.JalviewLite applet) + public AlignFrame(AlignmentI al, jalview.bin.JalviewLite applet, String title) { this.applet = applet; viewport = new AlignViewport(al, applet); @@ -55,7 +56,6 @@ public class AlignFrame { try { - treeFile = treeFile; jalview.io.NewickFile fin = new jalview.io.NewickFile(applet. getCodeBase() + treeFile, "URL"); fin.parse(); @@ -83,6 +83,35 @@ public class AlignFrame else if (param.equalsIgnoreCase("Pairwise Identity")) sortPairwiseMenuItem_actionPerformed(null); } + + param = applet.getParameter("wrap"); + if (param != null) + { + if (param.equalsIgnoreCase("true")) + { + wrapMenuItem.setState(true); + wrapMenuItem_actionPerformed(null); + } + } + + try + { + param = applet.getParameter("windowWidth"); + if (param != null) + { + int width = Integer.parseInt(param); + NEW_WINDOW_WIDTH = width; + } + param = applet.getParameter("windowHeight"); + if (param != null) + { + int height = Integer.parseInt(param); + NEW_WINDOW_HEIGHT = height; + } + } + catch (Exception ex) + {} + } this.addWindowListener(new WindowAdapter() @@ -103,8 +132,98 @@ public class AlignFrame } } }); + + jalview.bin.JalviewLite.addFrame(this, title, + NEW_WINDOW_WIDTH, + NEW_WINDOW_HEIGHT); + + } + + /** + * DOCUMENT ME! + * + * @param String DOCUMENT ME! + */ + + public void parseFeaturesFile(String file) + { + try + { + URL url = new URL(file); + + BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); + SequenceI seq = null; + String line, type, desc, token; + + int index, start, end; + StringTokenizer st; + SequenceFeature sf; + FeatureRenderer fr = alignPanel.seqPanel.seqCanvas.getFeatureRenderer(); + int lineNo = 0; + while ( (line = in.readLine()) != null) + { + lineNo++; + st = new StringTokenizer(line, "\t"); + if (st.countTokens() == 2) + { + type = st.nextToken(); + UserColourScheme ucs = new UserColourScheme(st.nextToken()); + fr.setColour(type, ucs.findColour("A")); + continue; + } + + while (st.hasMoreElements()) + { + desc = st.nextToken(); + token = st.nextToken(); + if (!token.equals("ID_NOT_SPECIFIED")) + { + index = viewport.alignment.findIndex(viewport.alignment.findName( + token)); + st.nextToken(); + } + else + { + index = Integer.parseInt(st.nextToken()); + } + + start = Integer.parseInt(st.nextToken()); + end = Integer.parseInt(st.nextToken()); + + seq = viewport.alignment.getSequenceAt(index); + start = seq.findIndex(start) - 1; + end = seq.findIndex(end) - 1; + + type = st.nextToken(); + + if(fr.getColour(type)==null) + { + // Probably the old style groups file + UserColourScheme ucs = new UserColourScheme(type); + fr.setColour(type, ucs.findColour("A")); + } + + sf = new SequenceFeature(type, desc, "", start, end); + + seq.addSequenceFeature(sf); + } + } + + viewport.showSequenceFeatures = true; + ((Alignment)viewport.alignment).featuresAdded = true; + + alignPanel.repaint(); + + } + catch (Exception ex) + { + System.out.println("Error parsing groups file: " + ex); + } + } + + public void inputText_actionPerformed(ActionEvent e) { CutAndPasteTransfer cap = new CutAndPasteTransfer(true, applet); @@ -121,9 +240,10 @@ public class AlignFrame jalview.bin.JalviewLite.addFrame(frame, "Alignment output - " + e.getActionCommand(), 600, 500); - cap.setText(FormatAdapter.formatSequences(e.getActionCommand(), - viewport.getAlignment(). - getSequences())); + cap.setText(new AppletFormatAdapter().formatSequences(e.getActionCommand(), + viewport.getAlignment().getSequences(), + viewport.showDBPrefix, + viewport.showJVSuffix)); } public void closeMenuItem_actionPerformed(ActionEvent e) @@ -402,7 +522,6 @@ public class AlignFrame newSeqs[i] = (SequenceI) seqs.elementAt(i); } - AlignFrame af = new AlignFrame(new Alignment(newSeqs), applet); String newtitle = new String("Copied sequences"); if (getTitle().startsWith("Copied sequences")) { @@ -412,6 +531,8 @@ public class AlignFrame { newtitle = newtitle.concat("- from " + getTitle()); } + AlignFrame af = new AlignFrame(new Alignment(newSeqs), applet, newtitle); + jalview.bin.JalviewLite.addFrame(af, newtitle, NEW_WINDOW_WIDTH, NEW_WINDOW_HEIGHT); } @@ -735,25 +856,29 @@ public class AlignFrame public void findMenuItem_actionPerformed(ActionEvent e) { - Finder finder = new Finder(alignPanel); + new Finder(alignPanel); } public void font_actionPerformed(ActionEvent e) { - Frame frame = new Frame(); - FontChooser fc = new FontChooser(alignPanel, frame); - frame.add(fc); - jalview.bin.JalviewLite.addFrame(frame, "Change Font", 440, 100); + new FontChooser(alignPanel); + } + public void dbref_actionPerformed(ItemEvent e) + { + viewport.showDBPrefix = dbref.getState(); + alignPanel.fontChanged(); + alignPanel.repaint(); } - protected void fullSeqId_actionPerformed(ActionEvent e) + public void seqLimits_itemStateChanged(ItemEvent e) { - viewport.setShowFullId(fullSeqId.getState()); + viewport.setShowJVSuffix(seqLimits.getState()); alignPanel.fontChanged(); alignPanel.repaint(); } + protected void colourTextMenuItem_actionPerformed(ActionEvent e) { viewport.setColourText(colourTextMenuItem.getState()); @@ -808,11 +933,6 @@ public class AlignFrame public void annotationPanelMenuItem_actionPerformed(ActionEvent e) { - if (annotationPanelMenuItem.getState() && viewport.getWrapAlignment()) - { - annotationPanelMenuItem.setState(false); - return; - } viewport.setShowAnnotation(annotationPanelMenuItem.getState()); alignPanel.setAnnotationVisible(annotationPanelMenuItem.getState()); } @@ -1064,7 +1184,7 @@ public class AlignFrame public void userDefinedColour_actionPerformed(ActionEvent e) { - UserDefinedColours chooser = new UserDefinedColours(alignPanel, null); + new UserDefinedColours(alignPanel, null); } public void PIDColour_actionPerformed(ActionEvent e) @@ -1125,6 +1245,24 @@ public class AlignFrame public void PCAMenuItem_actionPerformed(ActionEvent e) { + //are the sequences aligned? + if (!viewport.alignment.isAligned()) + { + SequenceI current; + int Width = viewport.getAlignment().getWidth(); + + for (int i = 0; i < viewport.getAlignment().getSequences().size(); + i++) + { + current = viewport.getAlignment().getSequenceAt(i); + + if (current.getLength() < Width) + { + current.insertCharAt(Width - 1, viewport.getGapCharacter()); + } + } + alignPanel.repaint(); + } if ( (viewport.getSelectionGroup() != null && viewport.getSelectionGroup().getSize() < 4 && @@ -1136,11 +1274,7 @@ public class AlignFrame try { - PCAPanel pcaPanel = new PCAPanel(viewport, null); - Frame frame = new Frame(); - frame.add(pcaPanel); - jalview.bin.JalviewLite.addFrame(frame, "Principal component analysis", - 400, 400); + new PCAPanel(viewport); } catch (java.lang.OutOfMemoryError ex) { @@ -1235,7 +1369,7 @@ public class AlignFrame protected void documentation_actionPerformed(ActionEvent e) { - jalview.bin.JalviewLite.showURL("http://www.jalview.org/help.html"); + showURL("http://www.jalview.org/help.html"); } protected void about_actionPerformed(ActionEvent e) @@ -1302,4 +1436,36 @@ public class AlignFrame jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 200); } + + /** + * Displays the given URL in a new browser window + * + * @param url URL to display in browser window. + *
New window will be named "HELP_WINDOW" + */ + public void showURL(String url) + { + showURL(url, "HELP"); + } + + public void showURL(String url, String target) + { + if (applet == null) + { + System.out.println("Not running as applet - no browser available."); + } + else + { + try + { + applet.getAppletContext().showDocument(new java.net.URL(url), + target); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + } + }