*/
package jalview.appletgui;
-import java.awt.BorderLayout;
-import java.awt.Canvas;
-import java.awt.CheckboxMenuItem;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Frame;
-import java.awt.Graphics;
-import java.awt.Label;
-import java.awt.Menu;
-import java.awt.MenuBar;
-import java.awt.MenuItem;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.util.Arrays;
-import java.util.Deque;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
import jalview.analysis.AlignmentSorter;
import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
import jalview.api.AlignViewControllerGuiI;
import jalview.api.AlignViewControllerI;
import jalview.api.AlignViewportI;
import jalview.api.FeatureRenderer;
+import jalview.api.FeatureSettingsControllerI;
import jalview.api.SequenceStructureBinding;
import jalview.bin.JalviewLite;
import jalview.commands.CommandI;
import jalview.structures.models.AAStructureBindingModel;
import jalview.util.MappingUtils;
import jalview.util.MessageManager;
+import jalview.viewmodel.AlignmentViewport;
+
+import java.awt.BorderLayout;
+import java.awt.Canvas;
+import java.awt.CheckboxMenuItem;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.Label;
+import java.awt.Menu;
+import java.awt.MenuBar;
+import java.awt.MenuItem;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.Vector;
public class AlignFrame extends EmbmenuFrame implements ActionListener,
ItemListener, KeyListener, AlignViewControllerGuiI
public AlignViewport viewport;
- int DEFAULT_WIDTH = 700;
+ // width and height may be overridden by applet parameters
+ int frameWidth = 700;
- int DEFAULT_HEIGHT = 500;
+ int frameHeight = 500;
String jalviewServletURL;
public AlignFrame(AlignmentI al, JalviewLite applet,
String title, boolean embedded, boolean addToDisplay)
{
+ this(al, null, null, applet, title, embedded, addToDisplay);
+ }
+
+ public AlignFrame(AlignmentI al, SequenceI[] hiddenSeqs,
+ ColumnSelection columnSelection, JalviewLite applet,
+ String title, boolean embedded)
+ {
+ this(al, hiddenSeqs, columnSelection, applet, title, embedded, true);
+ }
+
+ public AlignFrame(AlignmentI al, SequenceI[] hiddenSeqs,
+ ColumnSelection columnSelection, JalviewLite applet,
+ String title, boolean embedded, boolean addToDisplay)
+ {
if (applet != null)
{
jalviewServletURL = applet.getParameter("APPLICATION_URL");
if (param != null)
{
int width = Integer.parseInt(param);
- DEFAULT_WIDTH = width;
+ frameWidth = width;
}
param = applet.getParameter("windowHeight");
if (param != null)
{
int height = Integer.parseInt(param);
- DEFAULT_HEIGHT = height;
+ frameHeight = height;
}
} catch (Exception ex)
{
}
}
viewport = new AlignViewport(al, applet);
+
+ if (hiddenSeqs != null && hiddenSeqs.length > 0)
+ {
+ viewport.hideSequence(hiddenSeqs);
+ viewport.setHasHiddenRows(true);
+ }
+ if (columnSelection != null)
+ {
+ viewport.setColumnSelection(columnSelection);
+ }
+
alignPanel = new AlignmentPanel(this, viewport);
avc = new jalview.controller.AlignViewController(this, viewport,
alignPanel);
viewport.updateConsensus(alignPanel);
displayNonconservedMenuItem.setState(viewport.getShowUnconserved());
- followMouseOverFlag.setState(viewport.getFollowHighlight());
+ followMouseOverFlag.setState(viewport.isFollowHighlight());
showGroupConsensus.setState(viewport.isShowGroupConsensus());
showGroupConservation.setState(viewport.isShowGroupConservation());
showConsensusHistogram.setState(viewport.isShowConsensusHistogram());
showSequenceLogo.setState(viewport.isShowSequenceLogo());
normSequenceLogo.setState(viewport.isNormaliseSequenceLogo());
applyToAllGroups.setState(viewport.getColourAppliesToAllGroups());
+ annotationPanelMenuItem.setState(viewport.isShowAnnotation());
showAlignmentAnnotations.setState(viewport.isShowAnnotation());
showSequenceAnnotations.setState(viewport.isShowAnnotation());
private void mouseOverFlag_stateChanged()
{
- viewport.followHighlight = followMouseOverFlag.getState();
+ viewport.setFollowHighlight(followMouseOverFlag.getState());
// TODO: could kick the scrollTo mechanism to reset view for current
// searchresults.
}
jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
"label.alignment_output_command", new Object[]
{ e.getActionCommand() }), 600, 500);
- cap.setText(new AppletFormatAdapter().formatSequences(
+
+ FeatureRenderer fr = this.alignPanel.cloneFeatureRenderer();
+ viewport.setFeatureRenderer(fr);
+ cap.setText(new AppletFormatAdapter(viewport).formatSequences(
e.getActionCommand(), viewport.getAlignment(),
viewport.getShowJVSuffix()));
}
viewport.addToRedoList(command);
command.undoCommand(null);
- AlignViewport originalSource = getOriginatingSource(command);
+ AlignmentViewport originalSource = getOriginatingSource(command);
// JBPNote Test
if (originalSource != viewport)
{
viewport.addToHistoryList(command);
command.doCommand(null);
- AlignViewport originalSource = getOriginatingSource(command);
+ AlignmentViewport originalSource = getOriginatingSource(command);
// JBPNote Test
if (originalSource != viewport)
{
.getAlignment().getSequences());
}
- AlignViewport getOriginatingSource(CommandI command)
+ AlignmentViewport getOriginatingSource(CommandI command)
{
- AlignViewport originalSource = null;
+ AlignmentViewport originalSource = null;
// For sequence removal and addition, we need to fire
// the property change event FROM the viewport where the
// original alignment was altered
}
}
- jalview.bin.JalviewLite.addFrame(af, newtitle, DEFAULT_WIDTH,
- DEFAULT_HEIGHT);
+ jalview.bin.JalviewLite.addFrame(af, newtitle, frameWidth,
+ frameHeight);
}
else
{
}
- void changeColour(ColourSchemeI cs)
+ public void changeColour(ColourSchemeI cs)
{
int threshold = 0;
/*
* Annotations menu
*/
- // annotationsMenu.add(annotationPanelMenuItem);
- // annotationsMenu.addSeparator();
+ annotationsMenu.add(annotationPanelMenuItem);
+ annotationsMenu.addSeparator();
annotationsMenu.add(showAlignmentAnnotations);
annotationsMenu.add(showSequenceAnnotations);
annotationsMenu.add(sortAnnBySequence);
private CheckboxMenuItem showAutoLast;
+ private SplitFrame splitFrame;
+
/**
* Attach the alignFrame panels after embedding menus, if necessary. This used
* to be called setEmbedded, but is now creates the dropdown menus in a
add(alignPanel, BorderLayout.CENTER);
// and register with the applet so it can pass external API calls to us
jalview.bin.JalviewLite.addFrame(this, this.getTitle(),
- DEFAULT_WIDTH,
- DEFAULT_HEIGHT);
+ frameWidth,
+ frameHeight);
}
}
return false;
}
+ public SplitFrame getSplitFrame()
+ {
+ return this.splitFrame;
+ }
+
+ public void setSplitFrame(SplitFrame sf)
+ {
+ this.splitFrame = sf;
+ }
+
+ // may not need this
+ @Override
+ public void setShowSeqFeatures(boolean b)
+ {
+ // showSeqFeatures.setSelected(b);
+ viewport.setShowSequenceFeatures(b);
+
+ }
+
+ @Override
+ public void setMenusForViewport()
+ {
+ // setMenusFromViewport(viewport);
+
+ }
+ @Override
+ public void refreshFeatureUI(boolean enableIfNecessary)
+ {
+ if (enableIfNecessary)
+ {
+ sequenceFeatures.setState(true);
+ alignPanel.av.setShowSequenceFeatures(true);
+ }
+ }
+
+ @Override
+ public FeatureSettingsControllerI getFeatureSettingsUI()
+ {
+ return alignPanel.av.featureSettings;
+ }
+
}