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

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

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

revision 297 by alfonx, Wed Aug 5 12:34:15 2009 UTC revision 298 by alfonx, Tue Aug 11 12:18:00 2009 UTC
# Line 30  Line 30 
30  package skrueger.swing;  package skrueger.swing;
31    
32  import java.awt.Color;  import java.awt.Color;
33    import java.awt.event.ActionEvent;
34    import java.awt.event.ActionListener;
35    
36  import javax.swing.JTextArea;  import javax.swing.JTextArea;
37  import javax.swing.JTextField;  import javax.swing.JTextField;
# Line 41  import org.apache.log4j.Logger; Line 43  import org.apache.log4j.Logger;
43  import skrueger.i8n.Translation;  import skrueger.i8n.Translation;
44    
45  /**  /**
46   * A {@link JTextArea} that signals red when it is not filled by a value.   * A {@link JTextArea} that signals red when it is not filled by a value. A
47     * listener is automatically registered with the {@link Translation} to update
48     * on {@link Translation} changes.
49   *   *
50   * @author Stefan Alfons Krüger   * @author Stefan Alfons Krüger
51   *   *
# Line 52  public class TranslationJTextField exten Line 56  public class TranslationJTextField exten
56          int wasValid = 99; // 0 = false, 1 = true, 99 = undefined          int wasValid = 99; // 0 = false, 1 = true, 99 = undefined
57          private String langCode;          private String langCode;
58          private Translation trans;          private Translation trans;
59            /**
60             * Listens to changes in the {@link Translation} and update the
61             * {@link JTextField}
62             */
63            private final ActionListener translationChangeActionListener;
64    
65          /**          /**
66           * This RED indicates a missing translation           * This RED indicates a missing translation
# Line 66  public class TranslationJTextField exten Line 75  public class TranslationJTextField exten
75           * @param trans           * @param trans
76           * @param langCode           * @param langCode
77           */           */
78          public TranslationJTextField(Translation trans, String langCode) {          public TranslationJTextField(final Translation trans, final String langCode) {
79                  super(trans.get(langCode));                  super(trans.get(langCode));
80                  this.trans = trans;                  this.trans = trans;
81                  this.langCode = langCode;                  this.langCode = langCode;
# Line 102  public class TranslationJTextField exten Line 111  public class TranslationJTextField exten
111                                  checkValid();                                  checkValid();
112                          }                          }
113                  });                  });
114    
115                    /**
116                     * Add a Listener to the Translation, so the JTextField can update on
117                     * Translation changes.
118                     */
119                    translationChangeActionListener = new ActionListener() {
120    
121                            @Override
122                            public void actionPerformed(ActionEvent e) {
123    //                              LOGGER.debug("ActionListener called ");
124                                    String newString = trans.get(langCode);
125                                    if (newString == null)
126                                            newString = "";
127                                    if ((newString != null && !newString.equals(getText()))) {
128                                            LOGGER.debug("Setting text to " + newString
129                                                            + " becuse oldString was " + getText());
130                                            setText(newString);
131                                    }
132                            }
133    
134                    };
135    
136                    LOGGER.debug("registering translationChangeActionListener");
137                    trans.addTranslationChangeListener(translationChangeActionListener);
138            }
139    
140            /**
141             * TODO Is never called. Should be called!
142             */
143            public void dispose() {
144                    boolean b = trans
145                                    .removeTranslationChangeListener(translationChangeActionListener);
146                    LOGGER.debug("removing translationChangeActionListener = " + b);
147          }          }
148    
149          /**          /**
# Line 120  public class TranslationJTextField exten Line 162  public class TranslationJTextField exten
162                                  wasValid = 0;                                  wasValid = 0;
163                          }                          }
164    
   
165                  } else {                  } else {
166                          // valid                          // valid
167                          if (wasValid != 1) {                          if (wasValid != 1) {
# Line 131  public class TranslationJTextField exten Line 172  public class TranslationJTextField exten
172                          // Directly store the change in the Translation Object                          // Directly store the change in the Translation Object
173                  }                  }
174    
175  //              LOGGER.debug("putting '"+trimmedText+"' into the translation");                  // LOGGER.debug("putting '"+trimmedText+"' into the translation");
176                  trans.put(langCode, trimmedText);                  trans.put(langCode, trimmedText);
177          }          }
178  }  }

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26