public class AlignFrame extends GAlignFrame implements DropTargetListener,
IProgressIndicator
{
+
/** DOCUMENT ME!! */
public static final int DEFAULT_WIDTH = 700;
String fileName = null;
/**
- * Creates a new AlignFrame object.
+ * Creates a new AlignFrame object with specific width and height.
*
* @param al
- * DOCUMENT ME!
+ * @param width
+ * @param height
*/
public AlignFrame(AlignmentI al, int width, int height)
{
this(al, null, width, height);
}
-
+ /**
+ * Creates a new AlignFrame object with specific width, height and sequenceSetId
+ * @param al
+ * @param width
+ * @param height
+ * @param sequenceSetId
+ */
+ public AlignFrame(AlignmentI al, int width, int height, String sequenceSetId)
+ {
+ this(al, null, width, height, sequenceSetId);
+ }
+ /**
+ * Creates a new AlignFrame object with specific width, height and sequenceSetId
+ * @param al
+ * @param width
+ * @param height
+ * @param sequenceSetId
+ * @param viewId
+ */
+ public AlignFrame(AlignmentI al, int width, int height, String sequenceSetId, String viewId)
+ {
+ this(al, null, width, height, sequenceSetId, viewId);
+ }
/**
* new alignment window with hidden columns
*
* AlignmentI
* @param hiddenColumns
* ColumnSelection or null
+ * @param width Width of alignment frame
+ * @param height height of frame.
*/
public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
int width, int height)
{
- this.setSize(width, height);
- viewport = new AlignViewport(al, hiddenColumns);
+ this(al, hiddenColumns, width, height, null);
+ }
+ /**
+ * Create alignment frame for al with hiddenColumns, a specific width and height, and specific sequenceId
+ * @param al
+ * @param hiddenColumns
+ * @param width
+ * @param height
+ * @param sequenceSetId (may be null)
+ */
+ public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
+ int width, int height, String sequenceSetId)
+ {
+ this(al, hiddenColumns, width, height, sequenceSetId, null);
+ }
+
+ /**
+ * Create alignment frame for al with hiddenColumns, a specific width and height, and specific sequenceId
+ * @param al
+ * @param hiddenColumns
+ * @param width
+ * @param height
+ * @param sequenceSetId (may be null)
+ * @param viewId (may be null)
+ */
+ public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns, int width, int height,
+ String sequenceSetId, String viewId)
+ {
+ setSize(width, height);
+ viewport = new AlignViewport(al, hiddenColumns, sequenceSetId, viewId);
alignPanel = new AlignmentPanel(this, viewport);
addAlignmentPanel(ap, false);
init();
}
-
+ /**
+ * initalise the alignframe from the underlying viewport data and the configurations
+ */
void init()
{
if (viewport.conservation == null)
public void save_actionPerformed(ActionEvent e)
{
if (fileName == null
- || (currentFileFormat == null || jalview.io.AppletFormatAdapter
- .isValidFormat(currentFileFormat, true))
+ || (currentFileFormat == null
+ || !jalview.io.FormatAdapter.isValidIOFormat(currentFileFormat, true))
|| fileName.startsWith("http"))
{
saveAs_actionPerformed(null);
}
/**
- * DOCUMENT ME!
+ * Close the current view or all views in the alignment frame.
+ * If the frame only contains one view then the alignment will be removed from memory.
*
- * @param e
- * DOCUMENT ME!
+ * @param closeAllTabs
*/
public void closeMenuItem_actionPerformed(boolean closeAllTabs)
{
for (int i = 0; i < alignPanels.size(); i++)
{
AlignmentPanel ap = (AlignmentPanel) alignPanels.elementAt(i);
- jalview.structure.StructureSelectionManager
- .getStructureSelectionManager()
- .removeStructureViewerListener(ap.seqPanel, null);
+ jalview.structure.StructureSelectionManager ssm =
+ jalview.structure.StructureSelectionManager
+ .getStructureSelectionManager();
+ ssm.removeStructureViewerListener(ap.seqPanel, null);
+ ssm.removeSelectionListener(ap.seqPanel);
PaintRefresher.RemoveComponent(ap.seqPanel.seqCanvas);
PaintRefresher.RemoveComponent(ap.idPanel.idCanvas);
PaintRefresher.RemoveComponent(ap);
}
else
{
- int index = tabbedPane.getSelectedIndex();
-
- alignPanels.removeElement(alignPanel);
- PaintRefresher.RemoveComponent(alignPanel.seqPanel.seqCanvas);
- PaintRefresher.RemoveComponent(alignPanel.idPanel.idCanvas);
- PaintRefresher.RemoveComponent(alignPanel);
- viewport.alignment = null;
- alignPanel = null;
+ closeView(alignPanel);
viewport = null;
-
- tabbedPane.removeTabAt(index);
- tabbedPane.validate();
-
- if (index == tabbedPane.getTabCount())
- {
- index--;
- }
-
- this.tabSelectionChanged(index);
}
}
}
}
+ public void closeView(AlignmentPanel alignPanel2)
+ {
+ int index = tabbedPane.getSelectedIndex();
+ int closedindex = tabbedPane.indexOfComponent(alignPanel2);
+ alignPanels.removeElement(alignPanel2);
+ PaintRefresher.RemoveComponent(alignPanel2.seqPanel.seqCanvas);
+ PaintRefresher.RemoveComponent(alignPanel2.idPanel.idCanvas);
+ PaintRefresher.RemoveComponent(alignPanel2);
+ alignPanel2.av.alignment = null;
+
+ if (viewport == alignPanel2.av)
+ {
+ viewport = null;
+ }
+ alignPanel2 = null;
+
+ tabbedPane.removeTabAt(closedindex);
+ tabbedPane.validate();
+
+ if (index > closedindex || index == tabbedPane.getTabCount())
+ {
+ // modify currently selected tab index if necessary.
+ index--;
+ }
+
+ this.tabSelectionChanged(index);
+ }
+
/**
* DOCUMENT ME!
*/
viewport.alignment));
viewport.setSelectionGroup(null);
+ viewport.sendSelection();
viewport.alignment.deleteGroup(sg);
viewport.firePropertyChange("alignment", null, viewport.getAlignment()
.getSequences());
-
if (viewport.getAlignment().getHeight() < 1)
{
try
sg.setEndRes(viewport.alignment.getWidth() - 1);
viewport.setSelectionGroup(sg);
+ viewport.sendSelection();
alignPanel.paintAlignment(true);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
}
alignPanel.paintAlignment(true);
-
+ viewport.sendSelection();
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
newap.av.viewName = newViewName;
- addAlignmentPanel(newap, false);
+ addAlignmentPanel(newap, true);
if (alignPanels.size() == 2)
{
viewport.centreColumnLabels = centreColumnLabelsMenuItem.getState();
alignPanel.paintAlignment(true);
}
+ /* (non-Javadoc)
+ * @see jalview.jbgui.GAlignFrame#followHighlight_actionPerformed()
+ */
+ protected void followHighlight_actionPerformed()
+ {
+ if (viewport.followHighlight = this.followHighlightMenuItem.getState())
+ {
+ alignPanel.scrollToPosition(alignPanel.seqPanel.seqCanvas.searchResults, false);
+ }
+ }
/**
* DOCUMENT ME!
}
Alignment al = new Alignment(sprods);
AlignedCodonFrame[] cf = prods.getCodonFrames();
+ al.setDataset(ds);
for (int s = 0; cf != null && s < cf.length; s++)
{
al.addCodonFrame(cf[s]);
cf[s] = null;
}
- al.setDataset(ds);
AlignFrame naf = new AlignFrame(al, DEFAULT_WIDTH,
DEFAULT_HEIGHT);
String newtitle = "" + ((fdna) ? "Proteins " : "Nucleotides ")
{
viewport.setShowNpFeats(showNpFeatsMenuitem.isSelected());
}
+
+ /**
+ * find the viewport amongst the tabs in this alignment frame and close that tab
+ * @param av
+ */
+ public boolean closeView(AlignViewport av)
+ {
+ if (viewport == av)
+ {
+ this.closeMenuItem_actionPerformed(false);
+ return true;
+ }
+ Component[] comp = tabbedPane.getComponents();
+ for (int i=0;comp!=null && i<comp.length;i++)
+ {
+ if (comp[i] instanceof AlignmentPanel)
+ {
+ if (((AlignmentPanel) comp[i]).av == av)
+ {
+ // close the view.
+ closeView((AlignmentPanel) comp[i]);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
}
class PrintThread extends Thread