+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.gui;
+import jalview.api.SplitContainerI;
+import jalview.api.ViewStyleI;
+import jalview.datamodel.AlignmentI;
+import jalview.jbgui.GAlignFrame;
+import jalview.jbgui.GSplitFrame;
+import jalview.structure.StructureSelectionManager;
+import jalview.viewmodel.AlignmentViewport;
+
import java.awt.Component;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
-import jalview.api.SplitContainerI;
-import jalview.api.ViewStyleI;
-import jalview.datamodel.AlignmentI;
-import jalview.jbgui.GAlignFrame;
-import jalview.jbgui.GSplitFrame;
-import jalview.structure.StructureSelectionManager;
-import jalview.viewmodel.AlignmentViewport;
-
/**
* An internal frame on the desktop that hosts a horizontally split view of
* linked DNA and Protein alignments. Additional views can be created in linked
// about 50 pixels for the SplitFrame's title bar etc
int height = ((AlignFrame) getTopFrame()).getHeight()
+ ((AlignFrame) getBottomFrame()).getHeight() + 50;
- height = Math.min(height, Desktop.instance.getHeight() - 20);
- // setSize(AlignFrame.DEFAULT_WIDTH, Desktop.instance.getHeight() - 20);
+ // about 65 pixels for Desktop decorators on Windows
+ height = Math.min(height, Desktop.instance.getHeight() - 65);
setSize(width, height);
adjustLayout();
addCloseFrameListener();
-
+
addKeyListener();
addKeyBindings();
@Override
public void internalFrameClosed(InternalFrameEvent evt)
{
- if (getTopFrame() instanceof AlignFrame)
- {
- ((AlignFrame) getTopFrame())
- .closeMenuItem_actionPerformed(true);
- }
- if (getBottomFrame() instanceof AlignFrame)
- {
- ((AlignFrame) getBottomFrame())
- .closeMenuItem_actionPerformed(true);
- }
+ close();
};
});
}
*/
protected void addKeyListener()
{
- addKeyListener(new KeyAdapter() {
+ addKeyListener(new KeyAdapter()
+ {
@Override
public void keyPressed(KeyEvent e)
}
}
}
-
+
});
}
{
AlignFrame topFrame = (AlignFrame) getTopFrame();
AlignFrame bottomFrame = (AlignFrame) getBottomFrame();
+ final boolean scaleProteinAsCdna = topFrame.viewport
+ .isScaleProteinAsCdna();
AlignmentPanel newTopPanel = topFrame.newView(null, true);
AlignmentPanel newBottomPanel = bottomFrame.newView(null, true);
newBottomPanel.av.viewName = newTopPanel.av.viewName;
newTopPanel.av.setCodingComplement(newBottomPanel.av);
+ /*
+ * These lines can be removed once scaleProteinAsCdna is added to element
+ * Viewport in jalview.xsd, as Jalview2XML.copyAlignPanel will then take
+ * care of it
+ */
+ newTopPanel.av.setScaleProteinAsCdna(scaleProteinAsCdna);
+ newBottomPanel.av.setScaleProteinAsCdna(scaleProteinAsCdna);
+
+ /*
+ * Line up id labels etc
+ */
+ adjustLayout();
+
final StructureSelectionManager ssm = StructureSelectionManager
.getStructureSelectionManager(Desktop.instance);
ssm.addCommandListener(newTopPanel.av);
overrideKeyBinding(key_cmdF, action);
}
}
-