/[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 2 by mojays, Tue Feb 24 22:43:52 2009 UTC revision 220 by alfonx, Tue Jul 14 09:41:31 2009 UTC
# Line 2  package skrueger.swing; Line 2  package skrueger.swing;
2    
3  import java.awt.BorderLayout;  import java.awt.BorderLayout;
4  import java.awt.Dimension;  import java.awt.Dimension;
 import java.awt.Frame;  
 import java.awt.Window;  
 import java.awt.event.ActionEvent;  
 import java.awt.event.WindowAdapter;  
 import java.awt.event.WindowEvent;  
 import java.awt.event.WindowListener;  
 import java.util.ArrayList;  
5  import java.util.List;  import java.util.List;
6    
 import javax.swing.AbstractAction;  
7  import javax.swing.BorderFactory;  import javax.swing.BorderFactory;
 import javax.swing.Box;  
 import javax.swing.JComponent;  
 import javax.swing.JDialog;  
8  import javax.swing.JLabel;  import javax.swing.JLabel;
9  import javax.swing.JPanel;  import javax.swing.JPanel;
10  import javax.swing.SpringLayout;  import javax.swing.SpringLayout;
# Line 24  import javax.swing.SwingConstants; Line 13  import javax.swing.SwingConstants;
13  import org.apache.log4j.Logger;  import org.apache.log4j.Logger;
14    
15  import schmitzm.swing.SpringUtilities;  import schmitzm.swing.SpringUtilities;
 import schmitzm.swing.SwingUtil;  
16  import skrueger.i8n.Translation;  import skrueger.i8n.Translation;
17    
18  /**  /**
19   * A JPanel that asks the user for translation of several strings   * A {@link JPanel} that asks the user for the translations of a String in
20     * several languages. Use {@link TranslationAskJDialog} to display.<br/>
21     * The class does not implement any backup/clong strategies. The
22     * {@link Translation} object is manipulated directly.<br/>
23     * {@link TranslationEditJPanel}s. {@link TranslationAskJDialog} implements a
24     * transparent Apply/Cancel logic.
25     *
26   * @author Stefan Alfons Krüger   * @author Stefan Alfons Krüger
  *  
27   */   */
28  public class TranslationEditJPanel extends JPanel {  public class TranslationEditJPanel extends JPanel {
29          public static final String PROPERTY_CANCEL_AND_CLOSE = "CANCEL";          static final protected Logger LOGGER = Logger
30          public static final String PROPERTY_APPLY_AND_CLOSE = "APPLY";                          .getLogger(TranslationEditJPanel.class);
31          private static JDialog dialog;  
32          private static OkButton okButton;          private final List<String> languages;
           
         private static CancelButton cancelButton;  
         Logger log = Logger.getLogger(TranslationEditJPanel.class);  
         private List<String> languages;  
33          private JPanel translationGrid;          private JPanel translationGrid;
34          private Translation trans;          private Translation trans;
35    
36            /**
37             * Creates a {@link JPanel} that asks the user for the translation of a
38             * String in several languages
39             */
40          public TranslationEditJPanel(Translation trans, List<String> languages_) {          public TranslationEditJPanel(Translation trans, List<String> languages_) {
41                  this(null, trans, languages_);                  this(null, trans, languages_);
42          }          }
43    
44            /**
45             * Creates a {@link JPanel} that asks the user for the translation of a
46             * String in several languages and additionally puts a {@link JLabel} with a
47             * question at the {@link JPanel}'s first row.
48             */
49          public TranslationEditJPanel(String question, Translation trans,          public TranslationEditJPanel(String question, Translation trans,
50                          List<String> languages_) {                          List<String> languages_) {
51                  super(new BorderLayout());                  super(new BorderLayout());
52                    
53                  if (trans == null) trans = new Translation();                  if (trans == null)
54                            trans = new Translation();
55    
56                  this.trans = trans;                  this.trans = trans;
57                  this.languages = languages_;                  this.languages = languages_;
                   
                   
58    
59                  add(getTranslationGrid(), BorderLayout.CENTER);                  add(getTranslationGrid(), BorderLayout.CENTER);
60    
61                  if (question != null) {                  if (question != null) {
62                          JLabel questionLable = new JLabel(question);                          JLabel questionLable = new JLabel(question);
63                          questionLable.setBorder(BorderFactory.createEmptyBorder(                          questionLable
64                                          6, 6, 6, 6));                                          .setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));
65                          add(questionLable, BorderLayout.NORTH);                          add(questionLable, BorderLayout.NORTH);
66                  }                  }
67          }          }
# Line 82  public class TranslationEditJPanel exten Line 79  public class TranslationEditJPanel exten
79    
80                                  TranslationJTextField langTextField = new TranslationJTextField(                                  TranslationJTextField langTextField = new TranslationJTextField(
81                                                  trans, langId);                                                  trans, langId);
82                                  // Setting a size                                  // Setting a size
83                                  langTextField.setPreferredSize( new Dimension(360,22));                                  langTextField.setPreferredSize(new Dimension(360, 22));
84                                  langDesc.setLabelFor(langTextField);                                  langDesc.setLabelFor(langTextField);
85                                  translationGrid.add(langDesc);                                  translationGrid.add(langDesc);
86                                  translationGrid.add(langTextField);                                  translationGrid.add(langTextField);
# Line 100  public class TranslationEditJPanel exten Line 97  public class TranslationEditJPanel exten
97          }          }
98    
99          /**          /**
100           * Merges a few {@link TranslationEditJPanel}s and shows them together..           * @return The {@link Translation} that this {@link TranslationEditJPanel}
101           * So far this is working on the Translation object directly, Cancel not possible.           *         deals with.
          * @param translationEditJPanel  
          *  
          * @deprecated Use {@link TranslationAskJDialog}  
          */  
         public static void ask(Frame parentFrame, final TranslationEditJPanel... translationEditJPanels) {  
                 dialog = new JDialog(parentFrame);  
         //      backup( translationEditJPanels );  
                 showDialog(dialog, translationEditJPanels);  
         }  
   
           
         /**  
          * Merges a few {@link TranslationEditJPanel}s and shows them together..  
          * So far this is working on the Translation object directly, Cancel not possible.  
          * @param translationEditJPanel  
   
          * @deprecated User {@link TranslationAskJDialog}        *  
          */  
         public static void ask(Window parentWindow, TranslationEditJPanel... translationEditJPanels) {  
                 dialog = new JDialog(parentWindow);  
         //      backup( translationEditJPanels );  
                 showDialog(dialog, translationEditJPanels);  
         }  
           
         /**  
          * Merges a few {@link TranslationEditJPanel}s and shows them together..  
          * So far this is working on the Translation object directly, Cancel not possible.  
          * @param translationEditJPanel  
          *  
          *       * @deprecated User {@link TranslationAskJDialog}  
          */  
         public static void ask(JDialog parentDialog, TranslationEditJPanel... translationEditJPanels) {  
                 dialog = new JDialog(parentDialog);  
         //      backup( translationEditJPanels );  
                 showDialog(dialog, translationEditJPanels);  
         }  
           
           
         /**  
          *       * @deprecated User {@link TranslationAskJDialog}  
          * @param d  
          * @param translationEditJPanels  
          * @author <a href="mailto:[email protected]">Stefan Alfons Kr&uuml;ger</a>  
          */  
         public static void showDialog(JDialog d, JComponent... translationEditJPanels) {  
                 dialog = d;  
                 dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);  
                 SwingUtil.centerFrameOnScreen(dialog);  
                 Box box = Box.createVerticalBox();  
                 for (JComponent panel : translationEditJPanels) {  
                         box.add(panel);  
                 }  
                 JPanel cp = new JPanel( new BorderLayout());  
                 cp.add( box, BorderLayout.CENTER);  
                 cp.add( getButtons(), BorderLayout.SOUTH  );  
                 dialog.setContentPane(cp);  
                   
                 // dialog.getRootPane().setDefaultButton(okButton);  
                   
                 dialog.setTitle("Please translate"); //i8n  
                 dialog.setModal(true);  
                 dialog.pack();  
                 dialog.setVisible(true);  
         }  
   
         /**  
          * @deprecated Use TranslationAskJDialog  
          * @return  
          * @author <a href="mailto:[email protected]">Stefan Alfons Kr&uuml;ger</a>  
102           */           */
         private static JComponent getButtons() {  
                 JPanel jPanel = new JPanel();  
                 if (okButton == null) {  
                         okButton = new OkButton(new AbstractAction("enter") {  
                     public void actionPerformed(ActionEvent evt) {  
                         firePropertyChange(PROPERTY_APPLY_AND_CLOSE, null, null);  
                         dialog.dispose();  
                     }  
                 } );  
                 }  
                 jPanel.add(okButton);  
   
                 if (cancelButton == null) {  
                         cancelButton = new CancelButton(new AbstractAction("") {  
                     public void actionPerformed(ActionEvent evt) {  
                         // restore();  
                         firePropertyChange(PROPERTY_CANCEL_AND_CLOSE, null, null);  
                         dialog.dispose();  
                     }  
                 } );  
                 }  
                 jPanel.add(okButton);  
   
                 return jPanel;  
         }  
           
