final AlignViewport viewport;\r
public static final int NEW_WINDOW_WIDTH = 700;\r
public static final int NEW_WINDOW_HEIGHT = 500;\r
+ public String currentFileFormat = "Jalview";\r
\r
public AlignFrame(AlignmentI al)\r
{\r
- try{\r
- String ip = java.net.InetAddress.getLocalHost().getHostAddress();\r
- if( !ip.startsWith("10."))\r
- alignMenu.setVisible(false);\r
- }\r
- catch(java.net.UnknownHostException e){}\r
- viewport = new AlignViewport(al,true,true,false);\r
-\r
- String fontName = jalview.bin.Cache.getProperty("FONT_NAME");\r
- String fontStyle= jalview.bin.Cache.getProperty("FONT_STYLE");\r
- String fontSize = jalview.bin.Cache.getProperty("FONT_SIZE");\r
- if(fontName!=null && fontStyle!=null && fontSize!=null)\r
- viewport.setFont( new Font(fontName,Integer.parseInt(fontStyle),Integer.parseInt(fontSize)) );\r
-\r
- // add conservation graph to alignment\r
- viewport.updateConservation();\r
- viewport.updateConsensus();\r
-\r
+ viewport = new AlignViewport(al);\r
\r
alignPanel = new AlignmentPanel(this, viewport);\r
-\r
alignPanel.annotationPanel.adjustPanelHeight();\r
alignPanel.annotationSpaceFillerHolder.setPreferredSize(alignPanel.annotationPanel.getPreferredSize());\r
alignPanel.annotationScroller.setPreferredSize(alignPanel.annotationPanel.getPreferredSize());\r
+ alignPanel.setAnnotationVisible( viewport.getShowAnnotation() );\r
\r
getContentPane().add(alignPanel, java.awt.BorderLayout.CENTER);\r
\r
-\r
addInternalFrameListener(new InternalFrameAdapter()\r
{\r
public void internalFrameActivated(InternalFrameEvent evt)\r
\r
}\r
\r
- protected void saveAs_actionPerformed(ActionEvent e)\r
+ public void saveAlignmentMenu_actionPerformed(ActionEvent e)\r
{\r
- String suffix [] = null;\r
- if(e.getActionCommand().equals("FASTA"))\r
- suffix = new String[]{"fa", "fasta"};\r
- else if(e.getActionCommand().equals("MSF"))\r
- suffix = new String[]{"msf"};\r
- else if(e.getActionCommand().equals("CLUSTAL"))\r
- suffix = new String[]{"aln"};\r
- else if(e.getActionCommand().equals("BLC"))\r
- suffix = new String[]{"blc"};\r
- else if(e.getActionCommand().equals("PIR"))\r
- suffix = new String[]{"pir"};\r
- else if(e.getActionCommand().equals("PFAM"))\r
- suffix = new String[]{"pfam"};\r
-\r
-\r
JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY")\r
- , suffix, e.getActionCommand()+" file");\r
+ , new String[]{"fa, fasta, fastq", "aln", "pfam", "msf", "pir","blc","jar"},\r
+ new String[]{"Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "Jalview"},\r
+ currentFileFormat);\r
+\r
+ chooser.setAcceptAllFileFilterUsed(false);\r
chooser.setFileView(new JalviewFileView());\r
- chooser.setDialogTitle("Save Alignment to file - "+e.getActionCommand() +" format.");\r
+ chooser.setDialogTitle("Save Alignment to file");\r
chooser.setToolTipText("Save");\r
int value = chooser.showSaveDialog(this);\r
if(value == JalviewFileChooser.APPROVE_OPTION)\r
{\r
+ currentFileFormat = chooser.getSelectedFormat();\r
+\r
+ if (currentFileFormat.equals("Jalview"))\r
+ {\r
+ String shortName = title.replace('/', '_');\r
+ title = title.replace('\\', '_');\r
+ String choice = chooser.getSelectedFile().getPath();\r
+ Jalview2XML.SaveState(this, System.currentTimeMillis(), shortName,\r
+ choice);\r
+ // USE Jalview2XML to save this file\r
+ return;\r
+ }\r
+\r
String choice = chooser.getSelectedFile().getPath();\r
jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);\r
- String output = FormatAdapter.get(e.getActionCommand(), viewport.getAlignment().getSequences());\r
+ String output = FormatAdapter.formatSequences(currentFileFormat, viewport.getAlignment().getSequences());\r
try{\r
java.io.PrintWriter out = new java.io.PrintWriter( new java.io.FileWriter( choice ) );\r
out.println(output);\r
cap.formatForOutput();\r
frame.setContentPane(cap);\r
Desktop.addInternalFrame(frame, "Alignment output - "+e.getActionCommand(), 600, 500);\r
- cap.setText( FormatAdapter.get(e.getActionCommand(), viewport.getAlignment().getSequences()));\r
+ cap.setText( FormatAdapter.formatSequences(e.getActionCommand(), viewport.getAlignment().getSequences()));\r
}\r
\r
protected void htmlMenuItem_actionPerformed(ActionEvent e)\r
\r
Stack historyList = new Stack();\r
Stack redoList = new Stack();\r
- JMenuBar jMenuBar1 = new JMenuBar();\r
\r
void updateEditMenuBar()\r
{\r
{\r
// must make sure we add new sequence objects her, not refs to the existing sequences\r
redoList.clear();\r
+\r
SequenceI[] seq = new SequenceI[viewport.getAlignment().getHeight()];\r
for(int i=0; i<viewport.getAlignment().getHeight(); i++)\r
{\r
viewport.getAlignment().getSequenceAt(i).getSequence());\r
}\r
\r
+\r
historyList.add(0, new Object[]{type, seq} );\r
updateEditMenuBar();\r
}\r
redoList.add(0, new Object[] {history[0], seq});\r
\r
seq = (SequenceI[]) history[1];\r
+ AlignmentAnnotation [] old = viewport.alignment.getAlignmentAnnotation();\r
viewport.setAlignment( new Alignment(seq) );\r
+ viewport.alignment.setGapCharacter( Preferences.gapSymbol );\r
updateEditMenuBar();\r
+ for(int i=0; i<old.length; i++)\r
+ viewport.alignment.addAnnotation(old[i]);\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
- alignPanel.RefreshPanels();\r
+ viewport.updateConservation();\r
+ alignPanel.repaint();\r
}\r
\r
public void moveSelectedSequences(boolean up)\r
}\r
}\r
\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
\r
SequenceI[] newSeqs = new SequenceI[seqs.size()];\r
seqs.toArray(newSeqs);\r
AlignFrame af = new AlignFrame(new Alignment(newSeqs));\r
- Desktop.addInternalFrame(af, "Copied sequences", NEW_WINDOW_WIDTH, NEW_WINDOW_HEIGHT);\r
+ String newtitle = new String("Copied sequences");\r
+ if( title.startsWith("Copied sequences"))\r
+ newtitle = title;\r
+ else\r
+ newtitle = newtitle.concat("- from "+title);\r
+\r
+ Desktop.addInternalFrame(af, newtitle, NEW_WINDOW_WIDTH, NEW_WINDOW_HEIGHT);\r
}\r
else\r
{\r
viewport.alignment.getWidth();\r
viewport.updateConservation();\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
}catch(Exception ex){}// could be anything being pasted in here\r
}catch(Exception ex){}\r
viewport.updateConservation();\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
\r
}\r
\r
Object [] history = (Object[])redoList.remove(0);\r
SequenceI[] seq = (SequenceI[]) history[1];\r
viewport.setAlignment( new Alignment(seq) );\r
+ viewport.alignment.setGapCharacter( Preferences.gapSymbol );\r
updateEditMenuBar();\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
+ alignPanel.repaint();\r
}\r
\r
\r
{\r
viewport.alignment.deleteAllGroups();\r
viewport.setSelectionGroup(null);\r
-\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
\r
public void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setSelectionGroup(null);\r
+ viewport.getColumnSelection().clear();\r
+ viewport.setSelectionGroup(null);\r
PaintRefresher.Refresh(null);\r
}\r
\r
PaintRefresher.Refresh(null);\r
}\r
\r
-\r
- public void deselectAllColumnsMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- viewport.getColumnSelection().clear();\r
- repaint();\r
- }\r
-\r
public void remove2LeftMenuItem_actionPerformed(ActionEvent e)\r
{\r
addHistoryItem("delete columns");\r
viewport.alignment.deleteGroup(sg);\r
}\r
\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
}\r
\r
\r
\r
\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
}\r
viewport.getAlignment().removeGaps();\r
viewport.updateConservation();\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void removeAllGapsMenuItem_actionPerformed(ActionEvent e)\r
}\r
viewport.updateConservation();\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
- public void setGapCharMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- char thisChar = '-';\r
- char nextChar = '.';\r
- if(viewport.getGapCharacter()=='-')\r
- {\r
- thisChar = '.';\r
- nextChar = '-';\r
- }\r
- setGapCharMenuItem.setText("Set gap character to \""+nextChar+"\"");\r
- viewport.setGapCharacter(thisChar);\r
- alignPanel.RefreshPanels();\r
- }\r
\r
public void findMenuItem_actionPerformed(ActionEvent e)\r
{\r
JInternalFrame frame = new JInternalFrame();\r
Finder finder = new Finder(viewport, alignPanel, frame);\r
frame.setContentPane(finder);\r
- Desktop.addInternalFrame(frame, "Find", 340,110, false);\r
+ Desktop.addInternalFrame(frame, "Find", 340,110);\r
frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
\r
}\r
\r
public void font_actionPerformed(ActionEvent e)\r
{\r
- JInternalFrame frame = new JInternalFrame();\r
- FontChooser fc = new FontChooser( alignPanel, frame );\r
- frame.setContentPane(fc);\r
- Desktop.addInternalFrame(frame, "Change Font", 480,100);\r
+ FontChooser fc = new FontChooser( alignPanel );\r
}\r
\r
protected void fullSeqId_actionPerformed(ActionEvent e)\r
viewport.setShowFullId( fullSeqId.isSelected() );\r
\r
alignPanel.idPanel.idCanvas.setPreferredSize( alignPanel.calculateIdWidth() );\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
protected void colourTextMenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setColourText( colourTextMenuItem.isSelected() );\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
protected void wrapMenuItem_actionPerformed(ActionEvent e)\r
scaleAbove.setVisible( wrapMenuItem.isSelected() );\r
scaleLeft.setVisible( wrapMenuItem.isSelected() );\r
scaleRight.setVisible( wrapMenuItem.isSelected() );\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
protected void scaleAbove_actionPerformed(ActionEvent e)\r
public void viewBoxesMenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setShowBoxes( viewBoxesMenuItem.isSelected() );\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void viewTextMenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setShowText( viewTextMenuItem.isSelected() );\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
\r
protected void renderGapsMenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setRenderGaps(renderGapsMenuItem.isSelected());\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void sequenceFeatures_actionPerformed(ActionEvent evt)\r
viewport.showSequenceFeatures(sequenceFeatures.isSelected());\r
if(viewport.showSequenceFeatures && !((Alignment)viewport.alignment).featuresAdded)\r
{\r
- AlignmentUtil.fetchSequenceFeatures( viewport.alignment , alignPanel);\r
+ SequenceFeatureFetcher sft = new SequenceFeatureFetcher(viewport.alignment, alignPanel);\r
((Alignment)viewport.alignment).featuresAdded = true;\r
}\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void annotationPanelMenuItem_actionPerformed(ActionEvent e)\r
return;\r
\r
JInternalFrame frame = new JInternalFrame();\r
- OverviewPanel overview = alignPanel.getOverviewPanel();\r
- try{\r
- overview = new OverviewPanel(alignPanel, viewport);\r
+ OverviewPanel overview = new OverviewPanel(alignPanel);\r
frame.setContentPane(overview);\r
Desktop.addInternalFrame(frame, "Overview " + this.getTitle(),\r
frame.getWidth(), frame.getHeight());\r
frame.pack();\r
+ frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()\r
{ public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt)\r
{\r
alignPanel.setOverviewPanel(null);\r
};\r
});\r
- alignPanel.setOverviewPanel( overview );\r
\r
- }catch(java.lang.OutOfMemoryError ex)\r
- {\r
- JOptionPane.showInternalMessageDialog(this, "Sequence alignment too large to\nproduce overview image!!"\r
- +"\nTry reducing the font size.",\r
- "Out of memory", JOptionPane.WARNING_MESSAGE);\r
- }\r
+ alignPanel.setOverviewPanel( overview );\r
\r
\r
}\r
\r
void changeColour(ColourSchemeI cs)\r
{\r
+ int threshold = 0;\r
\r
- if(viewport.getColourAppliesToAllGroups())\r
+ if ( viewport.getAbovePIDThreshold() )\r
{\r
- Vector groups = viewport.alignment.getGroups();\r
- for(int i=0; i<groups.size(); i++)\r
- {\r
- SequenceGroup sg = (SequenceGroup)groups.elementAt(i);\r
- sg.cs = cs;\r
+ threshold = SliderPanel.setPIDSliderSource(alignPanel, cs, "Background");\r
\r
- if(abovePIDThreshold.isSelected())\r
- abovePIDThreshold_actionPerformed(null);\r
- else if( viewport.getConservationSelected() )\r
- {\r
- Conservation c = new Conservation("Group",\r
- ResidueProperties.propHash, 3,\r
- sg.sequences, sg.getStartRes(),\r
- sg.getEndRes());\r
- c.calculate();\r
- c.verdict(false, viewport.ConsPercGaps);\r
- ConservationColourScheme ccs = new ConservationColourScheme(c, sg.cs);\r
- sg.cs = ccs;\r
- }\r
+ if (cs instanceof ResidueColourScheme)\r
+ ( (ResidueColourScheme) cs).setThreshold(threshold);\r
+ else if (cs instanceof ScoreColourScheme)\r
+ ( (ScoreColourScheme) cs).setThreshold(threshold);\r
\r
- }\r
+ viewport.setGlobalColourScheme(cs);\r
}\r
+ else if (cs instanceof ResidueColourScheme)\r
+ ( (ResidueColourScheme) cs).setThreshold(0);\r
+ else if (cs instanceof ScoreColourScheme)\r
+ ( (ScoreColourScheme) cs).setThreshold(0);\r
\r
\r
- if ( viewport.getAbovePIDThreshold() )\r
+\r
+ if (viewport.getConservationSelected())\r
{\r
- // int threshold = 0;\r
- // threshold = Desktop.setPIDSliderSource(alignPanel, cs, "Background");\r
- Desktop.hideConservationSlider();\r
+ ConservationColourScheme ccs = null;\r
\r
- // if (cs instanceof ResidueColourScheme)\r
- // ( (ResidueColourScheme) cs).setThreshold(threshold);\r
- // else if (cs instanceof ScoreColourScheme)\r
- // ( (ScoreColourScheme) cs).setThreshold(threshold);\r
+ Alignment al = (Alignment) viewport.alignment;\r
+ Conservation c = new Conservation("All",\r
+ ResidueProperties.propHash, 3,\r
+ al.getSequences(), 0,\r
+ al.getWidth() - 1);\r
\r
- viewport.setGlobalColourScheme(cs);\r
+ c.calculate();\r
+ c.verdict(false, viewport.ConsPercGaps);\r
+\r
+ ccs = new ConservationColourScheme(c, cs);\r
+\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ ccs.setConsensus( viewport.vconsensus );\r
+ viewport.setGlobalColourScheme(ccs);\r
+\r
+ SliderPanel.setConservationSlider(alignPanel, ccs, "Background");\r
\r
}\r
else\r
- if (cs instanceof ResidueColourScheme)\r
- ( (ResidueColourScheme) cs).setThreshold(0);\r
- else if (cs instanceof ScoreColourScheme)\r
- ( (ScoreColourScheme) cs).setThreshold(0);\r
-\r
+ {\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ if (cs != null)\r
+ cs.setConsensus(viewport.vconsensus);\r
+ viewport.setGlobalColourScheme(cs);\r
+ }\r
\r
\r
+ if(viewport.getColourAppliesToAllGroups())\r
+ {\r
+ Vector groups = viewport.alignment.getGroups();\r
+ for(int i=0; i<groups.size(); i++)\r
+ {\r
+ SequenceGroup sg = (SequenceGroup)groups.elementAt(i);\r
\r
-if ( viewport.getConservationSelected() )\r
- {\r
- ConservationColourScheme ccs = null;\r
+ if (cs instanceof ClustalxColourScheme)\r
+ {\r
+ sg.cs = new ClustalxColourScheme(sg.sequences, sg.getWidth());\r
+ }\r
+ else if(cs!=null)\r
+ {\r
+ try{\r
+ sg.cs = (ColourSchemeI) cs.getClass().newInstance();\r
+ }catch(Exception ex){ex.printStackTrace();}\r
+ }\r
\r
- Alignment al = (Alignment) viewport.alignment;\r
- Conservation c = new Conservation("All",\r
- ResidueProperties.propHash, 3,\r
- al.getSequences(), 0,\r
- al.getWidth()-1);\r
+ if(viewport.getAbovePIDThreshold())\r
+ {\r
+ if (sg.cs instanceof ResidueColourScheme)\r
+ ( (ResidueColourScheme) sg.cs).setThreshold(threshold);\r
+ else if (sg.cs instanceof ScoreColourScheme)\r
+ ( (ScoreColourScheme) sg.cs).setThreshold(threshold);\r
\r
- c.calculate();\r
- c.verdict(false, viewport.ConsPercGaps);\r
+ sg.cs.setConsensus( AAFrequency.calculate(sg.sequences, 0, sg.getWidth()) );\r
+ }\r
\r
- ccs = new ConservationColourScheme(c, cs);\r
+ if( viewport.getConservationSelected() )\r
+ {\r
+ Conservation c = new Conservation("Group",\r
+ ResidueProperties.propHash, 3,\r
+ sg.sequences, 0, viewport.alignment.getWidth()-1);\r
+ c.calculate();\r
+ c.verdict(false, viewport.ConsPercGaps);\r
+ ConservationColourScheme ccs = new ConservationColourScheme(c, sg.cs);\r
\r
- viewport.setGlobalColourScheme(ccs);\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ ccs.setConsensus( AAFrequency.calculate(sg.sequences, 0, sg.getWidth()));\r
+ sg.cs = ccs;\r
+ }\r
+ else if(cs!=null)\r
+ {\r
+ // MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
+ sg.cs.setConsensus(AAFrequency.calculate(sg.sequences, 0, sg.getWidth()));\r
+ }\r
\r
- }\r
- else\r
- viewport.setGlobalColourScheme( cs );\r
+ }\r
+ }\r
\r
- alignPanel.RefreshPanels();\r
+ if(alignPanel.getOverviewPanel()!=null)\r
+ alignPanel.getOverviewPanel().updateOverviewImage();\r
+ alignPanel.repaint();\r
}\r
\r
protected void modifyPID_actionPerformed(ActionEvent e)\r
{\r
- if(viewport.getAbovePIDThreshold())\r
- Desktop.setPIDSliderSource(alignPanel, viewport.getGlobalColourScheme(), "Background");\r
+ if(viewport.getAbovePIDThreshold())\r
+ {\r
+ SliderPanel.setPIDSliderSource(alignPanel, viewport.getGlobalColourScheme(),\r
+ "Background");\r
+ SliderPanel.showPIDSlider();\r
+ }\r
}\r
\r
protected void modifyConservation_actionPerformed(ActionEvent e)\r
{\r
if(viewport.getConservationSelected())\r
- Desktop.setConservationSliderSource(alignPanel, viewport.globalColourScheme, "Background");\r
+ {\r
+ SliderPanel.setConservationSlider(alignPanel, viewport.globalColourScheme,\r
+ "Background");\r
+ SliderPanel.showConservationSlider();\r
+ }\r
}\r
\r
\r
protected void conservationMenuItem_actionPerformed(ActionEvent e)\r
{\r
viewport.setConservationSelected(conservationMenuItem.isSelected());\r
- if(coloursChanging)\r
- return;\r
-\r
- coloursChanging = true;\r
\r
viewport.setAbovePIDThreshold(false);\r
abovePIDThreshold.setSelected(false);\r
- Desktop.hidePIDSlider();\r
- if(!viewport.getConservationSelected())\r
- Desktop.hideConservationSlider();\r
\r
ColourSchemeI cs = viewport.getGlobalColourScheme();\r
if(cs instanceof ConservationColourScheme )\r
else\r
changeColour( cs );\r
\r
- coloursChanging = false;\r
+ modifyConservation_actionPerformed(null);\r
}\r
\r
- boolean coloursChanging = false;\r
public void abovePIDThreshold_actionPerformed(ActionEvent e)\r
{\r
- if(coloursChanging)\r
- return;\r
-\r
- coloursChanging = true;\r
viewport.setAbovePIDThreshold(abovePIDThreshold.isSelected());\r
\r
conservationMenuItem.setSelected(false);\r
viewport.setConservationSelected(false);\r
- Desktop.hideConservationSlider();\r
-\r
- if(!viewport.getAbovePIDThreshold())\r
- Desktop.hidePIDSlider();\r
-\r
\r
ColourSchemeI cs = viewport.getGlobalColourScheme();\r
+\r
if(cs instanceof ConservationColourScheme )\r
changeColour( ((ConservationColourScheme)cs).cs );\r
else\r
changeColour( cs );\r
\r
- coloursChanging = false;\r
+ modifyPID_actionPerformed(null);\r
}\r
\r
\r
\r
public void userDefinedColour_actionPerformed(ActionEvent e)\r
{\r
- JInternalFrame frame = new JInternalFrame();\r
- UserDefinedColours chooser = new UserDefinedColours( frame, alignPanel, null);\r
- frame.setContentPane(chooser);\r
- Desktop.addInternalFrame(frame,"User defined colours", 450,540, false );\r
+ UserDefinedColours chooser = new UserDefinedColours( alignPanel, null);\r
}\r
\r
public void PIDColour_actionPerformed(ActionEvent e)\r
\r
public void BLOSUM62Colour_actionPerformed(ActionEvent e)\r
{\r
- changeColour(new Blosum62ColourScheme(viewport) );\r
+ changeColour(new Blosum62ColourScheme() );\r
}\r
\r
\r
{\r
addHistoryItem("sort");\r
AlignmentSorter.sortByPID(viewport.getAlignment(), viewport.getAlignment().getSequenceAt(0));\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void sortIDMenuItem_actionPerformed(ActionEvent e)\r
{\r
addHistoryItem("sort");\r
AlignmentSorter.sortByID( viewport.getAlignment() );\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void sortGroupMenuItem_actionPerformed(ActionEvent e)\r
addHistoryItem("sort");\r
AlignmentSorter.sortByGroup(viewport.getAlignment());\r
AlignmentSorter.sortGroups(viewport.getAlignment());\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
\r
public void removeRedundancyMenuItem_actionPerformed(ActionEvent e)\r
{\r
addHistoryItem("sort");\r
AlignmentSorter.sortByTree(viewport.getAlignment(), treePanel.getTree());\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
}\r
});\r
\r
\r
}\r
}\r
+ protected void msaAlignMenuItem_actionPerformed(ActionEvent e)\r
+ {\r
+ // TODO:resolve which menu item was actually selected\r
+ // Now, check we have enough sequences\r
+ if (viewport.getSelectionGroup() != null && viewport.getSelectionGroup().getSize()>1)\r
+ {\r
+ // JBPNote UGLY! To prettify, make SequenceGroup and Alignment conform to some common interface!\r
+ SequenceGroup seqs = viewport.getSelectionGroup();\r
+ int sz;\r
+ SequenceI[] msa = new SequenceI[sz=seqs.getSize()];\r
+ for (int i = 0; i < sz; i++)\r
+ {\r
+ msa[i] = (SequenceI) seqs.getSequenceAt(i);\r
+ }\r
+\r
+ MsaWSClient ct = new jalview.ws.MsaWSClient(msa);\r
+ }\r
+ else\r
+ {\r
+ Vector seqs = viewport.getAlignment().getSequences();\r
+\r
+ if (seqs.size() > 1) {\r
+ SequenceI[] msa = new SequenceI[seqs.size()];\r
+ for (int i = 0; i < seqs.size(); i++)\r
+ {\r
+ msa[i] = (SequenceI) seqs.elementAt(i);\r
+ }\r
+\r
+ MsaWSClient ct = new MsaWSClient(msa);\r
+ }\r
+\r
+ }\r
+ }\r
\r
protected void LoadtreeMenuItem_actionPerformed(ActionEvent e) {\r
// Pick the tree file\r
{\r
String choice = chooser.getSelectedFile().getPath();\r
jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);\r
- TreePanel treepanel = null;\r
try\r
{\r
jalview.io.NewickFile fin = new jalview.io.NewickFile(choice, "File");\r
- fin.parse();\r
-\r
- if (fin.getTree() != null)\r
- {\r
- TreePanel tp = null;\r
- tp = new TreePanel(viewport, viewport.getAlignment().getSequences(),\r
- fin, "FromFile", choice);\r
- Desktop.addInternalFrame(tp, title, 600, 500);\r
- addTreeMenuItem(tp, title);\r
- }\r
+ ShowNewickTree(fin, choice);\r
}\r
catch (Exception ex)\r
{\r
}\r
}\r
\r
+ public void ShowNewickTree(NewickFile nf, String title)\r
+ {\r
+ try{\r
+ nf.parse();\r
+ if (nf.getTree() != null)\r
+ {\r
+ TreePanel tp = new TreePanel(viewport,\r
+ viewport.getAlignment().getSequences(),\r
+ nf, "FromFile", title);\r
+ Desktop.addInternalFrame(tp, title, 600, 500);\r
+ addTreeMenuItem(tp, title);\r
+ viewport.setCurrentTree(tp.getTree());\r
+ }\r
+ }catch(Exception ex){ex.printStackTrace();}\r
+ }\r
+\r
+\r
}\r