import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.io.NewickFile;
+import jalview.schemes.AnnotationColourGradient;
import jalview.util.Comparison;
import jalview.util.MessageManager;
import jalview.util.Platform;
consclipbrd.addActionListener(this);
pop.add(consclipbrd);
}
+
+ addColourOrFilterByOptions(ap,aa[selectedRow],pop);
+
if (aa[selectedRow].graph == AlignmentAnnotation.CONTACT_MAP)
{
-
- final ContactMatrixI cm = av.getContactMatrix(aa[selectedRow]);
- if (cm != null)
+ addContactMatrixOptions(ap,aa[selectedRow],pop);
+ // Set/adjust threshold for grouping ?
+ // colour alignment by this [type]
+ // select/hide columns by this row
+
+ }
+ }
+
+ pop.show(this, evt.getX(), evt.getY());
+ }
+
+ static void addColourOrFilterByOptions(final AlignmentPanel ap,
+ final AlignmentAnnotation alignmentAnnotation, final JPopupMenu pop)
+ {
+ JMenuItem item;
+ item = new JMenuItem(MessageManager.getString("label.colour_by_annotation"));
+ item.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ AnnotationColourChooser.displayFor(ap.av, ap,alignmentAnnotation,false);
+ };
+ });
+ pop.add(item);
+ if (alignmentAnnotation.sequenceRef!=null)
+ {
+ item = new JMenuItem(MessageManager.getString("label.colour_by_annotation")+" ("+MessageManager.getString("label.per_seq")+")");
+ item.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
{
- pop.addSeparator();
+ AnnotationColourChooser.displayFor(ap.av, ap,alignmentAnnotation,true);
+ };
+ });
+ pop.add(item);
+ }
+ item = new JMenuItem(MessageManager.getString("action.select_by_annotation"));
+ item.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ AnnotationColumnChooser.displayFor(ap.av,ap,alignmentAnnotation);
+ };
+ });
+ pop.add(item);
+ }
+ static void addContactMatrixOptions(final AlignmentPanel ap,
+ final AlignmentAnnotation alignmentAnnotation, final JPopupMenu pop)
+ {
+
+ final ContactMatrixI cm = ap.av.getContactMatrix(alignmentAnnotation);
+ JMenuItem item;
+ if (cm != null)
+ {
+ pop.addSeparator();
- if (cm.hasGroups())
- {
- JCheckBoxMenuItem chitem = new JCheckBoxMenuItem("Show Groups on Matrix");
- boolean showGroups = aa[selectedRow].isShowGroupsForContactMatrix();
- final AlignmentAnnotation sel_row=aa[selectedRow];
- chitem.setState(showGroups);
- chitem.addActionListener(new ActionListener()
- {
+ if (cm.hasGroups())
+ {
+ JCheckBoxMenuItem chitem = new JCheckBoxMenuItem("Show Groups on Matrix");
+ boolean showGroups = alignmentAnnotation.isShowGroupsForContactMatrix();
+ final AlignmentAnnotation sel_row=alignmentAnnotation;
+ chitem.setState(showGroups);
+ chitem.addActionListener(new ActionListener()
+ {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- sel_row.setShowGroupsForContactMatrix(chitem.getState());
- ap.getAnnotationPanel()
- .paint(ap.getAnnotationPanel().getGraphics());
- }
- });
- pop.add(chitem);
- }
- if (cm.hasTree())
+ @Override
+ public void actionPerformed(ActionEvent e)
{
- item = new JMenuItem("Show Tree for Matrix");
- item.addActionListener(new ActionListener()
- {
+ sel_row.setShowGroupsForContactMatrix(chitem.getState());
+ ap.getAnnotationPanel()
+ .paint(ap.getAnnotationPanel().getGraphics());
+ }
+ });
+ pop.add(chitem);
+ }
+ if (cm.hasTree())
+ {
+ item = new JMenuItem("Show Tree for Matrix");
+ item.addActionListener(new ActionListener()
+ {
- @Override
- public void actionPerformed(ActionEvent e)
- {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
- ap.alignFrame.showContactMapTree(aa[selectedRow], cm);
+ ap.alignFrame.showContactMapTree(alignmentAnnotation, cm);
- }
- });
- pop.add(item);
}
- else
+ });
+ pop.add(item);
+ }
+ else
+ {
+ item = new JMenuItem("Calculate Tree for Matrix");
+ item.addActionListener(new ActionListener()
+ {
+ // TODO - refactor to analysis background thread
+ @Override
+ public void actionPerformed(ActionEvent e)
{
- item = new JMenuItem("Calculate Tree for Matrix");
- item.addActionListener(new ActionListener()
+ new Thread(new Runnable()
{
- // TODO - refactor to analysis background thread
@Override
- public void actionPerformed(ActionEvent e)
+ public void run()
{
- new Thread(new Runnable()
- {
- @Override
- public void run()
- {
- AlignmentAnnotation alan = aa[selectedRow];
- cm.setGroupSet(GroupSet.makeGroups(cm, 5f, true));
- ap.alignFrame.showContactMapTree(alan, cm);
- }
- }).start();
+ AlignmentAnnotation alan = alignmentAnnotation;
+ cm.setGroupSet(GroupSet.makeGroups(cm, 5f, true));
+ ap.alignFrame.showContactMapTree(alan, cm);
}
- });
- pop.add(item);
-
+ }).start();
}
- // Show/Hide group shading on matrix view
- // Set/adjust threshold for grouping ?
- // colour alignment by this [type]
- // select/hide columns by this row
-
- }
+ });
+ pop.add(item);
}
}
- pop.show(this, evt.getX(), evt.getY());
}
/**