Text alignment changes
[jalview.git] / src / jalview / gui / IdPanel.java
1 package jalview.gui;\r
2 \r
3 import java.awt.*;\r
4 import java.awt.event.*;\r
5 \r
6 import jalview.datamodel.*;\r
7 \r
8 import javax.swing.*;\r
9 \r
10 public class IdPanel extends JPanel implements MouseListener, MouseMotionListener {\r
11 \r
12   protected IdCanvas       idCanvas;\r
13   protected AlignViewport  av;\r
14   protected AlignmentPanel alignPanel;\r
15 \r
16   protected int            offy;\r
17   public    int            width;\r
18   public    int            lastid;\r
19 \r
20 \r
21   public IdPanel(AlignViewport av, AlignmentPanel parent)\r
22   {\r
23     this.av         = av;\r
24     alignPanel = parent;\r
25     idCanvas = new IdCanvas(av);\r
26     setLayout(new BorderLayout());\r
27     add(idCanvas, BorderLayout.CENTER);\r
28     addMouseListener(this);\r
29     addMouseMotionListener(this);\r
30   }\r
31 \r
32   public void mouseMoved(MouseEvent e) {}\r
33 \r
34   public void selectSeqs(int start, int end) {\r
35      if (end < start) {\r
36        int tmp = start;\r
37        start = end;\r
38        end   = tmp;\r
39      }\r
40 \r
41      for (int i = start; i <= end; i++)\r
42      {\r
43        SequenceI pickedSeq = av.getAlignment().getSequenceAt(i);\r
44 \r
45        if (av.getSelection().contains(pickedSeq))\r
46          av.getSelection().removeElement(pickedSeq);\r
47         else\r
48          av.getSelection().addElement(pickedSeq);\r
49 \r
50      }\r
51 \r
52      repaint();\r
53 \r
54    }\r
55 \r
56   public void mouseDragged(MouseEvent e) {\r
57     int y = e.getY();\r
58     int seq = av.getIndex(y);\r
59 \r
60 \r
61 \r
62 \r
63     if (seq < lastid)\r
64       selectSeqs(lastid - 1, seq);\r
65     else if (seq > lastid)\r
66       selectSeqs(lastid + 1, seq);\r
67 \r
68     lastid = seq;\r
69 \r
70     return;\r
71   }\r
72 \r
73   public void mouseClicked(MouseEvent e)\r
74   {\r
75     if (e.getClickCount() == 2)\r
76     {\r
77        int seq = av.getIndex(e.getY());\r
78        String id = av.getAlignment().getSequenceAt(seq).getName();\r
79 \r
80        try{\r
81          jalview.util.BrowserLauncher.openURL(\r
82              "http://srs.ebi.ac.uk/srs7bin/cgi-bin/wgetz?-e+[swall-id:" + id +\r
83              "]+-vn+2");\r
84        }catch(Exception ex){ex.printStackTrace();}\r
85     }\r
86 \r
87   }\r
88   public void mouseEntered(MouseEvent e) { }\r
89   public void mouseExited (MouseEvent e) { }\r
90 \r
91   public void mousePressed(MouseEvent e) {\r
92     if (e.getClickCount() == 2)\r
93       return;\r
94 \r
95     int y = e.getY();\r
96     int seq = av.getIndex(y);\r
97 \r
98 \r
99       if( javax.swing.SwingUtilities.isRightMouseButton(e))\r
100       {\r
101         String id = av.getAlignment().getSequenceAt(seq).getName();\r
102         String s = (String)JOptionPane.showInternalInputDialog(\r
103                     this,\r
104                     "Edit sequence name",\r
105                     "Edit sequence name",\r
106                     JOptionPane.PLAIN_MESSAGE,\r
107                     null,\r
108                     null,\r
109                     id);\r
110 \r
111         if(s!=null)\r
112         {\r
113           av.getAlignment().getSequenceAt(seq).setName(s);\r
114           alignPanel.RefreshPanels();\r
115         }\r
116 \r
117       }\r
118       else\r
119       {\r
120         if (seq != -1)\r
121           selectSeqs(seq,seq);\r
122 \r
123         lastid = seq;\r
124       }\r
125     return;\r
126   }\r
127 \r
128   public void mouseReleased(MouseEvent e)\r
129   {\r
130     lastid = -1;\r
131     PaintRefresher.Refresh(this);\r
132   }\r
133 }\r