X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=c61c7995addc84ae5c1ec23ff2a06f0dfe6fc528;hb=62df38e7204f2903d1b4e5aaef7762acf96f317d;hp=b714aea53cabf9b96dea336328ca497d1ca28d14;hpb=366b11bb8e79ff5bb1a9e6c50b648c3d4101862c;p=jalview.git
diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java
index b714aea..c61c799 100755
--- a/src/jalview/gui/AlignFrame.java
+++ b/src/jalview/gui/AlignFrame.java
@@ -44,7 +44,7 @@ import java.awt.dnd.*;
* @version $Revision$
*/
public class AlignFrame
- extends GAlignFrame implements ClipboardOwner, DropTargetListener
+ extends GAlignFrame implements DropTargetListener
{
/** DOCUMENT ME!! */
public static final int NEW_WINDOW_WIDTH = 700;
@@ -54,9 +54,6 @@ public class AlignFrame
AlignmentPanel alignPanel;
AlignViewport viewport;
- Vector viewports = new Vector();
- Vector alignPanels = new Vector();
-
/** DOCUMENT ME!! */
public String currentFileFormat = null;
Stack historyList = new Stack();
@@ -72,7 +69,6 @@ public class AlignFrame
public AlignFrame(AlignmentI al)
{
viewport = new AlignViewport(al);
- viewports.add(viewport);
this.setDropTarget(new java.awt.dnd.DropTarget(this, this));
@@ -88,7 +84,6 @@ public class AlignFrame
}
alignPanel = new AlignmentPanel(this, viewport);
- alignPanels.add(alignPanel);
String sortby = jalview.bin.Cache.getDefault("SORT_ALIGNMENT", "No sort");
@@ -195,11 +190,32 @@ public class AlignFrame
return jalview.bin.Cache.getProperty("VERSION");
}
+ public FeatureRenderer getFeatureRenderer()
+ {
+ return alignPanel.seqPanel.seqCanvas.getFeatureRenderer();
+ }
+
public void fetchSequence_actionPerformed(ActionEvent e)
{
new SequenceFetcher(this);
}
+
+ 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);
+ }
+
/**
* DOCUMENT ME!
*
@@ -263,7 +279,7 @@ 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;
@@ -285,6 +301,7 @@ public class AlignFrame
out.print(output);
out.close();
+ this.setTitle(file);
return true;
}
catch (Exception ex)
@@ -360,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!
*
@@ -450,42 +488,8 @@ public class AlignFrame
// 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();
@@ -555,10 +559,6 @@ public class AlignFrame
alignPanel.repaint();
}
- public void lostOwnership(Clipboard clipboard, Transferable contents)
- {
- Desktop.jalviewClipboard = null;
- }
/**
@@ -639,12 +639,16 @@ public class AlignFrame
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)
{
@@ -810,7 +836,7 @@ public class AlignFrame
//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)
+ /* if( sg.getEndRes()-sg.getStartRes() < viewport.alignment.getWidth()-1)
{
for (int i = 0; i < sg.sequences.size(); i++)
{
@@ -831,7 +857,7 @@ public class AlignFrame
j++;
}while(j<=sg.getEndRes());
}
- }
+ }*/
addHistoryItem(new HistoryItem("Delete Sequences", viewport.alignment,
@@ -921,6 +947,11 @@ 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);
@@ -1143,7 +1174,10 @@ public class AlignFrame
public void alignmentChanged()
{
- if(viewport.vconsensus!=null)
+ if(viewport.padGaps)
+ viewport.getAlignment().padGaps();
+
+ if(viewport.vconsensus!=null && viewport.autoCalculateConsensus)
{
viewport.updateConsensus();
viewport.updateConservation();
@@ -1205,8 +1239,11 @@ public class AlignFrame
{
addHistoryItem(new HistoryItem("Pad Gaps", viewport.alignment,
HistoryItem.HIDE));
- if (viewport.getAlignment().padGaps())
- alignmentChanged();
+
+ viewport.padGaps = padGapsMenuitem.isSelected();
+
+ // if (viewport.padGaps)
+ alignmentChanged();
}
/**
@@ -1351,9 +1388,9 @@ public class AlignFrame
{
if (!viewport.alignment.isNucleotide())
{
- new SequenceFeatureFetcher(viewport.
- alignment,
- alignPanel);
+ new DasSequenceFeatureFetcher(viewport.
+ alignment,
+ alignPanel);
viewport.setShowSequenceFeatures(true);
showSeqFeatures.setSelected(true);
}
@@ -1937,6 +1974,17 @@ public class AlignFrame
new PCAPanel(viewport);
}
+
+ public void autoCalculate_actionPerformed(ActionEvent e)
+ {
+ viewport.autoCalculateConsensus = autoCalculate.isSelected();
+ if(viewport.autoCalculateConsensus)
+ {
+ alignmentChanged();
+ }
+ }
+
+
/**
* DOCUMENT ME!
*
@@ -1986,7 +2034,7 @@ public class AlignFrame
*/
void NewTreePanel(String type, String pwType, String title)
{
- final TreePanel tp;
+ TreePanel tp;
if ( (viewport.getSelectionGroup() != null) &&
(viewport.getSelectionGroup().getSize() > 3))
@@ -2038,7 +2086,6 @@ public class AlignFrame
}
addTreeMenuItem(tp, title);
- viewport.setCurrentTree(tp.getTree());
Desktop.addInternalFrame(tp, title + " from " + this.title, 600, 500);
}
@@ -2347,6 +2394,7 @@ public class AlignFrame
{
// 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.
@@ -2358,7 +2406,7 @@ public class AlignFrame
{
SequenceI[] msa = gatherSequencesForAlignment();
new jalview.ws.MsaWSClient(sh, title, msa,
- false, true, viewport.getAlignment().getDataset());
+ false, true, viewport.getAlignment().getDataset(), af);
}
@@ -2375,7 +2423,7 @@ public class AlignFrame
{
SequenceI[] msa = gatherSequencesForAlignment();
new jalview.ws.MsaWSClient(sh, title, msa,
- true, true, viewport.getAlignment().getDataset());
+ true, true, viewport.getAlignment().getDataset(), af);
}
@@ -2499,42 +2547,42 @@ public void showTranslation_actionPerformed(ActionEvent e)
jalview.datamodel.AlignmentAnnotation[] annotations
= viewport.alignment.getAlignmentAnnotation();
int a, aSize;
- for (int i = 0; i < annotations.length; i++)
+ if(annotations!=null)
{
-
- if (annotations[i].label.equals("Quality") ||
- annotations[i].label.equals("Conservation") ||
- annotations[i].label.equals("Consensus"))
+ for (int i = 0; i < annotations.length; i++)
{
- continue;
- }
-
+ if (annotations[i].label.equals("Quality") ||
+ annotations[i].label.equals("Conservation") ||
+ annotations[i].label.equals("Consensus"))
+ {
+ continue;
+ }
- aSize = viewport.alignment.getWidth()/3;
- jalview.datamodel.Annotation [] anots =
- new jalview.datamodel.Annotation[aSize];
+ aSize = viewport.alignment.getWidth() / 3;
+ jalview.datamodel.Annotation[] anots =
+ new jalview.datamodel.Annotation[aSize];
- for(a=0; a