import javax.swing.event.InternalFrameEvent;
import jalview.analysis.TreeBuilder;
+import jalview.analysis.scoremodels.ScoreMatrix;
import jalview.analysis.scoremodels.ScoreModels;
import jalview.analysis.scoremodels.SimilarityParams;
import jalview.api.analysis.ScoreModelI;
private static final Font VERDANA_11PT = new Font("Verdana", 0, 11);
+
+ private static final int MIN_PAIRWISE_SELECTION = 2;
+
private static final int MIN_TREE_SELECTION = 3;
private static final int MIN_PCA_SELECTION = 4;
AlignFrame af;
+ JRadioButton pairwise;
+
JRadioButton pca;
JRadioButton neighbourJoining;
averageDistance = new JRadioButton(
MessageManager.getString("label.tree_calc_av"));
averageDistance.setOpaque(false);
+
+ pairwise = new JRadioButton(MessageManager.getString("label.pairwise_alignment"));
+ pairwise.setOpaque(false);
JPanel calcChoicePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
calcChoicePanel.setOpaque(false);
treePanel.add(averageDistance);
calcChoicePanel.add(treePanel);
+ calcChoicePanel.add(pairwise,FlowLayout.CENTER);
ButtonGroup calcTypes = new ButtonGroup();
calcTypes.add(pca);
calcTypes.add(neighbourJoining);
calcTypes.add(averageDistance);
+ calcTypes.add(pairwise);
ActionListener calcChanged = new ActionListener()
{
pca.addActionListener(calcChanged);
neighbourJoining.addActionListener(calcChanged);
averageDistance.addActionListener(calcChanged);
-
+ pairwise.addActionListener(calcChanged);
/*
* score models drop-down - with added tooltips!
*/
MIN_TREE_SELECTION);
boolean checkAverageDistance = checkEnabled(averageDistance, size,
MIN_TREE_SELECTION);
+ boolean checkPairwise = checkEnabled(pairwise, size,
+ MIN_PAIRWISE_SELECTION);
- if (checkPca || checkNeighbourJoining || checkAverageDistance)
+ if (checkPca || checkNeighbourJoining || checkAverageDistance || checkPairwise)
{
calculate.setToolTipText(null);
calculate.setEnabled(true);
if (doPCA)
{
openPcaPanel(modelName, params);
- }
- else
+ } else {
+ if (pairwise.isSelected())
+ {
+ openPairwisePanel(modelName,params);
+ } else
{
openTreePanel(modelName, params);
- }
+ }}
// closeFrame();
}
+ private void openPairwisePanel(String modelName, SimilarityParamsI params)
+ {
+ ScoreModelI sm = ScoreModels.getInstance().getScoreModel(modelName, af.alignPanel);
+ if (sm==null || !(sm instanceof ScoreMatrix))
+ {
+ return;
+ }
+ JInternalFrame frame = new JInternalFrame();
+ frame.setFrameIcon(null);
+ frame.setContentPane(new PairwiseAlignPanel(af.getViewport(),(ScoreMatrix)sm));
+ Desktop.addInternalFrame(frame,
+ MessageManager.getString("action.pairwise_alignment"), 600,
+ 500);
+ }
+
/**
* Open a new Tree panel on the desktop
*
new Thread(pcaPanel).start();
}
+
/**
*