[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