[Schmitzm-commits] r1132 - in trunk: src/schmitzm/swing src_junit/schmitzm/swing

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Fri Oct 15 00:00:46 CEST 2010


Author: mojays
Date: 2010-10-15 00:00:46 +0200 (Fri, 15 Oct 2010)
New Revision: 1132

Modified:
   trunk/src/schmitzm/swing/ManualInputOption.java
   trunk/src_junit/schmitzm/swing/SwingUtilTest.java
Log:
new ManualInputOption.Password; WITH TEST METHOD!! :-)

Modified: trunk/src/schmitzm/swing/ManualInputOption.java
===================================================================
--- trunk/src/schmitzm/swing/ManualInputOption.java	2010-10-14 21:39:22 UTC (rev 1131)
+++ trunk/src/schmitzm/swing/ManualInputOption.java	2010-10-14 22:00:46 UTC (rev 1132)
@@ -29,6 +29,7 @@
  ******************************************************************************/
 package schmitzm.swing;
 
+import javax.swing.JPasswordField;
 import javax.swing.JTextField;
 
 /**
@@ -316,4 +317,75 @@
       return super.performIsInputValid();
     }
   }
+
+  /**
+   * Diese Klasse stellt eine Eingabe-Option dar, in der ein (verdecktes) Passwort
+   * eingegeben werden kann.
+   * @author <a href="mailto:martin.schmitz at koeln.de">Martin Schmitz</a> (University of Bonn/Germany)
+   * @version 1.0
+   */
+  public static class Password extends ManualInputOption {
+    /**
+     * Erzeugt eine neue Eingabe-Option.
+     * @param label       Beschreibung
+     * @param inputNeeded gibt an, ob eine Eingabe erforderlich ist
+     * @param defValue    Wert der im Textfeld vorgeblendet wird
+     */
+    public Password(String label, boolean inputNeeded, String defValue) {
+      super(label,inputNeeded,defValue);
+    }
+
+    /**
+     * Erzeugt eine neue Eingabe-Option.
+     * @param label       Beschreibung
+     * @param inputNeeded gibt an, ob eine Eingabe erforderlich ist
+     */
+    public Password(String label, boolean inputNeeded) {
+      this(label,inputNeeded,"");
+    }
+
+    /**
+     * Erzeugt eine neue Eingabe-Option, in der eine Eingabe zwingend erforderlich
+     * ist.
+     * @param label Beschreibung
+     */
+    public Password(String label) {
+      this(label,true,"");
+    }
+
+    /**
+     * Erzeugt eine neue Eingabe-Option, in der eine Eingabe zwingend erforderlich
+     * ist.
+     * @param label    Beschreibung
+     * @param defValue Wert der im Textfeld vorgeblendet wird
+     */
+    public Password(String label, String defValue) {
+      this(label,true,defValue);
+    }
+    
+    /**
+     * Erzeugt eine neue Instanz von {@link JPasswordField}.
+     */
+    protected JTextField createInputComponent() {
+      return new JPasswordField();
+    }
+
+    /**
+     * Liefert die aktuelle Eingabe im {@link JPasswordField}.
+     */
+    protected Object performGetValue() {
+      return ((JPasswordField)inpComp).getPassword();
+    }
+
+    /**
+     * Liefert den Wert, der in der Option eingegeben wurde. Prueft zuerst
+     * auf Gueltigkeit und ruft dann {@link #performGetValue()} auf.
+     * @return <code>null</code> wenn die aktuelle Eingabe nicht zulaessig ist
+     *         (siehe {@link #isInputValid()})
+     */
+    public char[] getValue() {
+      return (char[])super.getValue();
+    }
+
+  }
 }

Modified: trunk/src_junit/schmitzm/swing/SwingUtilTest.java
===================================================================
--- trunk/src_junit/schmitzm/swing/SwingUtilTest.java	2010-10-14 21:39:22 UTC (rev 1131)
+++ trunk/src_junit/schmitzm/swing/SwingUtilTest.java	2010-10-14 22:00:46 UTC (rev 1132)
@@ -11,6 +11,23 @@
  */
 public class SwingUtilTest {
 
+    @Test
+    public void testPasswortInputOption() {
+      if ( !TestingUtil.INTERACTIVE )
+        return;
+      
+      Object[] values = MultipleOptionPane.showMultipleInputDialog(
+            null, 
+            "Test Passwort",
+            new ManualInputOption.Password("Ein Passwort","Geheim")
+      );
+      if ( values == null )
+        System.out.println("Dialog aborted without passwort.");
+      else
+        System.out.println("Passwort was: "+ new String((char[])values[0]));
+    }
+  
+  
 	@Test
 	public void testConvertColorToHexColorBooleanBoolean() {
 		assertEquals("#ff0000ff", SwingUtil.convertColorToHex(Color.RED, true,



More information about the Schmitzm-commits mailing list