[Schmitzm-commits] r1505 - in trunk: schmitzm-core/src/main/java/de/schmitzm/swing schmitzm-core/src/main/java/de/schmitzm/swing/log4j schmitzm-gt/src/main/java/de/schmitzm/geotools/gui schmitzm-gt/src/main/java/de/schmitzm/geotools/io

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Sat Mar 5 11:42:53 CET 2011


Author: alfonx
Date: 2011-03-05 11:42:50 +0100 (Sat, 05 Mar 2011)
New Revision: 1505

Modified:
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/HeapBar.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/OkButton.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/ThinButton.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/TranslationsAskJPanel.java
   trunk/schmitzm-core/src/main/java/de/schmitzm/swing/log4j/LoggerFrame.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/JMapEditorToolBar.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsServerList.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsSettingsJComboBox.java
Log:
Added some Serialization IDs

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/HeapBar.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/HeapBar.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/HeapBar.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -16,14 +16,20 @@
 import de.schmitzm.lang.ResourceProvider;
 import de.schmitzm.swing.formatter.MbDecimalFormatter;
 
+/**
+ * A progress bar shwoing the
+ * 
+ * @author stefan
+ * 
+ */
 public class HeapBar extends JProgressBar {
 	private static final Logger LOGGER = Logger.getLogger(HeapBar.class);
 
-	protected static ResourceProvider RESOURCE = ResourceProvider.newInstance(LangUtil
-			.extendPackagePath(SwingUtil.class,
+	protected static ResourceProvider RESOURCE = ResourceProvider.newInstance(
+			LangUtil.extendPackagePath(SwingUtil.class,
 					"resource.locales.SwingResourceBundle"), Locale.ENGLISH);
 
-	private Timer updateTimer;
+	private final Timer updateTimer;
 	String valueAsText = "";
 	MbDecimalFormatter formatter = new MbDecimalFormatter();
 
@@ -35,9 +41,9 @@
 		setMaximum(100);
 
 		SwingUtil.setPreferredWidth(this, 200);
-		
+
 		// Clicking the bar triggers a GC
-		addMouseListener( new MouseAdapter() {
+		addMouseListener(new MouseAdapter() {
 			@Override
 			public void mouseClicked(MouseEvent e) {
 				LangUtil.gcTotal();
@@ -75,7 +81,7 @@
 			int percentaUsed = (int) (used * 100 / heapMaxSize);
 
 			if (percentaUsed > 80)
-				LOGGER.warn(percentaUsed + "% belegt");
+				LOGGER.warn(percentaUsed + "% belegt"); // i8n
 
 			if (percentaUsed > 70) {
 				if (percentaUsed > 90)
@@ -87,8 +93,9 @@
 			}
 
 			setValue(percentaUsed);
-			valueAsText = RESOURCE.getString("HeapMemoryBar.status", formatter
-					.format(used), percentaUsed, formatter.format(heapMaxSize));
+			valueAsText = RESOURCE.getString("HeapMemoryBar.status",
+					formatter.format(used), percentaUsed,
+					formatter.format(heapMaxSize));
 
 			repaint();
 		}

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/OkButton.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/OkButton.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/OkButton.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -44,6 +44,8 @@
  */
 public class OkButton extends SmallButton {
 
+	private static final long serialVersionUID = 3402872547623368825L;
+
 	public static final Icon ICON_OK_SMALL = new ImageIcon(
 			OkButton.class.getResource("resource/icons/small/ok.png"));
 

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/ThinButton.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/ThinButton.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/ThinButton.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -9,6 +9,7 @@
 
 public class ThinButton extends JButton {
 
+	private static final long serialVersionUID = -4587411014968907487L;
 	public static final float BUTTON_FONT_SIZE = 11;
 	public static final int BUTTON_FONT_STYLE = Font.PLAIN;
 	static final Font thinFont = new JLabel().getFont().deriveFont(
@@ -20,7 +21,7 @@
 
 	public ThinButton(Action action) {
 		super(action);
-		
+
 		init();
 	}
 

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/TranslationsAskJPanel.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/TranslationsAskJPanel.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/TranslationsAskJPanel.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -8,7 +8,7 @@
 
 public class TranslationsAskJPanel extends JPanel implements Cancellable,
 		Checkable {
-
+	private static final long serialVersionUID = -7223129731116411227L;
 	private final String[] backup = new String[50]; // Maximum 50 languages
 	private final JComponent[] translationEditJPanelsOrJustComponents;
 

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/swing/log4j/LoggerFrame.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/swing/log4j/LoggerFrame.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/swing/log4j/LoggerFrame.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -64,204 +64,246 @@
  * Diese Klasse stellt ein Fenster dar, in dem die aktuell im {@link LogManager}
  * registrierten Log4j-Logger als Tabelle dargestellt sind.
  * <ol>
- *   <li>Logger-Name</li>
- *   <li>Level</li>
- *   <li>Additivitaet (ob rekursiv auch die Vater-Appender ausgefuehrt werden)</li>
- *   <li>Dateinamen der {@link FileAppender}, "CONSOLE" fuer {@link ConsoleAppender}</li>
+ * <li>Logger-Name</li>
+ * <li>Level</li>
+ * <li>Additivitaet (ob rekursiv auch die Vater-Appender ausgefuehrt werden)</li>
+ * <li>Dateinamen der {@link FileAppender}, "CONSOLE" fuer
+ * {@link ConsoleAppender}</li>
  * </ol>
- * Ueber einen {@linkplain #refresh() Refresh-Button} kann die Tabelle jederzeit aktualisiert
- * werden. Es koennen <b>keine</b> Logger hinzugefuegt oder entfernt werden.
- * Veraendert werden koennen die Logger nur hinsichtlich ihres Levels und ihrer
- * Addititvitaet.<br>
+ * Ueber einen {@linkplain #refresh() Refresh-Button} kann die Tabelle jederzeit
+ * aktualisiert werden. Es koennen <b>keine</b> Logger hinzugefuegt oder
+ * entfernt werden. Veraendert werden koennen die Logger nur hinsichtlich ihres
+ * Levels und ihrer Addititvitaet.<br>
  * Die Eingabe-Maske bietet jedoch die Moeglichkeit, eine Logger-Konfiguration
- * aus einer {@linkplain PropertyConfigurator#doConfigure(String,LoggerRepository) Log4j-Konfigurationsdatei}
- * (neu) zu laden.<br>
+ * aus einer
+ * {@linkplain PropertyConfigurator#doConfigure(String,LoggerRepository)
+ * Log4j-Konfigurationsdatei} (neu) zu laden.<br>
  * <b><u>Beachte</u>:</b><br>
- * Beim Neu-Laden werden lediglich die <u>explizit</u> in der Datei spezifizierten
- * Logger-Konfigurationen aktualisiert. Vom der Applikation erzeugte Logger bleiben
- * erhalten (und koennen auch nicht mehr geloescht werden)!
- * Ebenso bleiben alle Logger-Properties unveraendert erhalten, die nicht
- * <u>explizit</u> in der Konfigurationsdatei angegeben sind. Wird z.B. die
- * Additivitaet eines Loggers in der Datei nicht gesetzt, wird sie beim ersten
- * Einlesen per Default auf {@code true} gesetzt. Wird sie durch den Anwender
- * abgeaendert, bleibt diese Einstellung erhalten, auch wenn die Datei neu
- * eingelesen wird.
+ * Beim Neu-Laden werden lediglich die <u>explizit</u> in der Datei
+ * spezifizierten Logger-Konfigurationen aktualisiert. Vom der Applikation
+ * erzeugte Logger bleiben erhalten (und koennen auch nicht mehr geloescht
+ * werden)! Ebenso bleiben alle Logger-Properties unveraendert erhalten, die
+ * nicht <u>explizit</u> in der Konfigurationsdatei angegeben sind. Wird z.B.
+ * die Additivitaet eines Loggers in der Datei nicht gesetzt, wird sie beim
+ * ersten Einlesen per Default auf {@code true} gesetzt. Wird sie durch den
+ * Anwender abgeaendert, bleibt diese Einstellung erhalten, auch wenn die Datei
+ * neu eingelesen wird.
+ * 
  * @see LoggerConfigurationTableModel
  * @see Logger
  * @see LogManager
  * @see PropertyConfigurator#configure(String)
- * @author <a href="mailto:martin.schmitz at koeln.de">Martin Schmitz</a> (University of Bonn/Germany)
+ * @author <a href="mailto:martin.schmitz at koeln.de">Martin Schmitz</a>
+ *         (University of Bonn/Germany)
  * @version 1.0
  */
 public class LoggerFrame extends JFrame {
-  /** Eingabe-Feld fuer die Log4j-Konfigurationsdatei. */
-  protected FileInputOption configFileField =  new FileInputOption(null,false);
-  /** Butten, ueber den die Log4j-Konfigurationsdatei neu geladen wird.
-   *  @see #reload() */
-  protected JButton reloadButton = new JButton( SwingUtil.RESOURCE.getString("Reload") );
-  /** Butten, ueber den die Logger-Tabelle aktualisiert wird.
-   *  @see #refresh() */
-  protected JButton refreshButton = new JButton( SwingUtil.RESOURCE.getString("Refresh") );
-  /** Tabelle, in der die Logger angezeigt werden.
-   *  @see #loggerTableModel */
-  protected JTable loggerTable = null;
-  /** Datenbasis fuer die Logger-Tabelle. */
-  protected LoggerConfigurationTableModel loggerTableModel = null;
+	/** Eingabe-Feld fuer die Log4j-Konfigurationsdatei. */
+	protected FileInputOption configFileField = new FileInputOption(null, false);
+	/**
+	 * Butten, ueber den die Log4j-Konfigurationsdatei neu geladen wird.
+	 * 
+	 * @see #reload()
+	 */
+	protected JButton reloadButton = new JButton(
+			SwingUtil.RESOURCE.getString("Reload"));
+	/**
+	 * Butten, ueber den die Logger-Tabelle aktualisiert wird.
+	 * 
+	 * @see #refresh()
+	 */
+	protected JButton refreshButton = new JButton(
+			SwingUtil.RESOURCE.getString("Refresh"));
+	/**
+	 * Tabelle, in der die Logger angezeigt werden.
+	 * 
+	 * @see #loggerTableModel
+	 */
+	protected JTable loggerTable = null;
+	/** Datenbasis fuer die Logger-Tabelle. */
+	protected LoggerConfigurationTableModel loggerTableModel = null;
 
-  /**
-   * Erzeugt ein neues Fenster.
-   * @param file vorgeblendete Log4j-Konfigurationsdatei
-   */
-  public LoggerFrame(File file) {
-    super("Log4j Logger configuration");
-    initGUI();
-    configFileField.setValue(file);
-  }
+	/**
+	 * Erzeugt ein neues Fenster.
+	 * 
+	 * @param file
+	 *            vorgeblendete Log4j-Konfigurationsdatei
+	 */
+	public LoggerFrame(File file) {
+		super("Log4j Logger configuration");
+		initGUI();
+		configFileField.setValue(file);
+	}
 
-  /**
-   * Erzeugt ein neues Fenster.
-   */
-  public LoggerFrame() {
-    this(null);
-  }
+	/**
+	 * Erzeugt ein neues Fenster.
+	 */
+	public LoggerFrame() {
+		this(null);
+	}
 
-  /**
-   * Initialisiert das Fenster-Layout.
-   */
-  protected void initGUI() {
-    this.setLayout( new GridBagLayout() );
-    this.setSize(400,300);
-    // Logger-Tabelle
-    loggerTableModel = new LoggerConfigurationTableModel();
-    loggerTable = new JTable(loggerTableModel);
-    loggerTable.setCellSelectionEnabled(false);
-    loggerTable.setRowHeight( new JComboBox().getPreferredSize().height );
-    loggerTable.setDefaultRenderer( Enumeration.class, new ComponentRenderer() {
-      public Component createRendererComponent( JTable table,
-                                                Object value,
-                                                boolean isSelected,
-                                                boolean hasFocus,
-                                                int row,
-                                                int column) {
+	/**
+	 * Initialisiert das Fenster-Layout.
+	 */
+	protected void initGUI() {
+		this.setLayout(new GridBagLayout());
+		this.setSize(400, 300);
+		// Logger-Tabelle
+		loggerTableModel = new LoggerConfigurationTableModel();
+		loggerTable = new JTable(loggerTableModel);
+		loggerTable.setCellSelectionEnabled(false);
+		loggerTable.setRowHeight(new JComboBox().getPreferredSize().height);
+		loggerTable.setDefaultRenderer(Enumeration.class,
+				new ComponentRenderer() {
+					@Override
+					public Component createRendererComponent(JTable table,
+							Object value, boolean isSelected, boolean hasFocus,
+							int row, int column) {
 
-        // Appender in String umwandeln
-        if ( value instanceof Enumeration )
-          value = getStringFromAppenders((Enumeration<Appender>)value);
-        return super.createRendererComponent(table,value,isSelected,hasFocus,row,column);
-      }
-    });
-    loggerTable.setDefaultRenderer( Boolean.class, new ComponentRenderer.JCheckBox());
-    loggerTable.setDefaultEditor( Boolean.class, new DefaultCellEditor( new JCheckBox() {
-      public int getHorizontalAlignment() {
-        return this.CENTER;
-      }
-      public int getVerticalAlignment() {
-        return this.CENTER;
-      }
-    }));
+						// Appender in String umwandeln
+						if (value instanceof Enumeration)
+							value = getStringFromAppenders((Enumeration<Appender>) value);
+						return super.createRendererComponent(table, value,
+								isSelected, hasFocus, row, column);
+					}
+				});
+		loggerTable.setDefaultRenderer(Boolean.class,
+				new ComponentRenderer.JCheckBox());
+		loggerTable.setDefaultEditor(Boolean.class, new DefaultCellEditor(
+				new JCheckBox() {
+					private static final long serialVersionUID = -2478321390196185070L;
 
-    loggerTable.setDefaultRenderer( Level.class, new ComponentRenderer.JComboBox() );
-    loggerTable.setDefaultEditor( Level.class, new DefaultCellEditor( new JComboBox( new Object[] {
-        Level.ALL,
-        Level.DEBUG,
-        Level.ERROR,
-        Level.FATAL,
-        Level.INFO,
-        Level.OFF,
-        Level.WARN
-    })));
+					@Override
+					public int getHorizontalAlignment() {
+						return this.CENTER;
+					}
 
-    // Button-Aktionen
-    refreshButton.addActionListener( new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        refresh();
-      }
-    });
-    reloadButton.addActionListener( new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        reload();
-      }
-    });
+					@Override
+					public int getVerticalAlignment() {
+						return this.CENTER;
+					}
+				}));
 
-    // Componenten in GUI einbinden
-    this.getContentPane().add( reloadButton,                   new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(5,5,5,5),0,0) );
-    this.getContentPane().add( configFileField,                new GridBagConstraints(1,0,1,1,1.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(5,5,5,5),0,0) );
-    this.getContentPane().add( new JScrollPane( loggerTable ), new GridBagConstraints(0,1,2,1,1.0,1.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(5,5,5,5),0,0) );
-    this.getContentPane().add( refreshButton,                  new GridBagConstraints(0,2,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(5,5,5,5),0,0) );
-  }
+		loggerTable.setDefaultRenderer(Level.class,
+				new ComponentRenderer.JComboBox());
+		loggerTable.setDefaultEditor(Level.class, new DefaultCellEditor(
+				new JComboBox(new Object[] { Level.ALL, Level.DEBUG,
+						Level.ERROR, Level.FATAL, Level.INFO, Level.OFF,
+						Level.WARN })));
 
-  /**
-   * Aktualisiert die Logger auf Basis der Konfigurationsdatei. Dies entspricht
-   * der Aktion des {@linkplain #reloadButton Reload-Button}.
-   */
-  public void reload() {
-    if ( loggerTableModel != null && configFileField.getValue() != null ) {
-      try {
-        String configFileName = configFileField.getValue().getAbsolutePath();
-        PropertyConfigurator.configure(configFileName);
-        refresh();
-      } catch (Exception err) {
-        ExceptionDialog.show(this,err);
-      }
-    }
-  }
+		// Button-Aktionen
+		refreshButton.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				refresh();
+			}
+		});
+		reloadButton.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				reload();
+			}
+		});
 
-  /**
-   * Aktualisiert die Logger-Tabelle auf Basis der aktuelle geladenen
-   * Log4j-Logger.  Dies entspricht der Aktion des
-   * {@linkplain #refreshButton Refresh-Button}.
-   * @see LoggerConfigurationTableModel#refresh()
-   */
-  public void refresh() {
-    if ( loggerTableModel != null ) {
-      loggerTableModel.refresh();
-    }
-  }
+		// Componenten in GUI einbinden
+		this.getContentPane().add(
+				reloadButton,
+				new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
+						GridBagConstraints.WEST, GridBagConstraints.NONE,
+						new Insets(5, 5, 5, 5), 0, 0));
+		this.getContentPane().add(
+				configFileField,
+				new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0,
+						GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
+						new Insets(5, 5, 5, 5), 0, 0));
+		this.getContentPane().add(
+				new JScrollPane(loggerTable),
+				new GridBagConstraints(0, 1, 2, 1, 1.0, 1.0,
+						GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+						new Insets(5, 5, 5, 5), 0, 0));
+		this.getContentPane().add(
+				refreshButton,
+				new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0,
+						GridBagConstraints.EAST, GridBagConstraints.NONE,
+						new Insets(5, 5, 5, 5), 0, 0));
+	}
 
-  /**
-   * Liefert einen String, der die {@link Appender} eines Loggers darstellt.
-   * <ul>
-   *   <li>{@link FileAppender} werden durch den Dateinamen dargestellt</li>
-   *   <li>{@link ConsoleAppender} werden durch das Schluesselwort "CONSOLE" dargestellt</li>
-   *   <li>Alle anderen {@link Appender} werden NICHT dargestellt</li>
-   * </ul>
-   * Sub-Klassen koennen diese Methode ueberschreiben, um auch andere
-   * Appender-Arten darzustellen.
-   * @param appenders {@link Appender}-Liste
-   */
-  public String getStringFromAppenders(Enumeration<Appender> appenders) {
-    StringBuffer buffer = new StringBuffer();
-    for(;appenders != null && appenders.hasMoreElements();) {
-      Appender appender = appenders.nextElement();
-      if ( appender instanceof ConsoleAppender )
-        buffer.append("CONSOLE");
-      if ( appender instanceof FileAppender )
-        buffer.append( ((FileAppender)appender).getFile() );
-      if ( appenders.hasMoreElements() )
-        buffer.append("; ");
-    }
-    return buffer.toString();
-  }
+	/**
+	 * Aktualisiert die Logger auf Basis der Konfigurationsdatei. Dies
+	 * entspricht der Aktion des {@linkplain #reloadButton Reload-Button}.
+	 */
+	public void reload() {
+		if (loggerTableModel != null && configFileField.getValue() != null) {
+			try {
+				String configFileName = configFileField.getValue()
+						.getAbsolutePath();
+				PropertyConfigurator.configure(configFileName);
+				refresh();
+			} catch (Exception err) {
+				ExceptionDialog.show(this, err);
+			}
+		}
+	}
 
-//    /**
-//     * Ermittelt  einen String, der die {@link Appender} eines Loggers darstellt.
-//     * {@link FileAppender} werden durch den Dateinamen dargestellt und
-//     * {@link ConsoleAppender} durch das Schluesselwort "CONSOLE".
-//     * @param appenders {@link Appender}-Liste
-//     */
-//    private void setAppendersFromString(String appendersStr, Logger logger) {
-//      logger.removeAllAppenders();
-//      StringTokenizer tok = new StringTokenizer(appendersStr);
-//      for(;tok.hasMoreTokens();) {
-//        String appenderStr = tok.nextToken(" ;\t\n");
-//        Appender appender = null;
-//        if ( appenderStr.equalsIgnoreCase("CONSOLE") )
-//          appender = new ConsoleAppender();
-//        else {
-//          appender = new RollingFileAppender();
-//          ((RollingFileAppender)appender).setFile(appenderStr);
-//        }
-//        logger.addAppender( appender );
-//      }
-//    }
+	/**
+	 * Aktualisiert die Logger-Tabelle auf Basis der aktuelle geladenen
+	 * Log4j-Logger. Dies entspricht der Aktion des {@linkplain #refreshButton
+	 * Refresh-Button}.
+	 * 
+	 * @see LoggerConfigurationTableModel#refresh()
+	 */
+	public void refresh() {
+		if (loggerTableModel != null) {
+			loggerTableModel.refresh();
+		}
+	}
+
+	/**
+	 * Liefert einen String, der die {@link Appender} eines Loggers darstellt.
+	 * <ul>
+	 * <li>{@link FileAppender} werden durch den Dateinamen dargestellt</li>
+	 * <li>{@link ConsoleAppender} werden durch das Schluesselwort "CONSOLE"
+	 * dargestellt</li>
+	 * <li>Alle anderen {@link Appender} werden NICHT dargestellt</li>
+	 * </ul>
+	 * Sub-Klassen koennen diese Methode ueberschreiben, um auch andere
+	 * Appender-Arten darzustellen.
+	 * 
+	 * @param appenders
+	 *            {@link Appender}-Liste
+	 */
+	public String getStringFromAppenders(Enumeration<Appender> appenders) {
+		StringBuffer buffer = new StringBuffer();
+		for (; appenders != null && appenders.hasMoreElements();) {
+			Appender appender = appenders.nextElement();
+			if (appender instanceof ConsoleAppender)
+				buffer.append("CONSOLE");
+			if (appender instanceof FileAppender)
+				buffer.append(((FileAppender) appender).getFile());
+			if (appenders.hasMoreElements())
+				buffer.append("; ");
+		}
+		return buffer.toString();
+	}
+
+	// /**
+	// * Ermittelt einen String, der die {@link Appender} eines Loggers
+	// darstellt.
+	// * {@link FileAppender} werden durch den Dateinamen dargestellt und
+	// * {@link ConsoleAppender} durch das Schluesselwort "CONSOLE".
+	// * @param appenders {@link Appender}-Liste
+	// */
+	// private void setAppendersFromString(String appendersStr, Logger logger) {
+	// logger.removeAllAppenders();
+	// StringTokenizer tok = new StringTokenizer(appendersStr);
+	// for(;tok.hasMoreTokens();) {
+	// String appenderStr = tok.nextToken(" ;\t\n");
+	// Appender appender = null;
+	// if ( appenderStr.equalsIgnoreCase("CONSOLE") )
+	// appender = new ConsoleAppender();
+	// else {
+	// appender = new RollingFileAppender();
+	// ((RollingFileAppender)appender).setFile(appenderStr);
+	// }
+	// logger.addAppender( appender );
+	// }
+	// }
 }

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/JMapEditorToolBar.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/JMapEditorToolBar.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/JMapEditorToolBar.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -311,9 +311,12 @@
 						getResourceString("NewLayer.layer.type.polygon") });
 		FeatureTypeInputOption ftOption = new FeatureTypeInputOption(
 				getResourceString("NewLayer.ftype.title"), false) {
+			private static final long serialVersionUID = 2604570176928671464L;
+
 			// Checks whether "the_geom" is used as attribute name
 			// --> not allowed because JEditorPane uses this attribute
 			// for the default geometry of new layers
+			@Override
 			public boolean performIsInputValid() {
 				if (super.performIsInputValid()) {
 					SimpleFeatureType ft = inpTableModel.createFeatureType();
@@ -495,8 +498,8 @@
 	}
 
 	protected static String getResourceString(String key, Object... params) {
-		return GeotoolsGUIUtil.RESOURCE.getString(
-				"JMapEditorToolBar." + key, params);
+		return GeotoolsGUIUtil.RESOURCE.getString("JMapEditorToolBar." + key,
+				params);
 	}
 
 	/**

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -80,197 +80,210 @@
  * </ul>
  * Um Layer einzufuegen koennen die {@code addLayer(.)}-Methoden des
  * {@link #getLayeredMapPane() LayeredMapPane} (dabei wird ein Default-Style
- * verwendet) oder die entsprechenden Methoden des {@link MapContext} ({@code
- * getLayeredMapPane().getMapPane().getContext()}).
+ * verwendet) oder die entsprechenden Methoden des {@link MapContext} (
+ * {@code getLayeredMapPane().getMapPane().getContext()}).
+ * 
  * @author <a href="mailto:martin.schmitz at koeln.de">Martin Schmitz</a>
  *         (University of Bonn/Germany)
  * @version 1.0
  */
 public class LayeredMapFrame extends JFrame {
-  private JPanel contentPane = null;
-  /** Karten- und Layer-Kontroll-Bereich. */
-  protected LayeredMapPane layeredMapPane = null;
-  private SelectableXMapPane mapPane = null;
-  private MapContext mapContext = null;
-  /** Toolbar zur Kontroller der Karten-Aktionen (z.B. Zoom oder Select). */
-  protected MapActionControlPane mapControl = null;
-  /** Status-Balken. */
-  protected MapPaneStatusBar statusBar = null;
-  /** Fenster fuer SimpleFeature-Details */
-  protected FeatureCollectionFrame featuresFrame = null;
-  /**
-   * Auswahlfeld fuer das Raster, fuer welches die Koordinaten angezeigt werden.
-   */
-  protected SelectionInputOption<MapLayer> rasterComboBox = null;
+	private JPanel contentPane = null;
+	/** Karten- und Layer-Kontroll-Bereich. */
+	protected LayeredMapPane layeredMapPane = null;
+	private SelectableXMapPane mapPane = null;
+	private MapContext mapContext = null;
+	/** Toolbar zur Kontroller der Karten-Aktionen (z.B. Zoom oder Select). */
+	protected MapActionControlPane mapControl = null;
+	/** Status-Balken. */
+	protected MapPaneStatusBar statusBar = null;
+	/** Fenster fuer SimpleFeature-Details */
+	protected FeatureCollectionFrame featuresFrame = null;
+	/**
+	 * Auswahlfeld fuer das Raster, fuer welches die Koordinaten angezeigt
+	 * werden.
+	 */
+	protected SelectionInputOption<MapLayer> rasterComboBox = null;
 
-  /**
-   * Erzeugt ein neues (leeres) Map-Fenster.
-   */
-  public LayeredMapFrame() {
-    this(null, "");
-  }
+	/**
+	 * Erzeugt ein neues (leeres) Map-Fenster.
+	 */
+	public LayeredMapFrame() {
+		this(null, "");
+	}
 
-  /**
-   * Erzeugt ein neues (leeres) Map-Fenster.
-   * @param lmp {@link LayeredMapPane} welches zur Anzeige der Karten verwendet
-   *          wird (wenn {@code null} wird eine neue {@link LayeredMapPane}
-   *          -Instanz erzeugt)
-   */
-  public LayeredMapFrame(LayeredMapPane lmp) {
-    this(lmp, "");
-  }
+	/**
+	 * Erzeugt ein neues (leeres) Map-Fenster.
+	 * 
+	 * @param lmp
+	 *            {@link LayeredMapPane} welches zur Anzeige der Karten
+	 *            verwendet wird (wenn {@code null} wird eine neue
+	 *            {@link LayeredMapPane} -Instanz erzeugt)
+	 */
+	public LayeredMapFrame(LayeredMapPane lmp) {
+		this(lmp, "");
+	}
 
-  /**
-   * Erzeugt ein neues (leeres) Map-Fenster.
-   * @param title Titel des Fensters
-   */
-  public LayeredMapFrame(String title) {
-    this(null, title);
-  }
+	/**
+	 * Erzeugt ein neues (leeres) Map-Fenster.
+	 * 
+	 * @param title
+	 *            Titel des Fensters
+	 */
+	public LayeredMapFrame(String title) {
+		this(null, title);
+	}
 
-  /**
-   * Erzeugt ein neues (leeres) Map-Fenster.
-   * @param title Titel des Fensters
-   * @param lmp {@link LayeredMapPane} welches zur Anzeige der Karten verwendet
-   *          wird (wenn {@code null} wird eine neue {@link LayeredMapPane}
-   *          -Instanz erzeugt)
-   */
-  public LayeredMapFrame(LayeredMapPane lmp, String title) {
-    super();
-    this.setSize(new Dimension(500, 400));
-    this.setTitle(title);
-    contentPane = (JPanel) this.getContentPane();
-    contentPane.setLayout(new GridBagLayout());
+	/**
+	 * Erzeugt ein neues (leeres) Map-Fenster.
+	 * 
+	 * @param title
+	 *            Titel des Fensters
+	 * @param lmp
+	 *            {@link LayeredMapPane} welches zur Anzeige der Karten
+	 *            verwendet wird (wenn {@code null} wird eine neue
+	 *            {@link LayeredMapPane} -Instanz erzeugt)
+	 */
+	public LayeredMapFrame(LayeredMapPane lmp, String title) {
+		super();
+		this.setSize(new Dimension(500, 400));
+		this.setTitle(title);
+		contentPane = (JPanel) this.getContentPane();
+		contentPane.setLayout(new GridBagLayout());
 
-    // Karte und Layer-Kontrolle
-    layeredMapPane = lmp != null ? lmp : new LayeredMapPane();
-    mapPane = layeredMapPane.getMapPane();
-    mapContext = mapPane.getMapContext();
-    mapControl = new MapActionControlPane(mapPane, MapActionControlPane.VERTICAL);
-    mapControl.setFloatable(false);
+		// Karte und Layer-Kontrolle
+		layeredMapPane = lmp != null ? lmp : new LayeredMapPane();
+		mapPane = layeredMapPane.getMapPane();
+		mapContext = mapPane.getMapContext();
+		mapControl = new MapActionControlPane(mapPane,
+				MapActionControlPane.VERTICAL);
+		mapControl.setFloatable(false);
 
-    // unter Layer-Liste eine ComboBox mit Raster-Auswahl einfuegen
-    this.rasterComboBox = new SelectionInputOption.Combo<MapLayer>("", false);
-    this.mapContext.addMapLayerListListener(new MapLayerListListener() {
-      public void layerChanged(MapLayerListEvent e) {
-        updateRasterComboBox();
-      }
+		// unter Layer-Liste eine ComboBox mit Raster-Auswahl einfuegen
+		this.rasterComboBox = new SelectionInputOption.Combo<MapLayer>("",
+				false);
+		this.mapContext.addMapLayerListListener(new MapLayerListListener() {
+			public void layerChanged(MapLayerListEvent e) {
+				updateRasterComboBox();
+			}
 
-      public void layerMoved(MapLayerListEvent e) {
-      }
+			public void layerMoved(MapLayerListEvent e) {
+			}
 
-      public void layerAdded(MapLayerListEvent e) {
-        updateRasterComboBox();
-      }
+			public void layerAdded(MapLayerListEvent e) {
+				updateRasterComboBox();
+			}
 
-      public void layerRemoved(MapLayerListEvent e) {
-        updateRasterComboBox();
-      }
-    });
-    this.layeredMapPane.horSplitPane.getContainer(0).add(rasterComboBox,
-                                                         BorderLayout.SOUTH);
+			public void layerRemoved(MapLayerListEvent e) {
+				updateRasterComboBox();
+			}
+		});
+		this.layeredMapPane.horSplitPane.getContainer(0).add(rasterComboBox,
+				BorderLayout.SOUTH);
 
-    // Spezielles RasterPositionLabel in dem die Koordinaten des in der
-    // ComboBox ausgewaehlten Rasters angezeigt werden
-    RasterPositionLabel rpLabel = new RasterPositionLabel(1) {
-      protected MapLayer determineRasterLayer(final SelectableXMapPane mapPane) {
-        return rasterComboBox.getValue();
-      }
-    };
+		// Spezielles RasterPositionLabel in dem die Koordinaten des in der
+		// ComboBox ausgewaehlten Rasters angezeigt werden
+		RasterPositionLabel rpLabel = new RasterPositionLabel(1) {
+			private static final long serialVersionUID = -1847776403111941093L;
 
-    // Status-Zeile mit Raster-Auswahlfeld
-    statusBar = new MapPaneStatusBar(mapPane, rpLabel, null);
-    statusBar.setBorder(BorderFactory.createCompoundBorder(
-                                                           BorderFactory.createLoweredBevelBorder(),
-                                                           BorderFactory.createEmptyBorder(
-                                                                                           2,
-                                                                                           5,
-                                                                                           2,
-                                                                                           5)));
+			protected MapLayer determineRasterLayer(
+					final SelectableXMapPane mapPane) {
+				return rasterComboBox.getValue();
+			}
+		};
 
-    // Status-Zeile mit Raster-Auswahlfeld kombinieren
-    JPanel statusBarContainer = new JPanel();
-    statusBarContainer.setLayout(new BorderLayout());
-    statusBarContainer.add(rasterComboBox, BorderLayout.WEST);
-    statusBarContainer.add(statusBar, BorderLayout.CENTER);
+		// Status-Zeile mit Raster-Auswahlfeld
+		statusBar = new MapPaneStatusBar(mapPane, rpLabel, null);
+		statusBar.setBorder(BorderFactory.createCompoundBorder(
+				BorderFactory.createLoweredBevelBorder(),
+				BorderFactory.createEmptyBorder(2, 5, 2, 5)));
 
-    // Root-SplitPane in Fenster einfuegen
-    contentPane.add(layeredMapPane, new GridBagConstraints(0, 0, 1, 1, 1.0,
-        1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,
-            0, 0, 0), 0, 0));
-    contentPane.add(mapControl, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
-        GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2, 0, 0,
-            0), 0, 0));
-    contentPane.add(statusBarContainer, new GridBagConstraints(0, 1, 2, 1, 1.0,
-        0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2,
-            0, 0, 0), 0, 0));
+		// Status-Zeile mit Raster-Auswahlfeld kombinieren
+		JPanel statusBarContainer = new JPanel();
+		statusBarContainer.setLayout(new BorderLayout());
+		statusBarContainer.add(rasterComboBox, BorderLayout.WEST);
+		statusBarContainer.add(statusBar, BorderLayout.CENTER);
 
-    // Fenster fuer SimpleFeature-Details
-    featuresFrame = new FeatureCollectionFrame(null, true);
-    featuresFrame.setSize(new Dimension(400, 200));
-    // Ausgewaehlte Features werden im Detail-Frame angezeigt
-    mapPane.addMapPaneListener(new JMapPaneListener() {
-      public void performMapPaneEvent(XMapPaneEvent e) {
-        // Wenn Features ueber die Maus aus der Karte ausgewaehlt werden,
-        // oeffnet sich ein Detail-Fenster
-        if (e instanceof FeatureSelectedEvent && e.getSourceObject() == mapPane) {
-          FeatureSelectedEvent fse = (FeatureSelectedEvent) e;
-          FeatureCollection fc = fse.getSelectionResult();
-          featuresFrame.setFeatureCollection(fc);
-          featuresFrame.setTitle(fse.getSourceLayer().getTitle() + " [" +
-                                 fse.getSelectionRange() + "]");
-          if (!featuresFrame.isVisible()) {
-            SwingUtil.setRelativeFramePosition(featuresFrame, 1, 0);
-          }
-          featuresFrame.setVisible(true);
-        }
+		// Root-SplitPane in Fenster einfuegen
+		contentPane.add(layeredMapPane, new GridBagConstraints(0, 0, 1, 1, 1.0,
+				1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(0, 0, 0, 0), 0, 0));
+		contentPane.add(mapControl, new GridBagConstraints(1, 0, 1, 1, 0.0,
+				0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(2, 0, 0, 0), 0, 0));
+		contentPane.add(statusBarContainer, new GridBagConstraints(0, 1, 2, 1,
+				1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(2, 0, 0, 0), 0, 0));
 
-        if (e instanceof GridCoverageSelectedEvent) {
-          // ...
-        }
-      }
-    });
-  }
+		// Fenster fuer SimpleFeature-Details
+		featuresFrame = new FeatureCollectionFrame(null, true);
+		featuresFrame.setSize(new Dimension(400, 200));
+		// Ausgewaehlte Features werden im Detail-Frame angezeigt
+		mapPane.addMapPaneListener(new JMapPaneListener() {
+			public void performMapPaneEvent(XMapPaneEvent e) {
+				// Wenn Features ueber die Maus aus der Karte ausgewaehlt
+				// werden,
+				// oeffnet sich ein Detail-Fenster
+				if (e instanceof FeatureSelectedEvent
+						&& e.getSourceObject() == mapPane) {
+					FeatureSelectedEvent fse = (FeatureSelectedEvent) e;
+					FeatureCollection fc = fse.getSelectionResult();
+					featuresFrame.setFeatureCollection(fc);
+					featuresFrame.setTitle(fse.getSourceLayer().getTitle()
+							+ " [" + fse.getSelectionRange() + "]");
+					if (!featuresFrame.isVisible()) {
+						SwingUtil.setRelativeFramePosition(featuresFrame, 1, 0);
+					}
+					featuresFrame.setVisible(true);
+				}
 
-  protected void updateRasterComboBox() {
-    // Letzte Auswahl merken
-    MapLayer lastSelection = (MapLayer) rasterComboBox.getValue();
-    // Alle Raster-Layer und Titel ermitteln
-    Vector<MapLayer> rasterLayer = new Vector<MapLayer>();
-    Vector<String> rasterLayerDesc = new Vector<String>();
-    for (MapLayer layer : mapPane.getMapContext().getLayers())
-      if (mapPane.isGridCoverageLayer(layer)) {
-        rasterLayer.add(layer);
-        rasterLayerDesc.add(layer.getTitle());
-      }
-    // Auswahl neu setzen
-    rasterComboBox.setSelectionObjects(rasterLayer.toArray(new MapLayer[0]),
-                                       rasterLayerDesc.toArray());
-    // Wenn nur ein Raster zur Verfuegung steht, dieses autom. auswaehlen
-    if (rasterLayer.size() == 1)
-      lastSelection = rasterLayer.firstElement();
-    // Letzte Auswahl setzen
-    rasterComboBox.setSelectedItem(lastSelection);
-  }
+				if (e instanceof GridCoverageSelectedEvent) {
+					// ...
+				}
+			}
+		});
+	}
 
