try{\r
String ip = java.net.InetAddress.getLocalHost().getHostAddress();\r
if( !ip.startsWith("10."))\r
- alignMenu.setVisible(false);\r
+ webService.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
+ viewport = new AlignViewport(al);\r
\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
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(e.getActionCommand(), 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
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
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
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
viewport.setAlignment( new Alignment(seq) );\r
updateEditMenuBar();\r
viewport.updateConsensus();\r
- alignPanel.RefreshPanels();\r
- alignPanel.RefreshPanels();\r
+ alignPanel.repaint();\r
+ alignPanel.repaint();\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
\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
- frame.setLayer(JLayeredPane.PALETTE_LAYER);\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
ccs.setConsensus( viewport.vconsensus );\r
viewport.setGlobalColourScheme(ccs);\r
\r
+ SliderPanel.setConservationSlider(alignPanel, ccs, "Background");\r
+\r
}\r
else\r
{\r
// MUST NOTIFY THE COLOURSCHEME OF CONSENSUS!\r
- cs.setConsensus( viewport.vconsensus );\r
- viewport.setGlobalColourScheme(cs);\r
+ if (cs != null)\r
+ cs.setConsensus(viewport.vconsensus);\r
+ viewport.setGlobalColourScheme(cs);\r
}\r
\r
\r
{\r
SequenceGroup sg = (SequenceGroup)groups.elementAt(i);\r
\r
-\r
- try{\r
- sg.cs = (ColourSchemeI)cs.getClass().newInstance();\r
- }catch(Exception ex){}\r
+ if (cs instanceof ClustalxColourScheme)\r
+ {\r
+ sg.cs = new ClustalxColourScheme(sg.sequences, sg.getWidth());\r
+ }\r
+ else\r
+ try\r
+ {\r
+ sg.cs = (ColourSchemeI) cs.getClass().newInstance();\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ sg.cs = cs;\r
+ }\r
\r
if(viewport.getAbovePIDThreshold())\r
{\r
}\r
}\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
else\r
changeColour( cs );\r
\r
+ modifyConservation_actionPerformed(null);\r
}\r
\r
- // boolean coloursChanging = false;\r
public void abovePIDThreshold_actionPerformed(ActionEvent e)\r
{\r
viewport.setAbovePIDThreshold(abovePIDThreshold.isSelected());\r
changeColour( ((ConservationColourScheme)cs).cs );\r
else\r
changeColour( cs );\r
+\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
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