*/
package jalview.appletgui;
+import jalview.analysis.AlignmentUtils;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.util.MessageManager;
+import jalview.util.ParseHtmlBodyAndLinks;
+
import java.awt.Checkbox;
import java.awt.CheckboxMenuItem;
import java.awt.Color;
import java.util.Collections;
import java.util.Vector;
-import jalview.analysis.AlignmentUtils;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.Annotation;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.util.MessageManager;
-import jalview.util.ParseHtmlBodyAndLinks;
-
public class AnnotationLabels extends Panel implements ActionListener,
MouseListener, MouseMotionListener
{
return row;
}
+ @Override
public void actionPerformed(ActionEvent evt)
{
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
boolean resizePanel = false;
+ @Override
public void mouseMoved(MouseEvent evt)
{
resizePanel = evt.getY() < 10 && evt.getX() < 14;
dragCancelled = true;
}
+ @Override
public void mouseDragged(MouseEvent evt)
{
if (dragCancelled)
av.calcPanelHeight());
f.height += dif;
ap.seqPanelHolder.setPreferredSize(f);
- ap.setScrollValues(av.getStartRes(), av.getStartSeq());
+ ap.setScrollValues(av.getRanges().getStartRes(), av.getRanges()
+ .getStartSeq());
ap.validate();
// ap.paintAlignment(true);
ap.addNotify();
}
}
+ @Override
public void mouseClicked(MouseEvent evt)
{
}
+ @Override
public void mouseReleased(MouseEvent evt)
{
if (!resizePanel && !dragCancelled)
ap.annotationPanel.repaint();
}
+ @Override
public void mouseEntered(MouseEvent evt)
{
if (evt.getY() < 10 && evt.getX() < 14)
}
}
+ @Override
public void mouseExited(MouseEvent evt)
{
dragCancelled = false;
repaint();
}
+ @Override
public void mousePressed(MouseEvent evt)
{
oldY = evt.getY();
final AlignmentAnnotation aaa = aa[selectedRow];
cbmi.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
if (aaa.groupRef != null)
if (aaa.groupRef != null)
{
final CheckboxMenuItem chist = new CheckboxMenuItem(
- MessageManager.getString("label.show_group_histogram"),
+ MessageManager
+ .getString("label.show_group_histogram"),
aa[selectedRow].groupRef.isShowConsensusHistogram());
chist.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
// TODO: pass on reference
aa[selectedRow].groupRef.isShowSequenceLogo());
cprofl.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
// TODO: pass on reference
popup.add(cprofl);
final CheckboxMenuItem cprofn = new CheckboxMenuItem(
- MessageManager.getString("label.normalise_group_logo"),
+ MessageManager
+ .getString("label.normalise_group_logo"),
aa[selectedRow].groupRef.isNormaliseSequenceLogo());
cprofn.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
// TODO: pass on reference
else
{
final CheckboxMenuItem chist = new CheckboxMenuItem(
- MessageManager.getString("label.show_histogram"), av.isShowConsensusHistogram());
+ MessageManager.getString("label.show_histogram"),
+ av.isShowConsensusHistogram());
chist.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
// TODO: pass on reference
});
popup.add(chist);
final CheckboxMenuItem cprof = new CheckboxMenuItem(
- MessageManager.getString("label.show_logo"), av.isShowSequenceLogo());
+ MessageManager.getString("label.show_logo"),
+ av.isShowSequenceLogo());
cprof.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
// TODO: pass on reference
});
popup.add(cprof);
final CheckboxMenuItem cprofn = new CheckboxMenuItem(
- MessageManager.getString("label.normalise_logo"), av.isNormaliseSequenceLogo());
+ MessageManager.getString("label.normalise_logo"),
+ av.isNormaliseSequenceLogo());
cprofn.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
// TODO: pass on reference
// todo: make the ap scroll to the selection - not necessary, first
// click highlights/scrolls, second selects
ap.seqPanel.ap.idPanel.highlightSearchResults(null);
- ap.av.setSelectionGroup(// new SequenceGroup(
- aa[selectedRow].groupRef); // );
- ap.av.sendSelection();
+ // process modifiers
+ SequenceGroup sg = ap.av.getSelectionGroup();
+ if (sg == null
+ || sg == aa[selectedRow].groupRef
+ || !(jalview.util.Platform.isControlDown(evt) || evt
+ .isShiftDown()))
+ {
+ if (jalview.util.Platform.isControlDown(evt)
+ || evt.isShiftDown())
+ {
+ // clone a new selection group from the associated group
+ ap.av.setSelectionGroup(new SequenceGroup(
+ aa[selectedRow].groupRef));
+ }
+ else
+ {
+ // set selection to the associated group so it can be edited
+ ap.av.setSelectionGroup(aa[selectedRow].groupRef);
+ }
+ }
+ else
+ {
+ // modify current selection with associated group
+ int remainToAdd = aa[selectedRow].groupRef.getSize();
+ for (SequenceI sgs : aa[selectedRow].groupRef.getSequences())
+ {
+ if (jalview.util.Platform.isControlDown(evt))
+ {
+ sg.addOrRemove(sgs, --remainToAdd == 0);
+ }
+ else
+ {
+ // notionally, we should also add intermediate sequences from
+ // last added sequence ?
+ sg.addSequence(sgs, --remainToAdd == 0);
+ }
+ }
+ }
ap.paintAlignment(false);
PaintRefresher.Refresh(ap, ap.av.getSequenceSetId());
+ ap.av.sendSelection();
}
else
{
{
if (evt.getClickCount() == 1)
{
- ap.seqPanel.ap.idPanel.highlightSearchResults(Arrays
- .asList(new SequenceI[]
- { aa[selectedRow].sequenceRef }));
+ ap.seqPanel.ap.idPanel
+ .highlightSearchResults(Arrays
+ .asList(new SequenceI[] { aa[selectedRow].sequenceRef }));
}
else if (evt.getClickCount() >= 2)
{
ap.seqPanel.ap.idPanel.highlightSearchResults(null);
SequenceGroup sg = ap.av.getSelectionGroup();
- if (sg!=null)
+ if (sg != null)
{
- // we make a copy rather than edit the current selection if no modifiers pressed
+ // we make a copy rather than edit the current selection if no
+ // modifiers pressed
// see Enhancement JAL-1557
- if (!(evt.isControlDown() || evt.isShiftDown()))
+ if (!(jalview.util.Platform.isControlDown(evt) || evt
+ .isShiftDown()))
{
sg = new SequenceGroup(sg);
sg.clear();
sg.addSequence(aa[selectedRow].sequenceRef, false);
- } else {
- if (evt.isControlDown())
+ }
+ else
+ {
+ if (jalview.util.Platform.isControlDown(evt))
{
sg.addOrRemove(aa[selectedRow].sequenceRef, true);
- } else {
- // notionally, we should also add intermediate sequences from last added sequence ?
+ }
+ else
+ {
+ // notionally, we should also add intermediate sequences from
+ // last added sequence ?
sg.addSequence(aa[selectedRow].sequenceRef, true);
}
}
- } else {
+ }
+ else
+ {
sg = new SequenceGroup();
sg.setStartRes(0);
- sg.setEndRes(ap.av.getAlignment().getWidth()-1);
+ sg.setEndRes(ap.av.getAlignment().getWidth() - 1);
sg.addSequence(aa[selectedRow].sequenceRef, false);
}
ap.av.setSelectionGroup(sg);
+ sq.getSequenceAsString() + "\n");
if (av.hasHiddenColumns())
{
- jalview.appletgui.AlignFrame.copiedHiddenColumns = new Vector();
- for (int[] region : av.getColumnSelection().getHiddenColumns())
- {
- jalview.appletgui.AlignFrame.copiedHiddenColumns
- .addElement(new int[]
- { region[0], region[1] });
- }
+ jalview.appletgui.AlignFrame.copiedHiddenColumns = new Vector<>(
+ av.getAlignment().getHiddenColumns()
+ .getHiddenColumnsCopy());
}
}
+ @Override
public void update(Graphics g)
{
paint(g);
}
+ @Override
public void paint(Graphics g)
{
int w = getSize().width;