+ AlignFrame af = new AlignFrame(al);\r
+\r
+ if(hiddenSeqs!=null)\r
+ {\r
+ for(int s=0; s<JSEQ.length; s++)\r
+ {\r
+ for(int r=0; r<JSEQ[s].getHiddenSequencesCount(); r++)\r
+ {\r
+ al.getSequenceAt(s).addHiddenSequence(\r
+ al.getSequenceAt( JSEQ[s].getHiddenSequences(r) )\r
+ );\r
+ }\r
+ }\r
+\r
+ for(int s=0; s<hiddenSeqs.size(); s++)\r
+ {\r
+ af.viewport.hideSequence(\r
+ (jalview.datamodel.SequenceI)hiddenSeqs.elementAt(s));\r
+ }\r
+ }\r
+\r
+\r
+ if(hideConsensus || hideQuality || hideConservation)\r
+ {\r
+ int hSize = al.getAlignmentAnnotation().length;\r
+ for (int h = 0; h < hSize; h++)\r
+ {\r
+ if (\r
+ (hideConsensus &&\r
+ al.getAlignmentAnnotation()[h].label.equals("Consensus"))\r
+ ||\r
+ (hideQuality &&\r
+ al.getAlignmentAnnotation()[h].label.equals("Quality"))\r
+ ||\r
+ (hideConservation &&\r
+ al.getAlignmentAnnotation()[h].label.equals("Conservation")))\r
+ {\r
+ al.deleteAnnotation(al.getAlignmentAnnotation()[h]);\r
+ hSize--;\r
+ h--;\r
+ }\r
+ }\r
+ af.alignPanel.adjustAnnotationHeight();\r
+ }\r
+\r
+ af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),\r
+ view.getHeight());\r
+ af.viewport.setStartRes(view.getStartRes());\r
+ af.viewport.setStartSeq(view.getStartSeq());\r
+ af.viewport.setShowAnnotation(view.getShowAnnotation());\r
+ af.viewport.showConservation = view.getShowConservation();\r
+ af.viewport.showQuality = view.getShowQuality();\r
+ af.viewport.showIdentity = view.getShowIdentity();\r
+ af.viewport.setAbovePIDThreshold(view.getPidSelected());\r
+ af.abovePIDThreshold.setSelected(view.getPidSelected());\r
+ af.viewport.setColourText(view.getShowColourText());\r
+ af.colourTextMenuItem.setSelected(view.getShowColourText());\r
+ af.viewport.setConservationSelected(view.getConservationSelected());\r
+ af.conservationMenuItem.setSelected(view.getConservationSelected());\r
+\r
+ af.viewport.setShowJVSuffix(view.getShowFullId());\r
+ af.seqLimits.setSelected(view.getShowFullId());\r
+\r
+ af.viewport.setFont(new java.awt.Font(view.getFontName(),\r
+ view.getFontStyle(), view.getFontSize()));\r
+ af.alignPanel.fontChanged();\r
+\r
+ af.viewport.setRenderGaps(view.getRenderGaps());\r
+ af.renderGapsMenuItem.setSelected(view.getRenderGaps());\r
+\r
+ af.viewport.setWrapAlignment(view.getWrapAlignment());\r
+ af.wrapMenuItem.setSelected(view.getWrapAlignment());\r
+\r
+ af.alignPanel.setWrapAlignment(view.getWrapAlignment());\r
+\r
+ af.annotationPanelMenuItem.setState(view.getShowAnnotation());\r
+ af.viewport.setShowAnnotation(view.getShowAnnotation());\r
+ af.alignPanel.setAnnotationVisible(view.getShowAnnotation());\r
+\r
+ af.viewport.setShowBoxes(view.getShowBoxes());\r
+ af.viewBoxesMenuItem.setSelected(view.getShowBoxes());\r
+ af.viewport.setShowText(view.getShowText());\r
+ af.viewTextMenuItem.setSelected(view.getShowText());\r
+\r
+ ColourSchemeI cs = null;\r
+\r
+ if (view.getBgColour() != null)\r
+ {\r
+ if (view.getBgColour().startsWith("ucs"))\r
+ {\r
+ cs = GetUserColourScheme(jms, view.getBgColour());\r
+ }\r
+ else if(view.getBgColour().startsWith("Annotation"))\r
+ {\r
+ //int find annotation\r
+ for (int i = 0; i < af.viewport.alignment.getAlignmentAnnotation().length; i++)\r
+ {\r
+ if (af.viewport.alignment.getAlignmentAnnotation()[i].label.\r
+ equals(view.getAnnotationColours().getAnnotation()))\r
+ {\r
+ if (af.viewport.alignment.getAlignmentAnnotation()[i].\r
+ getThreshold() == null)\r
+ {\r
+ af.viewport.alignment.getAlignmentAnnotation()[i].\r
+ setThreshold(\r
+ new jalview.datamodel.GraphLine(\r
+ view.getAnnotationColours().getThreshold(),\r
+ "Threshold", java.awt.Color.black)\r
+\r
+ );\r
+ }\r
+\r
+\r
+ if (view.getAnnotationColours().getColourScheme().equals(\r
+ "None"))\r
+ {\r
+ cs = new AnnotationColourGradient(\r
+ af.viewport.alignment.getAlignmentAnnotation()[i],\r
+ new java.awt.Color(view.getAnnotationColours().\r
+ getMinColour()),\r
+ new java.awt.Color(view.getAnnotationColours().\r
+ getMaxColour()),\r
+ view.getAnnotationColours().getAboveThreshold());\r
+ }\r
+ else if (view.getAnnotationColours().getColourScheme().\r
+ startsWith("ucs"))\r
+ {\r
+ cs = new AnnotationColourGradient(\r
+ af.viewport.alignment.getAlignmentAnnotation()[i],\r
+ GetUserColourScheme(jms, view.getAnnotationColours().\r
+ getColourScheme()),\r
+ view.getAnnotationColours().getAboveThreshold()\r
+ );\r
+ }\r
+ else\r
+ {\r
+ cs = new AnnotationColourGradient(\r
+ af.viewport.alignment.getAlignmentAnnotation()[i],\r
+ ColourSchemeProperty.getColour(al,\r
+ view.getAnnotationColours().getColourScheme()),\r
+ view.getAnnotationColours().getAboveThreshold()\r
+ );\r
+ }\r
+\r
+ // Also use these settings for all the groups\r
+ if (al.getGroups() != null)\r
+ for (int g = 0; g < al.getGroups().size(); g++)\r
+ {\r
+ jalview.datamodel.SequenceGroup sg\r
+ = (jalview.datamodel.SequenceGroup)al.getGroups().elementAt(g);\r
+\r
+ if(sg.cs == null)\r
+ continue;\r
+\r
+\r
+ /* if (view.getAnnotationColours().getColourScheme().equals("None"))\r
+ {\r
+ sg.cs = new AnnotationColourGradient(\r
+ af.viewport.alignment.getAlignmentAnnotation()[i],\r
+ new java.awt.Color(view.getAnnotationColours().\r
+ getMinColour()),\r
+ new java.awt.Color(view.getAnnotationColours().\r
+ getMaxColour()),\r
+ view.getAnnotationColours().getAboveThreshold());\r
+ }\r
+ else*/\r
+ {\r
+ sg.cs = new AnnotationColourGradient(\r
+ af.viewport.alignment.getAlignmentAnnotation()[i],\r
+ sg.cs,\r
+ view.getAnnotationColours().getAboveThreshold()\r
+ );\r
+ }\r
+\r
+ }\r
+\r
+\r
+ break;\r
+ }\r
+\r
+ }\r
+ }\r
+ else\r
+ {\r
+ cs = ColourSchemeProperty.getColour(al, view.getBgColour());\r
+ }\r
+\r
+ if(cs!=null)\r
+ {\r
+ cs.setThreshold(view.getPidThreshold(), true);\r
+ cs.setConsensus(af.viewport.vconsensus);\r
+ }\r
+ }\r
+\r
+ af.setColourSelected(view.getBgColour());\r
+ af.viewport.setGlobalColourScheme(cs);\r
+ af.viewport.setColourAppliesToAllGroups(false);\r
+ af.changeColour(cs);\r
+ if (view.getConservationSelected() && cs!=null)\r
+ {\r
+ cs.setConservationInc(view.getConsThreshold());\r
+ }\r
+\r
+ af.viewport.setColourAppliesToAllGroups(true);\r
+\r
+ if (view.getShowSequenceFeatures())\r
+ {\r
+ af.viewport.showSequenceFeatures = true;\r
+ af.showSeqFeatures.setSelected(true);\r
+ }\r
+\r
+ if(jms.getFeatureSettings()!=null)\r
+ {\r
+ af.viewport.featuresDisplayed = new Hashtable();\r
+ String [] renderOrder = new String[jms.getFeatureSettings().getSettingCount()];\r
+ for(int fs=0; fs<jms.getFeatureSettings().getSettingCount(); fs++)\r
+ {\r
+ Setting setting = jms.getFeatureSettings().getSetting(fs);\r
+\r
+ af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setColour(setting.getType(),\r
+ new java.awt.Color(setting.getColour()));\r
+\r
+ renderOrder[fs] = setting.getType();\r
+\r
+ if(setting.getDisplay())\r
+ af.viewport.featuresDisplayed.put(\r
+ setting.getType(), new Integer(setting.getColour()));\r
+ }\r
+ af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().renderOrder = renderOrder;\r
+ }\r
+\r
+ if (view.getHiddenColumnsCount() > 0)\r
+ {\r
+ for (int c = 0; c < view.getHiddenColumnsCount(); c++)\r
+ {\r
+ af.viewport.hideColumns(\r
+ view.getHiddenColumns(c).getStart(),\r
+ view.getHiddenColumns(c).getEnd()+1\r
+ );\r
+ }\r
+ }\r
+\r
+\r
+ Desktop.addInternalFrame(af, view.getTitle(),\r
+ view.getWidth(), view.getHeight());\r
+\r
+ //LOAD TREES\r
+ ///////////////////////////////////////\r
+ if (jms.getTreeCount() > 0)\r
+ {\r
+ try\r
+ {\r
+ for (int t = 0; t < jms.getTreeCount(); t++)\r
+ {\r
+\r
+ Tree tree = jms.getTree(t);\r
+\r
+ TreePanel tp = af.ShowNewickTree(new jalview.io.NewickFile(\r
+ tree.getNewick()), tree.getTitle(),\r
+ tree.getWidth(), tree.getHeight(),\r
+ tree.getXpos(), tree.getYpos());\r
+\r
+ tp.fitToWindow.setState(tree.getFitToWindow());\r
+ tp.fitToWindow_actionPerformed(null);\r
+\r
+ if(tree.getFontName()!=null)\r
+ tp.setTreeFont(new java.awt.Font(tree.getFontName(),\r
+ tree.getFontStyle(),\r
+ tree.getFontSize()));\r
+ else\r
+ tp.setTreeFont(new java.awt.Font(view.getFontName(),\r
+ view.getFontStyle(),\r
+ tree.getFontSize()));\r
+\r
+ tp.showPlaceholders(tree.getMarkUnlinked());\r
+ tp.showBootstrap(tree.getShowBootstrap());\r
+ tp.showDistances(tree.getShowDistances());\r
+\r
+ tp.treeCanvas.threshold = tree.getThreshold();\r
+\r
+ if (tree.getCurrentTree())\r
+ af.viewport.setCurrentTree(tp.getTree());\r
+ }\r
+\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
+\r
+ }\r
+\r
+ return af;\r
+ }\r
+}\r