X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=c61c7995addc84ae5c1ec23ff2a06f0dfe6fc528;hb=62df38e7204f2903d1b4e5aaef7762acf96f317d;hp=c1d383ef2b81e6f17f72c577f3534907e924386c;hpb=96589f3091facee1b50db52995b3a13425f0e96b;p=jalview.git
diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java
index c1d383e..c61c799 100755
--- a/src/jalview/gui/AlignFrame.java
+++ b/src/jalview/gui/AlignFrame.java
@@ -27,7 +27,6 @@ import java.awt.datatransfer.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.*;
-import javax.swing.event.*;
import jalview.analysis.*;
import jalview.datamodel.*;
@@ -35,6 +34,8 @@ import jalview.io.*;
import jalview.jbgui.*;
import jalview.schemes.*;
import jalview.ws.*;
+import java.awt.dnd.*;
+
/**
* DOCUMENT ME!
@@ -43,15 +44,15 @@ import jalview.ws.*;
* @version $Revision$
*/
public class AlignFrame
- extends GAlignFrame
+ extends GAlignFrame implements DropTargetListener
{
/** DOCUMENT ME!! */
public static final int NEW_WINDOW_WIDTH = 700;
/** DOCUMENT ME!! */
public static final int NEW_WINDOW_HEIGHT = 500;
- final AlignmentPanel alignPanel;
- final AlignViewport viewport;
+ AlignmentPanel alignPanel;
+ AlignViewport viewport;
/** DOCUMENT ME!! */
public String currentFileFormat = null;
@@ -59,6 +60,7 @@ public class AlignFrame
Stack redoList = new Stack();
private int treeCount = 0;
+
/**
* Creates a new AlignFrame object.
*
@@ -68,40 +70,74 @@ public class AlignFrame
{
viewport = new AlignViewport(al);
+ this.setDropTarget(new java.awt.dnd.DropTarget(this, this));
+
+ if(viewport.vconsensus==null)
+ {
+ //Out of memory calculating consensus.
+ BLOSUM62Colour.setEnabled(false);
+ PIDColour.setEnabled(false);
+ conservationMenuItem.setEnabled(false);
+ modifyConservation.setEnabled(false);
+ abovePIDThreshold.setEnabled(false);
+ modifyPID.setEnabled(false);
+ }
+
alignPanel = new AlignmentPanel(this, viewport);
- alignPanel.annotationPanel.adjustPanelHeight();
- alignPanel.annotationSpaceFillerHolder.setPreferredSize(alignPanel.
- annotationPanel.getPreferredSize());
- alignPanel.annotationScroller.setPreferredSize(alignPanel.annotationPanel.
- getPreferredSize());
- alignPanel.setAnnotationVisible(viewport.getShowAnnotation());
- getContentPane().add(alignPanel, java.awt.BorderLayout.CENTER);
+ String sortby = jalview.bin.Cache.getDefault("SORT_ALIGNMENT", "No sort");
+
+ if(sortby.equals("Id"))
+ sortIDMenuItem_actionPerformed(null);
+ else if(sortby.equals("Pairwise Identity"))
+ sortPairwiseMenuItem_actionPerformed(null);
- addInternalFrameListener(new InternalFrameAdapter()
+ // remove(tabbedPane);
+ getContentPane().add(alignPanel, BorderLayout.CENTER);
+
+
+
+ // tabbedPane.add(al.isNucleotide() ? "DNA":"Protein", alignPanel);
+
+ ///Dataset tab
+ /////////////////////////
+ if(al.getDataset()==null)
{
- public void internalFrameActivated(InternalFrameEvent evt)
- {
- javax.swing.SwingUtilities.invokeLater(new Runnable()
- {
- public void run()
- {
- alignPanel.requestFocus();
- }
- });
- }
- });
+ al.setDataset(null);
+ }
+ // AlignViewport ds = new AlignViewport(al.getDataset(), true);
+ // AlignmentPanel dap = new AlignmentPanel(this, ds);
+ // tabbedPane.add("Dataset", dap);
+ // viewports.add(ds);
+ // alignPanels.add(dap);
+ /////////////////////////
+
+
+ viewport.addPropertyChangeListener(new PropertyChangeListener()
+ {
+ public void propertyChange(PropertyChangeEvent evt)
+ {
+ if (evt.getPropertyName().equals("alignment"))
+ {
+ alignmentChanged();
+ }
+ }
+ });
+
+
+ if (Desktop.desktop != null)
+ {
addServiceListeners();
+ setGUINucleotide(al.isNucleotide());
+ }
}
/* Set up intrinsic listeners for dynamically generated GUI bits. */
private void addServiceListeners()
{
-
- final AlignFrame thisFrame = this;
final java.beans.PropertyChangeListener thisListener;
// Do this once to get current state
- thisFrame.BuildWebServiceMenu();
+ BuildWebServiceMenu();
Desktop.discoverer.addPropertyChangeListener(
thisListener = new java.beans.PropertyChangeListener()
{
@@ -111,7 +147,7 @@ public class AlignFrame
if (evt.getPropertyName().equals("services"))
{
// System.out.println("Rebuilding web service menu");
- thisFrame.BuildWebServiceMenu();
+ BuildWebServiceMenu();
}
}
});
@@ -123,74 +159,61 @@ public class AlignFrame
{
// System.out.println("deregistering discoverer listener");
Desktop.discoverer.removePropertyChangeListener(thisListener);
+ closeMenuItem_actionPerformed(null);
}
;
});
}
- /**
- * DOCUMENT ME!
- *
- * @param String DOCUMENT ME!
- */
-
- public void parseGroupsFile(String file)
+ public void setGUINucleotide(boolean nucleotide)
{
- try
+ showTranslation.setVisible( nucleotide );
+ //sequenceFeatures.setVisible(!nucleotide );
+ //featureSettings.setVisible( !nucleotide );
+ conservationMenuItem.setVisible( !nucleotide );
+ modifyConservation.setVisible( !nucleotide );
+
+ //Remember AlignFrame always starts as protein
+ if(!nucleotide)
{
- BufferedReader in = new BufferedReader(new FileReader(file));
- SequenceI seq = null;
- String line, text, token;
- UserColourScheme ucs;
- int index, start, end;
- StringTokenizer st;
- SequenceGroup sg;
- while ( (line = in.readLine()) != null)
- {
- st = new StringTokenizer(line, "\t");
- if (st.countTokens() != 6)
- {
- System.out.println("Groups file " + file +
- " is invalid. Read help file.");
- System.exit(1);
- }
+ calculateMenu.remove(calculateMenu.getItemCount()-2);
+ }
+ }
- while (st.hasMoreElements())
- {
- text = st.nextToken();
- token = st.nextToken();
- if (!token.equals("ID_NOT_SPECIFIED"))
- {
- index = viewport.alignment.findIndex(viewport.alignment.findName(
- token));
- st.nextToken();
- }
- else
- {
- index = Integer.parseInt(st.nextToken());
- }
- start = Integer.parseInt(st.nextToken());
- end = Integer.parseInt(st.nextToken());
- ucs = new UserColourScheme(st.nextToken());
+ /*
+ Added so Castor Mapping file can obtain Jalview Version
+ */
+ public String getVersion()
+ {
+ return jalview.bin.Cache.getProperty("VERSION");
+ }
- seq = viewport.alignment.getSequenceAt(index);
- start = seq.findIndex(start) - 1;
- end = seq.findIndex(end) - 1;
+ public FeatureRenderer getFeatureRenderer()
+ {
+ return alignPanel.seqPanel.seqCanvas.getFeatureRenderer();
+ }
- sg = new SequenceGroup(text, ucs, true, true, false, start, end);
- sg.addSequence(seq, true);
- viewport.alignment.addGroup(sg);
- }
- }
+ public void fetchSequence_actionPerformed(ActionEvent e)
+ {
+ new SequenceFetcher(this);
+ }
- }
- catch (Exception ex)
- {
- System.out.println("Error parsing groups file: " + ex);
- }
+ public void addFromFile_actionPerformed(ActionEvent e)
+ {
+ Desktop.instance.inputLocalFileMenuItem_actionPerformed(viewport);
+ }
+
+ public void addFromText_actionPerformed(ActionEvent e)
+ {
+ Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport);
+ }
+
+ public void addFromURL_actionPerformed(ActionEvent e)
+ {
+ Desktop.instance.inputURLMenuItem_actionPerformed(viewport);
}
/**
@@ -222,7 +245,18 @@ public class AlignFrame
if (value == JalviewFileChooser.APPROVE_OPTION)
{
- currentFileFormat = chooser.getSelectedFormat();
+ currentFileFormat = chooser.getSelectedFormat();
+
+ if (currentFileFormat == null)
+ {
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ "You must select a file format before saving!",
+ "File format not specified",
+ JOptionPane.WARNING_MESSAGE);
+ value = chooser.showSaveDialog(this);
+ return;
+ }
+
jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT",
currentFileFormat);
@@ -245,14 +279,14 @@ public class AlignFrame
java.io.File.separatorChar) + 1);
}
- Jalview2XML.SaveAlignment(this, file, shortName);
+ new Jalview2XML().SaveAlignment(this, file, shortName);
// USE Jalview2XML to save this file
return true;
}
else
{
- String output = FormatAdapter.formatSequences(format,
+ String output = new FormatAdapter().formatSequences(format,
viewport.getAlignment().
getSequences());
if (output == null)
@@ -264,8 +298,10 @@ public class AlignFrame
{
java.io.PrintWriter out = new java.io.PrintWriter(
new java.io.FileWriter(file));
- out.println(output);
+
+ out.print(output);
out.close();
+ this.setTitle(file);
return true;
}
catch (Exception ex)
@@ -287,7 +323,7 @@ public class AlignFrame
Desktop.addInternalFrame(cap,
"Alignment output - " + e.getActionCommand(), 600,
500);
- cap.setText(FormatAdapter.formatSequences(e.getActionCommand(),
+ cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),
viewport.getAlignment().
getSequences()));
}
@@ -299,7 +335,9 @@ public class AlignFrame
*/
protected void htmlMenuItem_actionPerformed(ActionEvent e)
{
- new HTMLOutput(viewport);
+ new HTMLOutput(viewport,
+ alignPanel.seqPanel.seqCanvas.getSequenceRenderer(),
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
}
public void createImageMap(File file, String image)
@@ -339,6 +377,27 @@ public class AlignFrame
thread.start();
}
+ public void associatedData_actionPerformed(ActionEvent e)
+ {
+ // Pick the tree file
+ JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.
+ getProperty(
+ "LAST_DIRECTORY"));
+ chooser.setFileView(new JalviewFileView());
+ chooser.setDialogTitle("Load Jalview Annotations or Features File");
+ chooser.setToolTipText("Load Jalview Annotations / Features file");
+
+ int value = chooser.showOpenDialog(null);
+
+ if (value == JalviewFileChooser.APPROVE_OPTION)
+ {
+ String choice = chooser.getSelectedFile().getPath();
+ jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
+ loadJalviewDataFile(choice);
+ }
+
+ }
+
/**
* DOCUMENT ME!
*
@@ -348,6 +407,7 @@ public class AlignFrame
{
try
{
+ PaintRefresher.components.remove(viewport.alignment);
this.setClosed(true);
}
catch (Exception ex)
@@ -409,6 +469,7 @@ public class AlignFrame
redoList.push(new HistoryItem(hi.getDescription(), viewport.alignment,
HistoryItem.HIDE));
restoreHistoryItem(hi);
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
}
/**
@@ -421,56 +482,17 @@ public class AlignFrame
HistoryItem hi = (HistoryItem) redoList.pop();
restoreHistoryItem(hi);
updateEditMenuBar();
- viewport.updateConsensus();
- alignPanel.repaint();
- alignPanel.repaint();
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
}
// used by undo and redo
void restoreHistoryItem(HistoryItem hi)
{
- if (hi.getType() == HistoryItem.SORT)
- {
- for (int i = 0; i < hi.getSequences().size(); i++)
- {
- viewport.alignment.getSequences().setElementAt(hi.getSequences()
- .elementAt(i),
- i);
- }
- }
- else
- {
- for (int i = 0; i < hi.getSequences().size(); i++)
- {
- SequenceI restore = (SequenceI) hi.getSequences().elementAt(i);
-
- if (restore.getLength() == 0)
- {
- restore.setSequence(hi.getHidden().elementAt(i).toString());
- viewport.alignment.getSequences().insertElementAt(restore,
- hi.getAlignIndex(i));
- }
- else
- {
- restore.setSequence(hi.getHidden().elementAt(i).toString());
- }
- }
- if (hi.getType() == HistoryItem.PASTE)
- {
- for (int i = viewport.alignment.getHeight() - 1;
- i > (hi.getSequences().size() - 1); i--)
- {
- viewport.alignment.deleteSequence(i);
- }
- }
- }
+ hi.restore();
updateEditMenuBar();
- viewport.updateConsensus();
- viewport.updateConservation();
- alignPanel.repaint();
viewport.firePropertyChange("alignment", null,
viewport.getAlignment().getSequences());
}
@@ -537,6 +559,8 @@ public class AlignFrame
alignPanel.repaint();
}
+
+
/**
* DOCUMENT ME!
*
@@ -552,9 +576,9 @@ public class AlignFrame
SequenceGroup sg = viewport.getSelectionGroup();
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
- StringBuffer buffer = new StringBuffer();
Hashtable orderedSeqs = new Hashtable();
+ SequenceI[] seqs = new SequenceI[sg.getSize()];
for (int i = 0; i < sg.getSize(); i++)
{
@@ -584,6 +608,7 @@ public class AlignFrame
index++;
}
}
+
//FIND START RES
//Returns residue following index if gap
startRes = seq.findPosition(sg.getStartRes());
@@ -606,14 +631,25 @@ public class AlignFrame
endRes += seq.getStart() - 1;
}
- buffer.append(seq.getName() + "\t" +
- startRes + "\t" +
- endRes + "\t" +
- seq.getSequence(sg.getStartRes(),
- sg.getEndRes() + 1) + "\n");
+ seqs[i] = new Sequence(seq.getName(),
+ seq.getSequence(sg.getStartRes(), sg.getEndRes() + 1),
+ startRes,
+ endRes);
+ seqs[i].setDescription(seq.getDescription());
+ seqs[i].setDBRef(seq.getDBRef());
+ seqs[i].setSequenceFeatures(seq.getSequenceFeatures());
+ seqs[i].setDatasetSequence(seq.getDatasetSequence());
+ if(seq.getAnnotation()!=null)
+ {
+ for(int a=0; a>>This is a fix for the moment, until a better solution is found!!<<<
+ af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().transferSettings(
+ alignPanel.seqPanel.seqCanvas.getFeatureRenderer());
+
+
+ if (title.startsWith("Copied sequences"))
+ {
+ newtitle = title;
+ }
+ else
+ {
+ newtitle = newtitle.concat("- from " + title);
+ }
+
+ Desktop.addInternalFrame(af, newtitle, NEW_WINDOW_WIDTH,
+ NEW_WINDOW_HEIGHT);
+
+ }
+
+
}
catch (Exception ex)
{
+ ex.printStackTrace();
+ System.out.println("Exception whilst pasting: "+ex);
+ // could be anything being pasted in here
}
- // could be anything being pasted in here
+
}
/**
@@ -733,31 +823,56 @@ public class AlignFrame
*/
protected void delete_actionPerformed(ActionEvent e)
{
- boolean seqsdeleted = false;
if (viewport.getSelectionGroup() == null)
{
return;
}
- addHistoryItem(new HistoryItem("Delete Sequences", viewport.alignment,
- HistoryItem.HIDE));
SequenceGroup sg = viewport.getSelectionGroup();
- boolean allSequences = false;
- if (sg.sequences.size() == viewport.alignment.getHeight())
+
+
+
+ //Jalview no longer allows deletion of residues.
+ //Check here whether any residues are in selection area
+ /* if( sg.getEndRes()-sg.getStartRes() < viewport.alignment.getWidth()-1)
{
- allSequences = true;
- }
+ for (int i = 0; i < sg.sequences.size(); i++)
+ {
+ SequenceI seq = sg.getSequenceAt(i);
+ int j = sg.getStartRes();
+ do
+ {
+ if (!jalview.util.Comparison.isGap(seq.getCharAt(j)))
+ {
+ JOptionPane.showInternalMessageDialog(
+ Desktop.desktop, "Cannot delete residues from alignment!\n"
+ + "Try hiding columns instead.",
+ "Deletion of residues not permitted",
+ JOptionPane.WARNING_MESSAGE);
+
+ return;
+ }
+ j++;
+ }while(j<=sg.getEndRes());
+ }
+ }*/
+
+
+ addHistoryItem(new HistoryItem("Delete Sequences", viewport.alignment,
+ HistoryItem.HIDE));
+
for (int i = 0; i < sg.sequences.size(); i++)
{
SequenceI seq = sg.getSequenceAt(i);
int index = viewport.getAlignment().findIndex(seq);
+
seq.deleteChars(sg.getStartRes(), sg.getEndRes() + 1);
// If the cut affects all sequences, remove highlighted columns
- if (allSequences)
+ if (sg.sequences.size() == viewport.alignment.getHeight())
{
viewport.getColumnSelection().removeElements(sg.getStartRes(),
sg.getEndRes() + 1);
@@ -765,7 +880,6 @@ public class AlignFrame
if (seq.getSequence().length() < 1)
{
- seqsdeleted = true;
viewport.getAlignment().deleteSequence(seq);
}
else
@@ -777,13 +891,10 @@ public class AlignFrame
viewport.setSelectionGroup(null);
viewport.alignment.deleteGroup(sg);
- if (seqsdeleted)
- {
- viewport.firePropertyChange("alignment", null,
+ viewport.firePropertyChange("alignment", null,
viewport.getAlignment().getSequences());
- }
- viewport.resetSeqLimits(alignPanel.seqPanel.seqCanvas.getHeight());
+
if (viewport.getAlignment().getHeight() < 1)
{
@@ -795,10 +906,6 @@ public class AlignFrame
{
}
}
-
- viewport.updateConservation();
- viewport.updateConsensus();
- alignPanel.repaint();
}
/**
@@ -840,10 +947,16 @@ public class AlignFrame
*/
public void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
{
+ if(viewport.cursorMode)
+ {
+ alignPanel.seqPanel.keyboardNo1 = null;
+ alignPanel.seqPanel.keyboardNo2 = null;
+ }
viewport.setSelectionGroup(null);
viewport.getColumnSelection().clear();
viewport.setSelectionGroup(null);
- alignPanel.annotationPanel.activeRes = null;
+ alignPanel.seqPanel.seqCanvas.highlightSearchResults(null);
+ alignPanel.idPanel.idCanvas.searchResults = null;
PaintRefresher.Refresh(null, viewport.alignment);
}
@@ -907,7 +1020,7 @@ public class AlignFrame
}
}
- alignPanel.repaint();
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
}
}
@@ -945,7 +1058,7 @@ public class AlignFrame
}
}
- alignPanel.repaint();
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
}
}
@@ -959,10 +1072,16 @@ public class AlignFrame
addHistoryItem(new HistoryItem("Remove Gapped Columns",
viewport.alignment, HistoryItem.HIDE));
+ //This is to maintain viewport position on first residue
+ //of first sequence
+ SequenceI seq = viewport.alignment.getSequenceAt(0);
+ int startRes = seq.findPosition(viewport.startRes);
+
viewport.getAlignment().removeGaps();
- viewport.updateConservation();
- viewport.updateConsensus();
- alignPanel.repaint();
+
+ viewport.setStartRes(seq.findIndex(startRes)-1);
+
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
}
/**
@@ -975,6 +1094,12 @@ public class AlignFrame
addHistoryItem(new HistoryItem("Remove Gaps", viewport.alignment,
HistoryItem.HIDE));
+ //This is to maintain viewport position on first residue
+ //of first sequence
+ SequenceI seq = viewport.alignment.getSequenceAt(0);
+ int startRes = seq.findPosition(viewport.startRes);
+
+
SequenceI current;
int jSize;
@@ -989,7 +1114,7 @@ public class AlignFrame
{
seqs = viewport.getSelectionGroup().sequences;
start = viewport.getSelectionGroup().getStartRes();
- end = viewport.getSelectionGroup().getEndRes();
+ end = viewport.getSelectionGroup().getEndRes()+1;
}
else
{
@@ -1001,24 +1126,108 @@ public class AlignFrame
current = (SequenceI) seqs.elementAt(i);
jSize = current.getLength();
+ // Removing a range is much quicker than removing gaps
+ // one by one for long sequences
int j = start;
+ int rangeStart=-1, rangeEnd=-1;
do
{
if (jalview.util.Comparison.isGap(current.getCharAt(j)))
{
- current.deleteCharAt(j);
- j--;
- jSize--;
+ if(rangeStart==-1)
+ {
+ rangeStart = j;
+ rangeEnd = j+1;
+ }
+ else
+ {
+ rangeEnd++;
+ }
+ j++;
+ }
+ else
+ {
+ if(rangeStart>-1)
+ {
+ current.deleteChars(rangeStart, rangeEnd);
+ j-=rangeEnd-rangeStart;
+ jSize-=rangeEnd-rangeStart;
+ rangeStart = -1;
+ rangeEnd = -1;
+ }
+ else
+ j++;
}
- j++;
}
while (j < end && j < jSize);
+ if(rangeStart>-1)
+ {
+ current.deleteChars(rangeStart, rangeEnd);
+ }
}
- viewport.updateConservation();
- viewport.updateConsensus();
- alignPanel.repaint();
+ viewport.setStartRes(seq.findIndex(startRes)-1);
+
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
+ }
+
+ public void alignmentChanged()
+ {
+ if(viewport.padGaps)
+ viewport.getAlignment().padGaps();
+
+ if(viewport.vconsensus!=null && viewport.autoCalculateConsensus)
+ {
+ viewport.updateConsensus();
+ viewport.updateConservation();
+ }
+ resetAllColourSchemes();
+ if(alignPanel.overviewPanel!=null)
+ alignPanel.overviewPanel.updateOverviewImage();
+
+ viewport.alignment.adjustSequenceAnnotations();
+
+ alignPanel.repaint();
+ }
+
+ void resetAllColourSchemes()
+ {
+ ColourSchemeI cs = viewport.globalColourScheme;
+ if(cs!=null)
+ {
+ if (cs instanceof ClustalxColourScheme)
+ {
+ ( (ClustalxColourScheme) viewport.getGlobalColourScheme()).
+ resetClustalX(viewport.alignment.getSequences(),
+ viewport.alignment.getWidth());
+ }
+
+ cs.setConsensus(viewport.vconsensus);
+ if (cs.conservationApplied())
+ {
+ Alignment al = (Alignment) viewport.alignment;
+ Conservation c = new Conservation("All",
+ ResidueProperties.propHash, 3,
+ al.getSequences(), 0,
+ al.getWidth() - 1);
+ c.calculate();
+ c.verdict(false, viewport.ConsPercGaps);
+
+ cs.setConservation(c);
+ }
+ }
+
+ int s, sSize = viewport.alignment.getGroups().size();
+ for(s=0; s 3))
@@ -1876,7 +2086,6 @@ public class AlignFrame
}
addTreeMenuItem(tp, title);
- viewport.setCurrentTree(tp.getTree());
Desktop.addInternalFrame(tp, title + " from " + this.title, 600, 500);
}
@@ -1954,17 +2163,6 @@ public class AlignFrame
}
;
});
- viewport.addPropertyChangeListener(new java.beans.PropertyChangeListener()
- {
- public void propertyChange(PropertyChangeEvent evt)
- {
- if (evt.getPropertyName().equals("alignment"))
- {
- treePanel.getTree().UpdatePlaceHolders( (Vector) evt.getNewValue());
- treePanel.repaint();
- }
- }
- });
}
/**
@@ -2186,16 +2384,17 @@ public class AlignFrame
*/
public void BuildWebServiceMenu()
{
- if ( (Desktop.discoverer.services != null)
- && (Desktop.discoverer.services.size() > 0))
+ if ( (Discoverer.services != null)
+ && (Discoverer.services.size() > 0))
{
- Vector msaws = (Vector) Desktop.discoverer.services.get("MsaWS");
- Vector secstrpr = (Vector) Desktop.discoverer.services.get("SecStrPred");
+ Vector msaws = (Vector) Discoverer.services.get("MsaWS");
+ Vector secstrpr = (Vector) Discoverer.services.get("SecStrPred");
Vector wsmenu = new Vector();
if (msaws != null)
{
// Add any Multiple Sequence Alignment Services
final JMenu msawsmenu = new JMenu("Alignment");
+ final AlignFrame af = this;
for (int i = 0, j = msaws.size(); i < j; i++)
{
final ext.vamsas.ServiceHandle sh = (ext.vamsas.ServiceHandle) msaws.
@@ -2206,8 +2405,8 @@ public class AlignFrame
public void actionPerformed(ActionEvent e)
{
SequenceI[] msa = gatherSequencesForAlignment();
- MsaWSClient ct = new jalview.ws.MsaWSClient(sh, title, msa,
- false, true);
+ new jalview.ws.MsaWSClient(sh, title, msa,
+ false, true, viewport.getAlignment().getDataset(), af);
}
@@ -2223,8 +2422,8 @@ public class AlignFrame
public void actionPerformed(ActionEvent e)
{
SequenceI[] msa = gatherSequencesForAlignment();
- MsaWSClient ct = new jalview.ws.MsaWSClient(sh, title, msa,
- true, true);
+ new jalview.ws.MsaWSClient(sh, title, msa,
+ true, true, viewport.getAlignment().getDataset(), af);
}
@@ -2252,8 +2451,7 @@ public class AlignFrame
if (msa.length == 1)
{
// Single Sequence prediction
- jalview.ws.JPredClient ct = new jalview.ws.JPredClient(sh,
- title, msa[0]);
+ new jalview.ws.JPredClient(sh,title, msa[0]);
}
else
{
@@ -2286,4 +2484,339 @@ public class AlignFrame
// TODO: group services by location as well as function.
}
+ /* public void vamsasStore_actionPerformed(ActionEvent e)
+ {
+ JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.
+ getProperty("LAST_DIRECTORY"));
+
+ chooser.setFileView(new JalviewFileView());
+ chooser.setDialogTitle("Export to Vamsas file");
+ chooser.setToolTipText("Export");
+
+ int value = chooser.showSaveDialog(this);
+
+ if (value == JalviewFileChooser.APPROVE_OPTION)
+ {
+ jalview.io.VamsasDatastore vs = new jalview.io.VamsasDatastore(viewport);
+ //vs.store(chooser.getSelectedFile().getAbsolutePath() );
+ vs.storeJalview( chooser.getSelectedFile().getAbsolutePath(), this);
+ }
+ }*/
+
+
+
+
+
+public void showTranslation_actionPerformed(ActionEvent e)
+{
+ int s, sSize = viewport.alignment.getHeight();
+ SequenceI [] newSeq = new SequenceI[sSize];
+
+ int res, resSize;
+ StringBuffer protein;
+ String seq;
+ for(s=0; s