[Schmitzm-commits] r2086 - in trunk: . schmitzm-core/src/main/java/de/schmitzm/net/mail schmitzm-core/src/main/java/de/schmitzm/swing/input schmitzm-jfree schmitzm-jfree/doc

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Fri Sep 28 19:18:28 CEST 2012


Author: mojays
Date: 2012-09-28 19:18:28 +0200 (Fri, 28 Sep 2012)
New Revision: 2086

Added:
   trunk/schmitzm-jfree/doc/
   trunk/schmitzm-jfree/doc/Chart style XML structure.pdf
Modified:
   trunk/readme.txt
   trunk/schmitzm-core/src/main/java/de/schmitzm/net/mail/MailUtil.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/BooleanInputOption.java
Log:
MailUtil: constant MAX_DESKTOP_MAIL_BODY_SIZE made public
BooleanInputOption: Nice enhancement! Connect other InputOptions to the BooleanInputOption (checkbox) to automatically change their enabled/disabled state according to the checkbox selection

Modified: trunk/readme.txt
===================================================================
--- trunk/readme.txt	2012-09-25 11:47:25 UTC (rev 2085)
+++ trunk/readme.txt	2012-09-28 17:18:28 UTC (rev 2086)
@@ -99,7 +99,7 @@
      - schmitzm-core
      - Geotools 2.7.5 (http://www.geotools.org)
      - Colt (http://acs.lbl.gov/~hoschek/colt/)
-     Note: Because gt2-2.6.5 already includes jai_codec-1.1.3.jar and
+     Note: Because gt2-2.7.x already includes jai_codec-1.1.3.jar and
            jai_imageio-1.1.jar it is recommended only to include from
            JAI:
            - clipwrapper_jiio.jar

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/net/mail/MailUtil.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/net/mail/MailUtil.java	2012-09-25 11:47:25 UTC (rev 2085)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/net/mail/MailUtil.java	2012-09-28 17:18:28 UTC (rev 2086)
@@ -58,7 +58,7 @@
 	 * Maximale Laenge des Mail-Bodies, FALLS dieser mit mailto:// - URL
 	 * verschickt wird. Ist der Mail-Inhalt laenger, wird er gekuerzt.
 	 */
-	private static final int MAX_DESKTOP_MAIL_BODY_SIZE = 1500;
+	public static final int MAX_DESKTOP_MAIL_BODY_SIZE = 1500;
 
 	/**
 	 * Use a {@link Mailer} instance if you youse this method often.

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/BooleanInputOption.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/BooleanInputOption.java	2012-09-25 11:47:25 UTC (rev 2085)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/input/BooleanInputOption.java	2012-09-28 17:18:28 UTC (rev 2086)
@@ -29,6 +29,12 @@
  ******************************************************************************/
 package de.schmitzm.swing.input;
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.BorderFactory;
 import javax.swing.JCheckBox;
 
 //import org.geotools.data.DataAccessFactory.Param;
@@ -43,7 +49,14 @@
  * @version 1.0
  */
 public class BooleanInputOption extends InputOption {
-	/**
+  /** Enthaelt die synchron mit der Checkbox verbundenen {@link InputOption InputOptions}.
+   *  Diese werden "enabled", wenn die Checkbox aktiviert wird (und umgekehrt). */
+  protected List<InputOption<?>> synchronConnectedInputOptions = new ArrayList<InputOption<?>>();
+  /** Enthaelt die asynchron mit der Checkbox verbundenen {@link InputOption InputOptions}.
+   *  Diese werden "disabled", wenn die Checkbox aktiviert wird (und umgekehrt). */
+  protected List<InputOption<?>> asynchronConnectedInputOptions = new ArrayList<InputOption<?>>();
+
+  /**
 	 * Erzeugt eine neue Eingabe-Option.
 	 * 
 	 * @param label
@@ -95,7 +108,20 @@
 	 * Erzeugt eine neue Instanz von {@link JCheckBox}.
 	 */
 	protected JCheckBox createInputComponent() {
-		return new JCheckBox();
+	  JCheckBox checkBox = new JCheckBox();
+	  // reduce the checkbox border (especially left!), so that
+	  // the checkbox looks nice in combination with other
+	  // input options
+	  checkBox.setBorder(BorderFactory.createEmptyBorder(5,0,0,0));
+	  // Add action listener to update enabled/disabled state
+	  // of connected input options 
+	  checkBox.addActionListener( new ActionListener() {
+        @Override
+        public void actionPerformed(ActionEvent e) {
+          updateConnectedInputOptionsEnabled();
+        }
+      });
+      return checkBox;
 	}
 
 	/**
@@ -147,6 +173,71 @@
 		if (!(active instanceof Boolean))
 			return false;
 		((JCheckBox) inpComp).setSelected((Boolean) active);
+		updateConnectedInputOptionsEnabled();
 		return true;
 	}
+	
+	/**
+	 * Verbindet die Checkbox mit anderen {@link InputOption InputOptions}. Diese
+	 * verbundenen {@link InputOption InputOptions} werden de/aktiviert, wenn die
+	 * {@link BooleanInputOption} ihren Wert aendert.
+	 * @param synchron gibt an, ob die {@link InputOption InputOptions}
+	 *                 synchron oder asynchron verbunden werden (synchron =
+	 *                 wird die Checkbox aktiviert, so werden die verbundenen
+	 *                 {@link InputOption InputOptions} ebenfalls aktiviert/enabled;
+	 *                 asynchron = wird die Checkbox aktiviert, so werden die
+	 *                 verbundenen {@link InputOption InputOptions} deaktiviert/disabled)
+	 * @param inputOptions zu verbindende {@link InputOption InputOptions}
+	 */
+	public void connectInputOptions(boolean synchron, InputOption<?>... inputOptions) {
+	  for (InputOption<?> io : inputOptions)
+	    if ( synchron )
+	      synchronConnectedInputOptions.add(io);
+	    else
+	      asynchronConnectedInputOptions.add(io);
+	}
+
+    /**
+     * Loest die Verbindung der Checkbox zu anderen {@link InputOption InputOptions}.
+     * @param inputOptions zu loesende {@link InputOption InputOptions}
+     */
+	public void disconnectInputOptions(InputOption<?>... inputOptions) {
+      for (InputOption<?> io : inputOptions) {
+        synchronConnectedInputOptions.remove(io);
+        asynchronConnectedInputOptions.remove(io);
+      }
+    }
+  
+	/**
+	 * Aktualisiert den enabled/disabled-Status der verbundenen
+	 * {@link InputOption InputOptions} entsprechend dem Wert der
+	 * {@link BooleanInputOption}.
+	 */
+    protected void updateConnectedInputOptionsEnabled() {
+      // Untergeordnete Optionen de/aktivieren
+      for (InputOption<?> option : synchronConnectedInputOptions)
+        option.setEnabled( getValue() );
+      for (InputOption<?> option : asynchronConnectedInputOptions)
+        option.setEnabled( !getValue() );
+      
+      // Wurde die Checkbox AKTIVIERT, so haengen die untergeordneten
+      // synchronen Optionen (die oben "enabled" wurden) u.U. noch von
+      // anderen untergeordneten Checkboxen ab
+      if ( getValue() == true ) 
+        for (InputOption<?> option : synchronConnectedInputOptions)
+          if ( option instanceof BooleanInputOption ) {
+            BooleanInputOption boolOption = (BooleanInputOption)option;
+            boolOption.updateConnectedInputOptionsEnabled();
+          }
+
+      // Wurde die Checkbox DEAKTIVIERT, so haengen die untergeordneten
+      // asynchronen Optionen (die oben "enabled" wurden) u.U. noch von 
+      // anderen untergeordneten Checkboxen ab
+      if ( getValue() == false ) 
+        for (InputOption<?> option : asynchronConnectedInputOptions)
+          if ( option instanceof BooleanInputOption ) {
+            BooleanInputOption boolOption = (BooleanInputOption)option;
+            boolOption.updateConnectedInputOptionsEnabled();
+          }
+    }
 }

Added: trunk/schmitzm-jfree/doc/Chart style XML structure.pdf
===================================================================
(Binary files differ)


Property changes on: trunk/schmitzm-jfree/doc/Chart style XML structure.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream



More information about the Schmitzm-commits mailing list