-  /**
-   * Liefert den Karten- und Kontroll-Bereich des Fensters.
-   */
-  public LayeredMapPane getLayeredMapPane() {
-    return this.layeredMapPane;
-  }
+	protected void updateRasterComboBox() {
+		// Letzte Auswahl merken
+		MapLayer lastSelection = rasterComboBox.getValue();
+		// Alle Raster-Layer und Titel ermitteln
+		Vector<MapLayer> rasterLayer = new Vector<MapLayer>();
+		Vector<String> rasterLayerDesc = new Vector<String>();
+		for (MapLayer layer : mapPane.getMapContext().getLayers())
+			if (mapPane.isGridCoverageLayer(layer)) {
+				rasterLayer.add(layer);
+				rasterLayerDesc.add(layer.getTitle());
+			}
+		// Auswahl neu setzen
+		rasterComboBox
+				.setSelectionObjects(rasterLayer.toArray(new MapLayer[0]),
+						rasterLayerDesc.toArray());
+		// Wenn nur ein Raster zur Verfuegung steht, dieses autom. auswaehlen
+		if (rasterLayer.size() == 1)
+			lastSelection = rasterLayer.firstElement();
+		// Letzte Auswahl setzen
+		rasterComboBox.setSelectedItem(lastSelection);
+	}
 