103          public Translation getTranslation() {          public Translation getTranslation() {
104                  return trans;                  return trans;
105          }          }
106  //  
 //        
 //      public static void main(String[] args) {  
 //              ArrayList<String> lang = new ArrayList <String> ();  
 //              lang.add("de");  
 //              lang.add("en");  
 //              lang.add("fr");  
 //                
 //              Translation transe = new Translation();  
 //              transe.put("de", "Terciopelo-Lanzenotter");  
 //              TranslationEditJPanel p1 = new TranslationEditJPanel("Name von New Group",  
 //                              transe, lang);  
 //                
 //                
 //              Translation transe2 = new Translation();  
 //              transe2.put("de", "Terciopelo-Lanzenotter (Bothrops asper) ist eine in Mittelamerika und im Nordwesten Südamerikas weit verbreitete Schlangenart.");  
 //              TranslationEditJPanel p2 = new TranslationEditJPanel("Description of Animal:",  
 //                              transe2, lang);  
 //                
 ////            JFrame frame = new JFrame();  
 ////            frame.setContentPane(p1);  
 ////            frame.pack();  
 ////            frame.setVisible(true);  
 //                
 //              ask(new Frame(),p1,p2);  
 //      }  
107  }  }

Legend:
Removed from v.2  
changed lines
  Added in v.220

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26