/[schmitzm]/trunk/src/skrueger/swing/TranslationEditJPanel.java
ViewVC logotype

Diff of /trunk/src/skrueger/swing/TranslationEditJPanel.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 244 by alfonx, Wed Jul 29 09:33:33 2009 UTC revision 298 by alfonx, Tue Aug 11 12:18:00 2009 UTC
# Line 2  Line 2 
2   * Copyright (c) 2009 Martin O. J. Schmitz.   * Copyright (c) 2009 Martin O. J. Schmitz.
3   *   *
4   * This file is part of the SCHMITZM library - a collection of utility   * This file is part of the SCHMITZM library - a collection of utility
5   * classes based on Java 1.6, focussing (not only) on Java Swing   * classes based on Java 1.6, focusing (not only) on Java Swing
6   * and the Geotools library.   * and the Geotools library.
7   *   *
8   * The SCHMITZM project is hosted at:   * The SCHMITZM project is hosted at:
# Line 30  Line 30 
30  package skrueger.swing;  package skrueger.swing;
31    
32  import java.awt.BorderLayout;  import java.awt.BorderLayout;
 import java.awt.Container;  
33  import java.awt.Dimension;  import java.awt.Dimension;
34  import java.awt.event.ActionEvent;  import java.awt.event.ActionEvent;
35  import java.awt.event.ActionListener;  import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;  
 import java.awt.event.KeyListener;  
 import java.beans.PropertyChangeListener;  
36  import java.util.HashSet;  import java.util.HashSet;
37  import java.util.List;  import java.util.List;
38    import java.util.Random;
39  import java.util.Set;  import java.util.Set;
40    import java.util.WeakHashMap;
41    
42  import javax.swing.BorderFactory;  import javax.swing.BorderFactory;
43  import javax.swing.JLabel;  import javax.swing.JLabel;
 import javax.swing.JPanel;  
44  import javax.swing.JTextField;  import javax.swing.JTextField;
45  import javax.swing.SpringLayout;  import javax.swing.SpringLayout;
46  import javax.swing.SwingConstants;  import javax.swing.SwingConstants;
47    
48  import org.apache.log4j.Logger;  import org.apache.log4j.Logger;
49    
50    import schmitzm.swing.JPanel;
51  import schmitzm.swing.SpringUtilities;  import schmitzm.swing.SpringUtilities;
52  import skrueger.i8n.Translation;  import skrueger.i8n.Translation;
53    
# Line 63  import skrueger.i8n.Translation; Line 61  import skrueger.i8n.Translation;
61   *   *
62   * @author Stefan Alfons Krüger   * @author Stefan Alfons Krüger
63   */   */
64  public class TranslationEditJPanel extends JPanel  {  public class TranslationEditJPanel extends JPanel {
65          static final protected Logger LOGGER = Logger          static final protected Logger LOGGER = Logger
66                          .getLogger(TranslationEditJPanel.class);                          .getLogger(TranslationEditJPanel.class);
67    
# Line 74  public class TranslationEditJPanel exten Line 72  public class TranslationEditJPanel exten
72          /**          /**
73           * Remembers all {@link JTextField} that have been created.           * Remembers all {@link JTextField} that have been created.
74           */           */
75          private Set<JTextField> langTextFields = new HashSet<JTextField>();           private Set<TranslationJTextField> langTextFields = new HashSet<TranslationJTextField>();
76            private WeakHashMap<ActionListener, ActionListener> actionListeners = new WeakHashMap<ActionListener, ActionListener>();
77    
78          /**          /**
79           * Creates a {@link JPanel} that asks the user for the translation of a           * Creates a {@link JPanel} that asks the user for the translation of a
# Line 107  public class TranslationEditJPanel exten Line 106  public class TranslationEditJPanel exten
106                                          .setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));                                          .setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));
107                          add(questionLable, BorderLayout.NORTH);                          add(questionLable, BorderLayout.NORTH);
108                  }                  }
109    
110                    /**
111                     * Add listeners
112                     */
113            }
114    
115            /**
116             * Creates a {@link JPanel} that asks the user for the translation of a
117             * String in several languages and additionally puts a {@link JLabel} with a
118             * question at the {@link JPanel}'s first row.
119             *
120             * <br/>
121             * This constructor also sets a TitledBorder with the given title.
122             */
123            public TranslationEditJPanel(Translation title, List<String> languages2,
124                            String borderTitle) {
125                    this(title, languages2);
126    
127                    setBorder(BorderFactory.createTitledBorder(borderTitle));
128          }          }
129    
130          private JPanel getTranslationGrid() {          private JPanel getTranslationGrid() {
# Line 127  public class TranslationEditJPanel exten Line 145  public class TranslationEditJPanel exten
145                                  langDesc.setLabelFor(langTextField);                                  langDesc.setLabelFor(langTextField);
146                                  translationGrid.add(langDesc);                                  translationGrid.add(langDesc);
147                                  translationGrid.add(langTextField);                                  translationGrid.add(langTextField);
148                                    
149                                  langTextFields .add(langTextField);                                   langTextFields.add(langTextField);
150                          }                          }
151    
152                          // Lay out the panel.                          // Lay out the panel.
# Line 149  public class TranslationEditJPanel exten Line 167  public class TranslationEditJPanel exten
167                  return trans;                  return trans;
168          }          }
169    
170          public void addActionListener(final ActionListener actionListener) {          /**
171                  for (final JTextField langTextField : langTextFields){           * TODO Is never called?!
172                          langTextField.addKeyListener( new KeyListener(){           */
173            public void dispose() {
174                                  @Override                  for (TranslationJTextField f: langTextFields) {
175                                  public void keyPressed(KeyEvent e) {                          f.dispose();
                                 }  
   
                                 @Override  
                                 public void keyReleased(KeyEvent e) {  
                                 }  
   
                                 @Override  
                                 public void keyTyped(KeyEvent e) {  
                                         actionListener.actionPerformed(new ActionEvent(TranslationEditJPanel.this, 0, ""));  
                                 }  
                                   
                         });  
176                  }                  }
177          }          }
178    
179          public void removeActionListener(ActionListener actionListener) {          public void addTranslationChangeListener(final ActionListener al) {
180                  for (JTextField langTextField : langTextFields){                  final ActionListener actionListener = new ActionListener() {
181                          langTextField.removeActionListener(actionListener);  
182                            @Override
183                            public void actionPerformed(ActionEvent e) {
184                                    al.actionPerformed(new ActionEvent(TranslationEditJPanel.this,
185                                                    new Random().nextInt(), ""));
186                            }
187    
188                    };
189                    actionListeners.put(al, actionListener);
190                    getTranslation().addTranslationChangeListener(actionListener);
191            }
192    
193            public void removeTranslationChangeListener(ActionListener al) {
194                    if (actionListeners.get(al) != null) {
195                            ActionListener actionListener = actionListeners.get(al);
196                            getTranslation().removeTranslationChangeListener(actionListener);
197                            actionListeners.remove(actionListener);
198                  }                  }
199          }          }
200    

Legend:
Removed from v.244  
changed lines
  Added in v.298

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26