import java.awt.Container;
import java.awt.Dimension;
+import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Rectangle;
protected void openLinkedAlignment(AlignmentI al, String title)
{
String[] options = new String[] { MessageManager.getString("action.no"),
- MessageManager.getString("label.split_window"),
- MessageManager.getString("label.new_window"), };
+ MessageManager.getString("label.split_window")
+ + "(update new alignment)",
+ MessageManager.getString("label.new_window"),
+ MessageManager.getString(
+ "label.split_window") + "(update this alignment)",
+ MessageManager.getString(
+ "label.split_window") + "(leave both unchanged)" };
final String question = JvSwingUtils.wrapTooltip(true,
MessageManager.getString("label.open_split_window?"));
final AlignViewport us = this;
.setResponseHandler(0, () -> {
addDataToAlignment(al);
}).setResponseHandler(1, () -> {
- us.openLinkedAlignmentAs(al, title, true);
+ us.openLinkedAlignmentAs(al, title, true, 1);
}).setResponseHandler(2, () -> {
- us.openLinkedAlignmentAs(al, title, false);
+ us.openLinkedAlignmentAs(al, title, false, 1);
+ }).setResponseHandler(3, () -> {
+ us.openLinkedAlignmentAs(al, title, true, 2);
+ }).setResponseHandler(4, () -> {
+ us.openLinkedAlignmentAs(al, title, true, 0);
});
+ dialog.setLayout(new FlowLayout(FlowLayout.CENTER));
+ dialog.setPreferredSize(new Dimension(350,300));
dialog.showDialog(question,
MessageManager.getString("label.open_split_window"),
JvOptionPane.DEFAULT_OPTION, JvOptionPane.PLAIN_MESSAGE, null,
options, options[0]);
}
- protected void openLinkedAlignmentAs(AlignmentI al, String title,
- boolean newWindowOrSplitPane)
+ /**
+ * link given alignment to the alignment in this viewport and open
+ * @param al - alignment containing sequences to link to this alignment
+ * @param title
+ * @param newWindowOrSplitPane
+ * @param alignAs TODO
+ * @param alignAs - 0 - don't modify either alignment, 1 - align al according to us, 2- align us according to al
+ * @return alignFrame holding al
+ */
+ protected AlignFrame openLinkedAlignmentAs(AlignmentI al, String title,
+ boolean newWindowOrSplitPane, int alignAs)
{
/*
* Identify protein and dna alignments. Make a copy of this one if opening
if (newWindowOrSplitPane)
{
- al.alignAs(thisAlignment);
+ if (alignAs==1) {
+ al.alignAs(thisAlignment);
+ }
+ if (alignAs==2) {
+ thisAlignment.alignAs(al);
+ }
AlignmentI mapped = openSplitFrame(newAlignFrame, thisAlignment);
}
+ return newAlignFrame;
}
/**