+\r
+ AlignFrame af = new AlignFrame(al);\r
+ Desktop.addInternalFrame(af, "Translation of "+this.getTitle(),\r
+ NEW_WINDOW_WIDTH,\r
+ NEW_WINDOW_HEIGHT);\r
+\r
+\r
+ // AlignViewport newViewport = new AlignViewport(al);\r
+ // AlignmentPanel ap = new AlignmentPanel(this, newViewport);\r
+ // tabbedPane.add("Protein", ap);\r
+ // viewports.add(newViewport);\r
+ // alignPanels.add(ap);\r
+\r
+ ///Dataset tab\r
+ /////////////////////////\r
+\r
+ // AlignViewport ds = new AlignViewport(al.getDataset());\r
+ // ds.setDataset(true);\r
+ // AlignmentPanel dap = new AlignmentPanel(this, ds);\r
+ // tabbedPane.add("Dataset", dap);\r
+ // viewports.add(ds);\r
+ // alignPanels.add(dap);\r
+ /////////////////////////\r
+\r
+\r
+}\r
+\r
+/*public void tabSelected()\r
+ {\r
+ int index = tabbedPane.getSelectedIndex();\r
+ viewport = (AlignViewport)viewports.elementAt(index);\r
+ alignPanel = (AlignmentPanel)alignPanels.elementAt(index);\r
+ }*/\r
+\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param String DOCUMENT ME!\r
+ */\r
+public boolean parseGroupsFile(String file)\r
+{\r
+ String line = null;\r
+ try\r
+ {\r
+ BufferedReader in = new BufferedReader(new FileReader(file));\r
+ SequenceI seq = null;\r
+ String type, desc, token;\r
+\r
+ int index, start, end;\r
+ StringTokenizer st;\r
+ SequenceFeature sf;\r
+ int lineNo = 0;\r
+ String featureGroup = null;\r
+ while ( (line = in.readLine()) != null)\r
+ {\r
+ lineNo++;\r
+ st = new StringTokenizer(line, "\t");\r
+ if (st.countTokens() == 2)\r
+ {\r
+ type = st.nextToken();\r
+ if (type.equalsIgnoreCase("startgroup"))\r
+ {\r
+ featureGroup = st.nextToken();\r
+ }\r
+ else if (type.equalsIgnoreCase("endgroup"))\r
+ {\r
+ //We should check whether this is the current group,\r
+ //but at present theres no way of showing more than 1 group\r
+ st.nextToken();\r
+ featureGroup = null;\r
+ }\r
+ else\r
+ {\r
+ UserColourScheme ucs = new UserColourScheme(st.nextToken());\r
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setColour(type,\r
+ ucs.findColour("A"));\r
+ }\r
+ continue;\r
+ }\r
+\r
+ while (st.hasMoreElements())\r
+ {\r
+ desc = st.nextToken();\r
+ token = st.nextToken();\r
+ if (!token.equals("ID_NOT_SPECIFIED"))\r
+ {\r
+ index = viewport.alignment.findIndex(viewport.alignment.findName(token));\r
+ st.nextToken();\r
+ }\r
+ else\r
+ {\r
+ index = Integer.parseInt(st.nextToken());\r
+ }\r
+\r
+ start = Integer.parseInt(st.nextToken());\r
+ end = Integer.parseInt(st.nextToken());\r
+\r
+ seq = viewport.alignment.getSequenceAt(index);\r
+\r
+ type = st.nextToken();\r
+\r
+ if (alignPanel.seqPanel.seqCanvas.getFeatureRenderer().getColour(type) == null)\r
+ {\r
+ // Probably the old style groups file\r
+ UserColourScheme ucs = new UserColourScheme(type);\r
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setColour(type, ucs.findColour("A"));\r
+ }\r
+\r
+ sf = new SequenceFeature(type, desc, "", start, end, featureGroup);\r
+\r
+ seq.getDatasetSequence().addSequenceFeature(sf);\r
+ }\r
+ }\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ System.out.println(line);\r
+ ex.printStackTrace();\r
+ System.out.println("Error parsing groups file: " + ex +"\n"+line);\r
+ return false;\r
+ }\r
+\r
+ viewport.showSequenceFeatures = true;\r
+ showSeqFeatures.setSelected(true);\r
+ alignPanel.repaint();\r
+ return true;\r