X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FIdPanel.java;h=939a65effad7f8e993120b2b82e37f936137b9dc;hb=c865a01627208f07db46ae7d28c06f39d83924ee;hp=26d419924fd04b940946ebb7152a6783036807ed;hpb=1ecf6419aba86993b3c223bf5ec0fa79427baf85;p=jalview.git diff --git a/src/jalview/gui/IdPanel.java b/src/jalview/gui/IdPanel.java index 26d4199..939a65e 100755 --- a/src/jalview/gui/IdPanel.java +++ b/src/jalview/gui/IdPanel.java @@ -17,10 +17,7 @@ public class IdPanel extends JPanel implements MouseListener, MouseMotionListene public int width; public int lastid; - - - boolean mouseDown; - boolean mouseUp; + SequenceGroup selectedSequenceGroup; public IdPanel(AlignViewport av, AlignmentPanel parent) { @@ -36,91 +33,118 @@ public class IdPanel extends JPanel implements MouseListener, MouseMotionListene public void mouseMoved(MouseEvent e) {} public void selectSeqs(int start, int end) { - if (end < start) { + if (end < start) + { int tmp = start; start = end; end = tmp; } - for (int i = start; i <= end; i++) { + for (int i = start; i <= end; i++) + { SequenceI pickedSeq = av.getAlignment().getSequenceAt(i); - - if (av.getSelection().contains(pickedSeq)) { + if (av.getSelection().contains(pickedSeq)) + { av.getSelection().removeElement(pickedSeq); - } else { + selectedSequenceGroup.deleteSequence(pickedSeq); + } + else + { av.getSelection().addElement(pickedSeq); + if(selectedSequenceGroup==null) + { + selectedSequenceGroup = new SequenceGroup(); + av.setRubberbandGroup( selectedSequenceGroup ); + // av.alignment.addGroup( selectedSequenceGroup ); + selectedSequenceGroup.setStartRes(0); + selectedSequenceGroup.setEndRes( pickedSeq.getSequence().length()); + } + + selectedSequenceGroup.addSequence( pickedSeq ); } + } + alignPanel.seqPanel.seqCanvas.paintFlag=true; + alignPanel.repaint(); repaint(); } public void mouseDragged(MouseEvent e) { int y = e.getY(); - int seq = av.getIndex(y); - if (mouseDown == true) { - if (seq < lastid) { - selectSeqs(lastid-1,seq); - } else if (seq > lastid) { - selectSeqs(lastid+1,seq); - } - lastid = seq; - } + if (seq < lastid) + selectSeqs(lastid - 1, seq); + else if (seq > lastid) + selectSeqs(lastid + 1, seq); + + lastid = seq; return; } - public void mouseClicked(MouseEvent e) { } + public void mouseClicked(MouseEvent e) + { + if (e.getClickCount() == 2) + { + int seq = av.getIndex(e.getY()); + String id = av.getAlignment().getSequenceAt(seq).getName(); + + try{ + jalview.util.BrowserLauncher.openURL( + "http://srs.ebi.ac.uk/srs7bin/cgi-bin/wgetz?-e+[swall-id:" + id + + "]+-vn+2"); + }catch(Exception ex){ex.printStackTrace();} + } + + } public void mouseEntered(MouseEvent e) { } public void mouseExited (MouseEvent e) { } public void mousePressed(MouseEvent e) { - int x = e.getX(); - int y = e.getY(); + if (e.getClickCount() == 2) + return; + int y = e.getY(); int seq = av.getIndex(y); - mouseDown = true; - - if( javax.swing.SwingUtilities.isRightMouseButton(e)) - { - String id = av.getAlignment().getSequenceAt(seq).getName(); - String s = (String)JOptionPane.showInputDialog( - this, - "Edit sequence name", - "Edit sequence name", - JOptionPane.PLAIN_MESSAGE, - null, - null, - id); - - if(s!=null) - { - av.getAlignment().getSequenceAt(seq).setName(s); - alignPanel.RefreshPanels(); - } - - } - else - { - if (seq != -1) - selectSeqs(seq,seq); - - lastid = seq; - } + if (javax.swing.SwingUtilities.isRightMouseButton(e)) + { + jalview.gui.PopupMenu pop = new jalview.gui.PopupMenu(alignPanel, + av.getAlignment().getSequenceAt(seq)); + pop.show(this, e.getX(), y); + return; + } + + + + if(av.getRubberbandGroup()!=null && (av.getRubberbandGroup().getSize() == av.getSelection().size())) + selectedSequenceGroup = av.getRubberbandGroup(); + + if (selectedSequenceGroup == null) + { + selectedSequenceGroup = new SequenceGroup(); + av.setRubberbandGroup(selectedSequenceGroup); + } + + selectedSequenceGroup.setStartRes(0); + selectedSequenceGroup.setEndRes(av.getAlignment().getWidth() - 1); + + if (seq != -1) + selectSeqs(seq, seq); + + lastid = seq; + + return; } - public void mouseReleased(MouseEvent e) { + public void mouseReleased(MouseEvent e) + { lastid = -1; - - mouseDown = false; - mouseUp = true; - PaintRefresher.Refresh(this); - + selectedSequenceGroup = null; } }