boolean embedded)\r
{\r
\r
- jalviewServletURL = applet.getParameter("APPLICATION_URL");\r
+ if (applet != null)\r
+ jalviewServletURL = applet.getParameter("APPLICATION_URL");\r
\r
try{\r
jbInit();\r
loadTree_actionPerformed();\r
else if(source==loadApplication)\r
launchFullApplication();\r
+ else if (source == loadAnnotations)\r
+ loadAnnotations();\r
+ else if (source == outputAnnotations)\r
+ outputAnnotations();\r
+ else if(source == outputFeatures)\r
+ outputFeatures();\r
else if(source==closeMenuItem)\r
closeMenuItem_actionPerformed();\r
else if(source==copy)\r
viewport.showJVSuffix));\r
}\r
\r
+ public void loadAnnotations()\r
+ {\r
+ CutAndPasteTransfer cap = new CutAndPasteTransfer(true, this);\r
+ cap.setText("Paste your features / annotations file here.");\r
+ cap.setAnnotationImport();\r
+ Frame frame = new Frame();\r
+ frame.add(cap);\r
+ jalview.bin.JalviewLite.addFrame(frame, "Paste Annotations ", 400, 300);\r
+\r
+ }\r
+\r
+ public void outputAnnotations()\r
+ {\r
+ CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
+ Frame frame = new Frame();\r
+ frame.add(cap);\r
+ jalview.bin.JalviewLite.addFrame(frame,\r
+ "Annotations",\r
+ 600, 500);\r
+ cap.setText( new AnnotationFile().printAnnotations(\r
+ viewport.alignment.getAlignmentAnnotation() ) );\r
+ }\r
+\r
+ public void outputFeatures()\r
+ {\r
+ CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
+ Frame frame = new Frame();\r
+ frame.add(cap);\r
+ jalview.bin.JalviewLite.addFrame(frame,\r
+ "Features",\r
+ 600, 500);\r
+\r
+ cap.setText(new FeaturesFile().printJalviewFormat(\r
+ viewport.alignment.getSequencesArray(),\r
+ viewport.featuresDisplayed));\r
+ }\r
+\r
void launchFullApplication()\r
{\r
StringBuffer url = new StringBuffer(jalviewServletURL);\r
\r
originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;\r
updateEditMenuBar();\r
- originalSource.firePropertyChange("alignment", null,null);\r
+ originalSource.firePropertyChange("alignment", null,originalSource.alignment.getSequences());\r
}\r
\r
/**\r
originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns()!=null;\r
\r
updateEditMenuBar();\r
- originalSource.firePropertyChange("alignment", null, null);\r
+ originalSource.firePropertyChange("alignment", null, originalSource.alignment.getSequences());\r
}\r
\r
AlignViewport getOriginatingSource(CommandI command)\r
//For sequence removal and addition, we need to fire\r
//the property change event FROM the viewport where the\r
//original alignment was altered\r
+ AlignmentI al = null;\r
if (command instanceof EditCommand)\r
{\r
EditCommand editCommand = (EditCommand) command;\r
- AlignmentI al = editCommand.getAlignment();\r
+ al = editCommand.getAlignment();\r
Vector comps = (Vector) PaintRefresher.components\r
.get(viewport.getSequenceSetId());\r
for (int i = 0; i < comps.size(); i++)\r
}\r
}\r
}\r
- if (originalSource == null && al!=null)\r
- {\r
- //The original view is closed, we must validate\r
- //the current view against the closed view first\r
+ }\r
+\r
+ if (originalSource == null)\r
+ {\r
+ //The original view is closed, we must validate\r
+ //the current view against the closed view first\r
+ if (al != null)\r
PaintRefresher.validateSequences(al, viewport.alignment);\r
- originalSource = viewport;\r
- }\r
\r
+ originalSource = viewport;\r
}\r
\r
+\r
return originalSource;\r
}\r
\r
copiedSequences.append(seq.getName() + "\t" +\r
startRes + "\t" +\r
endRes + "\t" +\r
- seq.getSequence(sg.getStartRes(),\r
+ seq.getSequenceAsString(sg.getStartRes(),\r
sg.getEndRes() + 1) + "\n");\r
}\r
\r
}\r
else\r
{\r
- for (int i = 0; i < newSeqs.length; i++)\r
- {\r
- viewport.alignment.addSequence(newSeqs[i]);\r
- }\r
-\r
- //!newAlignment\r
- addHistoryItem(new EditCommand(\r
- "Add sequences",\r
- EditCommand.PASTE,\r
- newSeqs,\r
- 0,\r
- viewport.alignment.getWidth(),\r
- viewport.alignment)\r
- );\r
-\r
- viewport.setEndSeq(viewport.alignment.getHeight());\r
- viewport.alignment.getWidth();\r
- viewport.firePropertyChange("alignment", null, null);\r
+ addSequences(newSeqs);\r
}\r
\r
}\r
\r
}\r
\r
+ void addSequences(SequenceI[] seqs)\r
+ {\r
+ for (int i = 0; i < seqs.length; i++)\r
+ {\r
+ viewport.alignment.addSequence(seqs[i]);\r
+ }\r
+\r
+ //!newAlignment\r
+ addHistoryItem(new EditCommand(\r
+ "Add sequences",\r
+ EditCommand.PASTE,\r
+ seqs,\r
+ 0,\r
+ viewport.alignment.getWidth(),\r
+ viewport.alignment)\r
+ );\r
+\r
+ viewport.setEndSeq(viewport.alignment.getHeight());\r
+ viewport.alignment.getWidth();\r
+ viewport.firePropertyChange("alignment", null,\r
+ viewport.alignment.getSequences());\r
+\r
+ }\r
+\r
protected void cut_actionPerformed()\r
{\r
copy_actionPerformed();\r
\r
protected void avTreeBlosumMenuItem_actionPerformed()\r
{\r
- NewTreePanel("AV", "BL", "Average distance tree using BLOSUM62PID");\r
+ NewTreePanel("AV", "BL", "Average distance tree using BLOSUM62");\r
}\r
\r
void NewTreePanel(String type, String pwType, String title)\r
{\r
CutAndPasteTransfer cap = new CutAndPasteTransfer(true, this);\r
cap.setText("Paste your Newick tree file here.");\r
- cap.treeImport = true;\r
+ cap.setTreeImport();\r
Frame frame = new Frame();\r
frame.add(cap);\r
jalview.bin.JalviewLite.addFrame(frame, "Paste Newick file ", 400, 300);\r
protected MenuBar alignFrameMenuBar = new MenuBar();\r
protected Menu fileMenu = new Menu("File");\r
protected MenuItem loadApplication = new MenuItem("View in Full Application");\r
- protected MenuItem loadTree = new MenuItem("Load Associated Tree");\r
+ protected MenuItem loadTree = new MenuItem("Load Associated Tree ...");\r
+ protected MenuItem loadAnnotations = new MenuItem("Load Features/Annotations ...");\r
+ protected MenuItem outputFeatures = new MenuItem("Export Features ...");\r
+ protected MenuItem outputAnnotations = new MenuItem("Export Annotations ...");\r
+\r
protected MenuItem closeMenuItem = new MenuItem("Close");\r
protected Menu editMenu = new Menu("Edit");\r
protected Menu viewMenu = new Menu("View");\r
loadApplication.addActionListener(this);\r
\r
loadTree.addActionListener(this);\r
+ loadAnnotations.addActionListener(this);\r
+ outputFeatures.addActionListener(this);\r
+ outputAnnotations.addActionListener(this);\r
selectAllSequenceMenuItem.addActionListener(this);\r
deselectAllSequenceMenuItem.addActionListener(this);\r
invertSequenceMenuItem.addActionListener(this);\r
averageDistanceTreeMenuItem.addActionListener(this);\r
neighbourTreeMenuItem.setLabel("Neighbour Joining Using % Identity");\r
neighbourTreeMenuItem.addActionListener(this);\r
- alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));\r
statusBar.setBackground(Color.white);\r
statusBar.setFont(new java.awt.Font("Verdana", 0, 11));\r
statusBar.setText("Status bar");\r
alignFrameMenuBar.add(colourMenu);\r
alignFrameMenuBar.add(calculateMenu);\r
alignFrameMenuBar.add(helpMenu);\r
+\r
fileMenu.add(inputText);\r
+ fileMenu.add(loadTree);\r
+ fileMenu.add(loadAnnotations);\r
+\r
+ fileMenu.addSeparator();\r
fileMenu.add(outputTextboxMenu);\r
+ fileMenu.add(outputFeatures);\r
+ fileMenu.add(outputAnnotations);\r
+\r
if(jalviewServletURL!=null)\r
fileMenu.add(loadApplication);\r
+\r
fileMenu.addSeparator();\r
- fileMenu.add(loadTree);\r
fileMenu.add(closeMenuItem);\r
+\r
editMenu.add(undoMenuItem);\r
editMenu.add(redoMenuItem);\r
editMenu.add(cut);\r
editMenu.add(copy);\r
editMenu.add(pasteMenu);\r
editMenu.add(delete);\r
- editMenu.addSeparator();\r
+ editMenu.addSeparator();\r
editMenu.add(remove2LeftMenuItem);\r
editMenu.add(remove2RightMenuItem);\r
editMenu.add(removeGappedColumnMenuItem);\r
embeddedCalculate.addMouseListener(this);\r
embeddedHelp.addMouseListener(this);\r
\r
- // setVisible(false);\r
fileMenu.remove(closeMenuItem);\r
fileMenu.remove(3); // Seperator\r
\r
viewport.applet.setLayout(new BorderLayout());\r
viewport.applet.add(embeddedMenu, BorderLayout.NORTH);\r
viewport.applet.add(statusBar, BorderLayout.SOUTH);\r
- // viewport.applet.validate();\r
\r
alignPanel.setSize(viewport.applet.size().width, viewport.applet.size().height\r
- embeddedMenu.HEIGHT - statusBar.HEIGHT);\r