source: branches/2.2/jabberit_messenger/java_source/src/nu/fw/jeti/ui/StatusMessagesWindow.java @ 3102

Revision 3102, 11.5 KB checked in by amuller, 14 years ago (diff)

Ticket #986 - Efetuado merge para o Branch 2.2( atualizacao do modulo)

  • Property svn:executable set to *
Line 
1package nu.fw.jeti.ui;
2
3import java.awt.BorderLayout;
4import java.awt.Dimension;
5import java.awt.event.ActionEvent;
6import java.awt.event.FocusEvent;
7import java.awt.event.KeyEvent;
8import java.util.ArrayList;
9import java.util.List;
10
11import javax.swing.*;
12import javax.swing.BoxLayout;
13import javax.swing.JButton;
14import javax.swing.JFrame;
15import javax.swing.JPanel;
16import javax.swing.JScrollPane;
17import javax.swing.JTextField;
18import javax.swing.JToggleButton;
19
20import nu.fw.jeti.jabber.elements.Presence;
21import nu.fw.jeti.util.I18N;
22import nu.fw.jeti.util.Preferences;
23import nu.fw.jeti.util.Utils;
24
25/**
26 * <p>Title: im</p>
27 * <p>Description: </p>
28 * <p>Copyright: Copyright (c) 2001</p>
29 * <p>Company: </p>
30 * @author E.S. de Boer
31 * @version 1.0
32 */
33
34public class StatusMessagesWindow extends JFrame
35{
36        //status messages editor
37//      public final static int CHAT=0;
38//      public final static int AVAILABLE=1;
39//      public final static int DND=2;
40//      public final static int AWAY=3;
41//      public final static int XA=4;
42    private JPanel jPanel1 = new JPanel();
43    private JToggleButton btnChat = new JToggleButton();
44    private JToggleButton btnAvailable = new JToggleButton();
45    private JToggleButton btnDnD = new JToggleButton();
46    private JToggleButton btnAway = new JToggleButton();
47    private JToggleButton btnXA = new JToggleButton();
48    private JPanel jPanel2 = new JPanel();
49    private JButton btnOK = new JButton();
50    private JButton btnCancel = new JButton();
51    private JPanel jPanel3 = new JPanel();
52    private JPanel jPanel4 = new JPanel();
53    private JButton btnAdd = new JButton();
54    private JButton btnRemove = new JButton();
55    private JScrollPane jScrollPane1 = new JScrollPane();
56    private JPanel[] messagePanels = new JPanel[5];
57    //private JButton btnUp = new JButton();
58        private JButton btnUp = new javax.swing.plaf.basic.BasicArrowButton(SwingConstants.SOUTH);
59        private JButton btnDown = new javax.swing.plaf.basic.BasicArrowButton(SwingConstants.NORTH);
60    //private JButton btnDown = new JButton();
61        private int selectedStatus = Presence.AVAILABLE;
62        private JTextField selectedTextField;
63
64    public StatusMessagesWindow()
65    {
66                for(int tel=0;tel<5;tel++)
67                {
68                        JPanel tempPanel = new JPanel();
69                    //tempPanel.setLayout(new VerticalLayout(0,VerticalLayout.BOTH));
70                        tempPanel.setLayout(new BoxLayout(tempPanel,BoxLayout.Y_AXIS));
71
72                        List tempList = nu.fw.jeti.util.Preferences.getStatusMessages(tel+1);
73                    for(int i=0;i<tempList.size();i++)
74                        {
75                                JTextField tempTextField =new JTextField((String)tempList.get(i));
76                                tempTextField.addFocusListener(new java.awt.event.FocusAdapter()
77                                {
78                                        public void focusGained(FocusEvent e)
79                                        {
80                                                selectedTextField =(JTextField)e.getSource();
81                                        }
82                                });
83                                tempPanel.add(tempTextField);
84                        }
85                        messagePanels[tel] = tempPanel;
86                }
87
88        try
89        {
90            jbInit();
91                        pack();
92                        setLocationRelativeTo(null);
93        }
94        catch(Exception e)
95        {
96            e.printStackTrace();
97        }
98    }
99
100//      private String getStatus(int status)
101//      {
102//              switch (status)
103//              {
104//                  case 0: return "chat";
105//                      case 1: return "available";
106//                      case 3: return "dnd";
107//                      case 2: return "away";
108//                      default: return "xa";
109//              }
110//
111//      }
112
113    private void jbInit() throws Exception
114    {
115                setTitle(I18N.gettext("main.statusmessages.Manage_Status_Messages"));
116                //setIconImage(nu.fw.jeti.images.StatusIcons.getImageIcon("jeti").getImage());
117        Dimension dim = new Dimension(Integer.MAX_VALUE, 27);
118            btnChat.setMaximumSize(dim);
119        //btnChat.setPreferredSize(new Dimension(121, 27));
120        btnChat.setText(I18N.gettext("main.presence.Free_for_Chat"));
121        btnChat.addActionListener(new java.awt.event.ActionListener()
122        {
123            public void actionPerformed(ActionEvent e)
124            {
125                messageButtons_actionPerformed(e);
126            }
127        });
128        btnAvailable.setMaximumSize(new Dimension(dim));
129        //btnAvailable.setPreferredSize(new Dimension(121, 27));
130        btnAvailable.setSelected(true);
131        btnAvailable.setText(I18N.gettext("main.presence.Available"));
132        btnAvailable.addActionListener(new java.awt.event.ActionListener()
133        {
134            public void actionPerformed(ActionEvent e)
135            {
136                messageButtons_actionPerformed(e);
137            }
138        });
139        btnDnD.setMaximumSize(dim);
140        //btnDnD.setPreferredSize(new Dimension(121, 27));
141        btnDnD.setText(I18N.gettext("main.presence.Do_not_Disturb"));
142        btnDnD.addActionListener(new java.awt.event.ActionListener()
143        {
144            public void actionPerformed(ActionEvent e)
145            {
146                messageButtons_actionPerformed(e);
147            }
148        });
149        btnAway.setMaximumSize(dim);
150        //btnAway.setPreferredSize(new Dimension(121, 27));
151        btnAway.setText(I18N.gettext("main.presence.Away"));
152        btnAway.addActionListener(new java.awt.event.ActionListener()
153        {
154            public void actionPerformed(ActionEvent e)
155            {
156                messageButtons_actionPerformed(e);
157            }
158        });
159        btnXA.setText(I18N.gettext("main.presence.Extended_Away"));
160        btnXA.addActionListener(new java.awt.event.ActionListener()
161        {
162            public void actionPerformed(ActionEvent e)
163            {
164                messageButtons_actionPerformed(e);
165            }
166        });
167                //jPanel1.setLayout(new VerticalLayout());
168                jPanel1.setLayout(new BoxLayout(jPanel1,BoxLayout.Y_AXIS));
169        //btnOK.setMnemonic('O');
170        btnOK.setText(I18N.gettext("OK"));
171        getRootPane().setDefaultButton(btnOK);
172        btnOK.addActionListener(new java.awt.event.ActionListener()
173        {
174            public void actionPerformed(ActionEvent e)
175            {
176                btnOK_actionPerformed(e);
177            }
178        });
179         
180        Action cancelAction = new AbstractAction(I18N.gettext("Cancel"))
181                {
182                        public void actionPerformed(ActionEvent e)
183                        {
184                                dispose();
185                        }
186                };
187                Utils.addCancelButton(this, btnCancel, cancelAction);
188             
189        jPanel3.setLayout(new BorderLayout());
190        //btnAdd.setMnemonic('A');
191        //btnAdd.setText(I18N.gettext("main.statusmessages.Add"));
192        I18N.setTextAndMnemonic("main.statusmessages.Add",btnAdd);
193        btnAdd.addActionListener(new java.awt.event.ActionListener()
194        {
195            public void actionPerformed(ActionEvent e)
196            {
197                btnAdd_actionPerformed(e);
198            }
199        });
200        //btnRemove.setMnemonic('R');
201        //btnRemove.setText(I18N.gettext("main.statusmessages.Remove"));
202        I18N.setTextAndMnemonic("main.statusmessages.Remove",btnRemove);
203        btnRemove.addActionListener(new java.awt.event.ActionListener()
204        {
205            public void actionPerformed(ActionEvent e)
206            {
207                btnRemove_actionPerformed(e);
208            }
209        });
210
211        //btnUp.setIcon(StatusIcons.getImageIcon("arrowUp"));
212        btnUp.addActionListener(new java.awt.event.ActionListener()
213        {
214            public void actionPerformed(ActionEvent e)
215            {
216                btnUp_actionPerformed(e);
217            }
218        });
219        //btnDown.setIcon(StatusIcons.getImageIcon("arrowDown"));
220        btnDown.addActionListener(new java.awt.event.ActionListener()
221        {
222            public void actionPerformed(ActionEvent e)
223            {
224                btnDown_actionPerformed(e);
225            }
226        });
227        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
228        this.getContentPane().add(jPanel1, BorderLayout.WEST);
229        jPanel1.add(btnChat, null);
230        jPanel1.add(btnAvailable, null);
231        jPanel1.add(btnDnD, null);
232        jPanel1.add(btnAway, null);
233        jPanel1.add(btnXA, null);
234        this.getContentPane().add(jPanel2, BorderLayout.SOUTH);
235        jPanel2.add(btnOK, null);
236        jPanel2.add(btnCancel, null);
237        this.getContentPane().add(jPanel3, BorderLayout.CENTER);
238        jPanel3.add(jPanel4,  BorderLayout.SOUTH);
239        jPanel4.add(btnAdd, null);
240        jPanel4.add(btnRemove, null);
241        jPanel4.add(btnUp, null);
242        jPanel4.add(btnDown, null);
243        jPanel3.add(jScrollPane1, BorderLayout.CENTER);
244
245        jScrollPane1.getViewport().add(messagePanels[selectedStatus-1]);
246
247    }
248
249    void messageButtons_actionPerformed(ActionEvent e)
250    {
251                btnChat.setSelected(false);
252                btnAvailable.setSelected(false);
253                btnDnD.setSelected(false);
254                btnAway.setSelected(false);
255                btnXA.setSelected(false);
256                JToggleButton toggleButton = (JToggleButton)e.getSource();
257                toggleButton.setSelected(true);
258                String buttonText = toggleButton.getText();
259                if(buttonText.equals(I18N.gettext("main.presence.Free_for_Chat"))) selectedStatus=Presence.FREE_FOR_CHAT;
260                else if(buttonText.equals(I18N.gettext("main.presence.Available"))) selectedStatus=Presence.AVAILABLE;
261                else if(buttonText.equals(I18N.gettext("main.presence.Do_not_Disturb"))) selectedStatus=Presence.DND;
262                else if(buttonText.equals(I18N.gettext("main.presence.Away"))) selectedStatus=Presence.AWAY;
263                else selectedStatus=Presence.XA;
264                jScrollPane1.getViewport().add(messagePanels[selectedStatus-1]);
265                jScrollPane1.validate();
266
267    }
268
269    void btnAdd_actionPerformed(ActionEvent e)
270    {
271                JTextField tempTextField =new JTextField();
272                        tempTextField.addFocusListener(new java.awt.event.FocusAdapter()
273                        {
274                                public void focusGained(FocusEvent e)
275                                {
276                                        selectedTextField =(JTextField)e.getSource();
277                                }
278                        });
279                messagePanels[selectedStatus-1].add(tempTextField);
280                messagePanels[selectedStatus-1].validate();
281                jScrollPane1.validate();
282    }
283
284    void btnRemove_actionPerformed(ActionEvent e)
285    {
286                //if(messagePanels[selectedStatus].co
287                if(selectedTextField !=null)
288                {
289                        messagePanels[selectedStatus-1].remove(selectedTextField);
290                    messagePanels[selectedStatus-1].validate();
291                    messagePanels[selectedStatus-1].updateUI() ;
292                }
293    }
294
295    void btnUp_actionPerformed(ActionEvent e)
296    {
297                JPanel  tempPanel =messagePanels[selectedStatus-1];
298                java.awt.Component[] components =  tempPanel.getComponents();
299                for(int tel=0;tel<components.length -1;tel++)
300                {
301                    if(components[tel].equals(selectedTextField))
302                        {
303                                JTextField tempTextField = (JTextField)components[tel+1];
304                                String message = selectedTextField.getText();
305                                selectedTextField.setText(tempTextField.getText());
306                                tempTextField.setText(message);
307                                selectedTextField = tempTextField;
308                                tempPanel.validate();
309                                return;
310                        }
311                }
312        }
313
314    void btnDown_actionPerformed(ActionEvent e)
315    {
316                JPanel  tempPanel =messagePanels[selectedStatus-1];
317                java.awt.Component[] components =  tempPanel.getComponents();
318                for(int tel=1;tel<components.length;tel++)
319                {
320                    if(components[tel].equals(selectedTextField))
321                        {
322                                JTextField tempTextField = (JTextField)components[tel-1];
323                                String message = selectedTextField.getText();
324                                selectedTextField.setText(tempTextField.getText());
325                                tempTextField.setText(message);
326                                selectedTextField = tempTextField;
327                                tempPanel.validate();
328                                return;
329                        }
330                }
331    }
332
333    void btnOK_actionPerformed(ActionEvent e)
334    {
335                for(int tel=0;tel<5;tel++)
336                {
337                        java.awt.Component[] components = messagePanels[tel].getComponents();
338                        List tempList = new ArrayList(components.length);
339                        //for(int i=components.length-1;i>=0;i--)
340                        for(int i=0;i<components.length;i++)
341                        {
342                                tempList.add(((JTextField)components[i]).getText());
343                        }
344                        //main.savePreference(getStatus(tel),tempList);
345                        Preferences.saveStatusMessages(tel+1,tempList);
346                }
347                Preferences.saveToServer(); 
348                StatusButton.reloadMessages();
349                this.dispose();
350    }
351
352}
353/*
354 * Overrides for emacs
355 * Local variables:
356 * tab-width: 4
357 * End:
358 */
Note: See TracBrowser for help on using the repository browser.