[Schmitzm-commits] r51 - in trunk/src/schmitzm: geotools/styling swing

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Fri Apr 17 15:18:16 CEST 2009


Author: alfonx
Date: 2009-04-17 15:18:16 +0200 (Fri, 17 Apr 2009)
New Revision: 51

Modified:
   trunk/src/schmitzm/geotools/styling/StylingUtil.java
   trunk/src/schmitzm/swing/SwingUtil.java
Log:


Modified: trunk/src/schmitzm/geotools/styling/StylingUtil.java
===================================================================
--- trunk/src/schmitzm/geotools/styling/StylingUtil.java	2009-04-17 12:56:15 UTC (rev 50)
+++ trunk/src/schmitzm/geotools/styling/StylingUtil.java	2009-04-17 13:18:16 UTC (rev 51)
@@ -65,6 +65,7 @@
 import org.geotools.styling.StyleBuilder;
 import org.geotools.styling.StyleFactory;
 import org.geotools.styling.Symbolizer;
+import org.geotools.styling.TextSymbolizer;
 import org.geotools.util.NumberRange;
 import org.jdom.Element;
 import org.jdom.output.XMLOutputter;
@@ -923,7 +924,40 @@
 		return fcVisible;
 	}
 
+	/**
+	 * @param style A {@link Style} to search for the first {@link TextSymbolizer}
+	 * 
+	 * @author Stefan A. Krüger
+	 * 
+	 * @return <code>null</code> or the first {@link TextSymbolizer} found in the style.
+	 */
+	public static TextSymbolizer getTextSymbolizer(Style style) {
+		try {
+			if (style != null) {
+				
+				for (FeatureTypeStyle fts : style.getFeatureTypeStyles()){
+					for (Rule r : fts.getRules()){
+						
+						for (Symbolizer symb : r.getSymbolizers()){
+							if (symb instanceof TextSymbolizer) {
+								return (TextSymbolizer)symb;
+							}
+						}
 
+					}
+				}
+				
+				
+			}
+			
+		} catch (Exception e) {
+			System.err.println("");
+			return null;
+		}
+		return null;
+	}
+
+
 	
 
 

Modified: trunk/src/schmitzm/swing/SwingUtil.java
===================================================================
--- trunk/src/schmitzm/swing/SwingUtil.java	2009-04-17 12:56:15 UTC (rev 50)
+++ trunk/src/schmitzm/swing/SwingUtil.java	2009-04-17 13:18:16 UTC (rev 51)
@@ -281,20 +281,20 @@
    * Zentriert ein Fenster auf dem Monitor.
    * @param window das zu zentrierende Fenster
    */
-  public static void centerFrameOnScreen(Window window) {
-      setRelativeFramePosition(window,0.5,0.5);
+  public static void centerFrameOnScreen(Component comp) {
+      setRelativeFramePosition(comp,0.5,0.5);
   }
 
   /**
    * Zentriert ein Fenster auf dem Monitor, aber verrückt das Window per Zufall um 10 Prozenz
    *
-   * @param window das zu zentrierende Fenster
+   * @param comp Eine Componente des zu zentrierenden Fensters. Wenn comp kein {@link Window} ist, wird das Parent {@link Window} ermittelt.
    *
    * @author <a href="mailto:skpublic at wikisquare.de">Stefan Alfons Kr&uuml;ger</a>
    */
-  public static void centerFrameOnScreenRandom(Window window) {
-	  Random r = new Random( (new Date()).getTime() );
-      setRelativeFramePosition(window,0.5 + (r.nextDouble()*0.2-0.1) , 0.5 + (r.nextDouble()*0.2-0.1));
+  public static void centerFrameOnScreenRandom(Component comp) {
+	  Random r = new Random();
+      setRelativeFramePosition(comp,0.5 + (r.nextDouble()*0.2-0.1) , 0.5 + (r.nextDouble()*0.2-0.1));
   }
 
 
@@ -303,12 +303,13 @@
    * positioniert das Fenster z.B. genau in der Mitte des Monitors; (0.25/0.5)
    * setzt das Fenster vertikal in die Mitte und horizontal auf ein Viertel der
    * Monitorbreite.
-   * @param window das zu positionierende Fenster
+   * @param comp Eine Komponente des zu positionierenden Fensters oder direckt das {@link Window}. 
    * @param relX  Relationsfaktor fuer die horizontale Position (0 < <code>relX</code> < 1)
    * @param relY  Relationsfaktor fuer die vertikale Position (0 < <code>relX</code> < 1)
    */
-  public static void setRelativeFramePosition(Window window, double relX, double relY) {
-      setRelativeFramePosition(window,null,relX,relY);
+  public static void setRelativeFramePosition(Component comp, double relX, double relY) {
+	  
+      setRelativeFramePosition(comp,null,relX,relY);
   }
 
   /**
@@ -316,13 +317,24 @@
    * anderen Fensters. (0.5/0.5) positioniert das Fenster z.B. genau in der Mitte
    * anderen Fensters. (0.25/0.5) setzt das Fenster vertikal in die Mitte und
    * horizontal auf ein Viertel des Referenz-Fensters.
-   * @param window das zu positionierende Fenster
+   * @param comp Eine Komponente des zu positionierenden Fensters oder direkt das {@link Window}.
    * @param relFrame Fenster zu dem das Fenster in Relation gesetzt wird (wenn
    *                 <code>null</code> wird der gesamte Monitor verwendet)
    * @param relX  Relationsfaktor fuer die horizontale Position (0 < <code>relX</code> < 1)
    * @param relY  Relationsfaktor fuer die vertikale Position (0 < <code>relY</code> < 1)
    */
-  public static void setRelativeFramePosition(Window window, Window relFrame, double relX, double relY) {
+  public static void setRelativeFramePosition(Component comp, Window relFrame, double relX, double relY) {
+	 
+	  // Added by SK, 17.4.2009
+	  // sk.sc
+	  Window window;
+	  if (comp instanceof Window){
+		  window = (Window) comp;
+	  } else {
+		  window = SwingUtil.getParentWindow(comp);
+	  }
+	  // sk.ec
+	  
       Dimension screenSize  = Toolkit.getDefaultToolkit().getScreenSize();
       Dimension relSize     = (relFrame==null) ? screenSize : relFrame.getSize();
       Point     relLocation = (relFrame==null) ? new Point(0,0) : relFrame.getLocation();



More information about the Schmitzm-commits mailing list