[Schmitzm-commits] r1613 - in trunk/schmitzm-core/src/main/java/de/schmitzm/swing: . input

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Jun 23 21:03:27 CEST 2011


Author: mojays
Date: 2011-06-23 21:03:26 +0200 (Thu, 23 Jun 2011)
New Revision: 1613

Added:
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/DateInputOption.java
Modified:
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/SwingWorker.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/InputOption.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/ManualInputOption.java
Log:
InputOption: neue Kontruktoren f?\195?\188r Sub-Klassen
NEU: DateInputOption
SwingWorker: check auf "canceled" erweitert


Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/SwingWorker.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/SwingWorker.java	2011-06-23 10:54:59 UTC (rev 1612)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/SwingWorker.java	2011-06-23 19:03:26 UTC (rev 1613)
@@ -220,7 +220,7 @@
    * manuell durch den Dialog) abgebrochen wurde.
    */
   public boolean isCanceled() {
-    return canceled;
+    return canceled || (dialog != null && dialog.isCanceled());
   }
 
   /**

Added: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/DateInputOption.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/DateInputOption.java	2011-06-23 10:54:59 UTC (rev 1612)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/DateInputOption.java	2011-06-23 19:03:26 UTC (rev 1613)
@@ -0,0 +1,160 @@
+package de.schmitzm.swing.input;
+
+import java.text.DateFormat;
+import java.util.Date;
+
+import javax.swing.JComponent;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import com.toedter.calendar.JDateChooser;
+
+/**
+ * Diese Klasse stellt eine Eingabe-Option dar, in der ein Datum
+ * eingegeben werden kann.
+ * @author <a href="mailto:martin.schmitz at koeln.de">Martin Schmitz</a>
+ *         (University of Bonn/Germany)
+ * @version 1.0
+ */
+public class DateInputOption extends InputOption<Date>{
+
+  private String formatPattern;
+  private String formatMaskPattern;
+  private Character formatPlaceholder;
+  
+  /**
+   * 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
+   * @param formatPattern
+   *            Format fuer das Text-Feld der Komponente
+   * @param formatMaskPattern
+   *            Mask-Pattern, das fuer das Eingabe-Format des {@link JDateChooser} verwendet wird
+   * @param formatPlaceholder
+   *            Placeholder, das fuer das Eingabe-Format des {@link JDateChooser} verwendet wird
+   */
+  public DateInputOption(String label, boolean inputNeeded, Date defValue, String formatPattern, String formatMaskPattern, Character formatPlaceholder) {
+      super();
+      this.formatPattern = formatPattern;
+      this.formatMaskPattern = formatMaskPattern;
+      this.formatPlaceholder = formatPlaceholder;
+      init(label, inputNeeded, false);
+      ((JDateChooser)inpComp).setDate(defValue);
+  }
+
+  /**
+   * 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
+   * @param formatPattern
+   *            Format fuer das Text-Feld der Komponente
+   */
+  public DateInputOption(String label, boolean inputNeeded, Date defValue, String formatPattern) {
+    this(label,inputNeeded,defValue,formatPattern,null,null);
+  }
+
+  /**
+   * 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 DateInputOption(String label, boolean inputNeeded, Date defValue) {
+    this(label,inputNeeded,defValue,null);
+  }
+
+  /**
+   * Erzeugt eine neue Eingabe-Option.
+   * 
+   * @param label
+   *            Beschreibung
+   * @param inputNeeded
+   *            gibt an, ob eine Eingabe erforderlich ist
+   */
+  public DateInputOption(String label, boolean inputNeeded) {
+      this(label, inputNeeded, null);
+  }
+
+  /**
+   * Erzeugt eine neue Eingabe-Option, in der eine Eingabe zwingend
+   * erforderlich ist.
+   * 
+   * @param label
+   *            Beschreibung
+   */
+  public DateInputOption(String label) {
+      this(label, true, null);
+  }
+
+  /**
+   * Erzeugt eine neue Eingabe-Option, in der eine Eingabe zwingend
+   * erforderlich ist.
+   * 
+   * @param label
+   *            Beschreibung
+   * @param defValue
+   *            Wert der im Textfeld vorgeblendet wird
+   */
+  public DateInputOption(String label, Date defValue) {
+      this(label, true, defValue);
+  }
+
+  /**
+   * Erzeugt eine neue Instanz von {@link JDateChooser}.
+   */
+  @Override
+  protected JDateChooser createInputComponent() {
+    if ( formatMaskPattern != null && formatPlaceholder != null )
+      return new JDateChooser(formatPattern,formatMaskPattern,formatPlaceholder);
+    return new JDateChooser(null,formatPattern);
+  }
+
+  /**
+   * Liefert die aktuelle Eingabe im {@link JDateChooser}.
+   */
+  @Override
+  protected Date performGetValue() {
+    return ((JDateChooser)inpComp).getDate();
+  }
+
+  /**
+   * Setzt die aktuelle Eingabe im {@link JDateChooser}.
+   * @return immer {@code true}
+   */
+  @Override
+  protected boolean performSetValue(Date newValue) {
+    ((JDateChooser)inpComp).setDate(newValue);    
+    return true;
+  }
+
+  /**
+   * Prueft, ob die Eingabe leer ist.
+   */
+  @Override
+  protected boolean performIsInputEmpty() {
+    return ((JDateChooser)inpComp).getDate() == null;
+  }
+
+  /**
+   * Prueft, ob die Eingabe gueltig ist.
+   */
+  @Override
+  protected boolean performIsInputValid() {
+    return ((JDateChooser)inpComp).getDate() != null;
+  }
+
+}

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/InputOption.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/InputOption.java	2011-06-23 10:54:59 UTC (rev 1612)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/InputOption.java	2011-06-23 19:03:26 UTC (rev 1613)
@@ -133,6 +133,14 @@
 	}
 
 	/**
+	 * Erzeugt eine neue Eingabe-Option. {@link #init(String, boolean, boolean)}
+	 * muss nachtraeglich aufgerufen werden!
+	 */
+	protected InputOption() {
+	  super();
+	}
+
+	/**
 	 * Erzeugt eine neue Eingabe-Option.
 	 * 
 	 * @param label
@@ -144,7 +152,8 @@
 		this(label, inputNeeded, false);
 	}
 
-	/**
+
+    /**
 	 * Erzeugt eine neue Eingabe-Option.
 	 * 
 	 * @param label
@@ -158,49 +167,64 @@
 	 */
 	public InputOption(String label, boolean inputNeeded,
 			boolean centerInputComp) {
-		this.inpNeeded = inputNeeded;
-
-		// Darstellung des Containers erzeugen
-		setLayout(new BorderLayout());
-		descLabel = new JLabel(label);
-		inputNeededLabel = new JLabel();
-		inputNeededLabel.setForeground(defaultInputNeededSignColor);
-		inpComp = createInputComponent();
-		inpComp.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent e) {
-				oldValue = getValue();
-				fireFocusGained();
-			}
-
-			public void focusLost(FocusEvent e) {
-				fireFocusLost();
-				if (oldValue == null && getValue() != null || oldValue != null
-						&& !oldValue.equals(getValue()))
-					fireOptionChanged(oldValue, getValue());
-			}
-		});
-		setInputNeeded(inputNeeded);
-
-		// Elemente dem Container hinzufuegen
-		if (label != null) {
-			// put description and mandatory indicator in an
-			// container first
-			descLabelContainer = new Container();
-			descLabelContainer.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
-			descLabelContainer.add(descLabel);
-			descLabelContainer.add(inputNeededLabel);
-			// add container to layout
-			add(descLabelContainer, BorderLayout.NORTH);
-			add(inpComp, centerInputComp ? BorderLayout.CENTER
-					: BorderLayout.SOUTH);
-		} else {
-			add(inpComp, centerInputComp ? BorderLayout.CENTER
-					: BorderLayout.NORTH);
-		}
-		doLayout();
+	  super();
+	  init(label, inputNeeded, centerInputComp);
 	}
 
 	/**
+	 * Initialisiert die {@link InputOption}.
+     * @param label
+     *            Beschreibung (wird im Label angezeigt)
+     * @param inputNeeded
+     *            gibt an, ob eine Eingabe in der Option erforderlich ist
+     * @param centerInputComp
+     *            bestimmt, ob die Eingabe-Komponente (siehe
+     *            {@link #createInputComponent()}) ins Zentrum des
+     *            {@link BorderLayout} gelegt wird)
+	 */
+	protected void init(String label, boolean inputNeeded, boolean centerInputComp) {
+	  this.inpNeeded = inputNeeded;
+	  // Darstellung des Containers erzeugen
+	  setLayout(new BorderLayout());
+	  descLabel = new JLabel(label);
+	  inputNeededLabel = new JLabel();
+	  inputNeededLabel.setForeground(defaultInputNeededSignColor);
+	  inpComp = createInputComponent();
+	  inpComp.addFocusListener(new FocusListener() {
+	    public void focusGained(FocusEvent e) {
+	      oldValue = getValue();
+	      fireFocusGained();
+	    }
+	    
+	    public void focusLost(FocusEvent e) {
+	      fireFocusLost();
+	      if (oldValue == null && getValue() != null || oldValue != null
+	          && !oldValue.equals(getValue()))
+	        fireOptionChanged(oldValue, getValue());
+	    }
+	  });
+	  setInputNeeded(inputNeeded);
+	  
+	  // Elemente dem Container hinzufuegen
+	  if (label != null) {
+	    // put description and mandatory indicator in an
+	    // container first
+	    descLabelContainer = new Container();
+	    descLabelContainer.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
+	    descLabelContainer.add(descLabel);
+	    descLabelContainer.add(inputNeededLabel);
+	    // add container to layout
+	    add(descLabelContainer, BorderLayout.NORTH);
+	    add(inpComp, centerInputComp ? BorderLayout.CENTER
+	                                 : BorderLayout.SOUTH);
+	  } else {
+	    add(inpComp, centerInputComp ? BorderLayout.CENTER
+	                                 : BorderLayout.NORTH);
+	  }
+	  doLayout();
+	}
+	
+	/**
 	 * Deaktiviert die Option, in dem die Eingabe-Komponente deaktiviert wird.
 	 */
 	@Override

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/ManualInputOption.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/ManualInputOption.java	2011-06-23 10:54:59 UTC (rev 1612)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/ManualInputOption.java	2011-06-23 19:03:26 UTC (rev 1613)
@@ -639,5 +639,4 @@
 		}
 
 	}
-
 }



More information about the Schmitzm-commits mailing list