-  /**
-   * Liefert den Status-Bereich des Fensters.
-   */
-  public MapPaneStatusBar getStatusBar() {
-    return this.statusBar;
-  }
+	/**
+	 * Liefert den Karten- und Kontroll-Bereich des Fensters.
+	 */
+	public LayeredMapPane getLayeredMapPane() {
+		return this.layeredMapPane;
+	}
 
-//  /**
-//   * Liefert den Toolbar fuer die Karten-Aktionen.
-//   */
-//  public MapActionControlPane getToolBar() {
-//    return this.mapControl;
-//  }
+	/**
+	 * Liefert den Status-Bereich des Fensters.
+	 */
+	public MapPaneStatusBar getStatusBar() {
+		return this.statusBar;
+	}
+
+	// /**
+	// * Liefert den Toolbar fuer die Karten-Aktionen.
+	// */
+	// public MapActionControlPane getToolBar() {
+	// return this.mapControl;
+	// }
 }

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsServerList.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsServerList.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsServerList.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -2,12 +2,13 @@
 
 import de.schmitzm.io.AbstractServerList;
 
-
 /**
  * A list of {@link GtWfsServerSettings}.
  */
 public class WfsServerList extends AbstractServerList<GtWfsServerSettings> {
 
+	private static final long serialVersionUID = -7427716680133033391L;
+
 	public WfsServerList(GtWfsServerSettings... wfss) {
 		super(wfss);
 	}

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsSettingsJComboBox.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsSettingsJComboBox.java	2011-02-27 01:36:46 UTC (rev 1504)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/io/WfsSettingsJComboBox.java	2011-03-05 10:42:50 UTC (rev 1505)
@@ -5,6 +5,7 @@
 
 public class WfsSettingsJComboBox extends JComboBox {
 
+	private static final long serialVersionUID = -5930015473877529756L;
 	private final WfsServerList wfsList;
 
 	public WfsSettingsJComboBox(WfsServerList wfsList) {



More information about the Schmitzm-commits mailing list