svn - r34263 - in branches/2.6.x/modules/unsupported/swing/src/main: java/org/geotools/swing java/org/geotools/swing/menu java/org/geotools/swing/tool resources/org/geotools/swing

1 message Options
Embed this post
Permalink
svn_geotools

svn - r34263 - in branches/2.6.x/modules/unsupported/swing/src/main: java/org/geotools/swing java/org/geotools/swing/menu java/org/geotools/swing/tool resources/org/geotools/swing

Reply Threaded More More options
Print post
Permalink
Author: mbedward
Date: 2009-10-27 06:45:47 -0400 (Tue, 27 Oct 2009)
New Revision: 34263

Added:
   branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/menu/
   branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/menu/CRSPopupMenu.java
Modified:
   branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/JTextReporter.java
   branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/StatusBar.java
   branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/TextReporterListener.java
   branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/tool/InfoTool.java
   branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text.properties
   branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en.properties
   branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en_US.properties
Log:
Tidied up StatusBar code; added popup menu for CRS options. Improved JTextReporter sizing and added extra listener method.

Modified: branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/JTextReporter.java
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/JTextReporter.java 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/JTextReporter.java 2009-10-27 10:45:47 UTC (rev 34263)
@@ -18,6 +18,7 @@
 package org.geotools.swing;
 
 import java.awt.Color;
+import java.awt.Dimension;
 import java.awt.EventQueue;
 import java.awt.HeadlessException;
 import java.awt.event.ActionEvent;
@@ -44,7 +45,7 @@
 import net.miginfocom.swing.MigLayout;
 
 /**
- * A non-modal dialog to display text reports to the user and, if required,
+ * A dialog to display text reports to the user and, if requested,
  * save them to file.
  *
  * @author Michael Bedward
@@ -54,9 +55,21 @@
  */
 public class JTextReporter extends JDialog {
 
-    private static final int DEFAULT_ROWS = 20;
-    private static final int DEFAULT_COLS = 80;
+    /**
+     * Default number of rows shown in the text display area's
+     * preferred size
+     */
+    public static final int DEFAULT_ROWS = 20;
 
+    /**
+     * Default number of columns shown in the text display area's
+     * preferred size
+     */
+    public static final int DEFAULT_COLS = 50;
+
+    private int rows;
+    private int cols;
+
     private JTextArea textArea;
 
     /* current working directory - for multiple saves */
@@ -68,13 +81,42 @@
     private List<TextReporterListener> listeners;
 
     /**
-     * Constructor
-     * @param title caption for the frame
+     * Creates a new JTextReporter with the following default options:
+     * <ul>
+     * <li> Remains on top of other application windows
+     * <li> Is not modal
+     * <li> Will be disposed of when closed
+     * </ul>
+     *
+     * @param title title for the dialog (may be {@code null})
+     *
      * @throws java.awt.HeadlessException
      */
     public JTextReporter(String title) throws HeadlessException {
+        this(title, -1, -1);
+    }
 
+    /**
+     * Creates a new JTextReporter with the following default options:
+     * <ul>
+     * <li> Remains on top of other application windows
+     * <li> Is not modal
+     * <li> Will be disposed of when closed
+     * </ul>
+     *
+     * @param title title for the dialog (may be {@code null})
+     * @param rows number of text rows displayed without scrolling
+     *        (if zero or negative, the default is used)
+     * @param cols number of text columns displayed without scrolling
+     *        (if zero or negative the default is used)
+     *
+     * @throws java.awt.HeadlessException
+     */
+    public JTextReporter(String title, int rows, int cols) throws HeadlessException {
         setTitle(title);
+        this.rows = (rows >= 0 ? rows : DEFAULT_ROWS);
+        this.cols = (cols >= 0 ? cols : DEFAULT_COLS);
+
         setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
         setAlwaysOnTop(true);
         setModal(false);
@@ -102,6 +144,8 @@
      *
      * @return true if successfully registered; false otherwise (listener
      * already registered)
+     *
+     * @see TextReporterListener
      */
     public boolean addListener(TextReporterListener listener) {
         return listeners.add(listener);
@@ -143,7 +187,7 @@
      * Create and layout the components
      */
     private void initComponents() {
-        textArea = new JTextArea(DEFAULT_ROWS, DEFAULT_COLS);
+        textArea = new JTextArea(rows, cols);
         textArea.setBorder(BorderFactory.createLineBorder(Color.BLACK));
         textArea.setEditable(false);
         textArea.setLineWrap(true);
@@ -152,8 +196,11 @@
 
         MigLayout layout = new MigLayout("wrap 1", "[grow]", "[grow][]");
         JPanel panel = new JPanel(layout);
+        //Dimension size = textArea.getPreferredScrollableViewportSize();
+        //System.out.println("preferred size" + size);
+        //panel.add(scrollPane, String.format("grow, width %d, height %d", size.width, size.height));
         panel.add(scrollPane, "grow");
-
+        
         JPanel btnPanel = new JPanel();
 
         JButton saveBtn = new JButton("Save");
@@ -175,6 +222,7 @@
 
         panel.add(btnPanel);
         getContentPane().add(panel);
+        pack();
     }
 
     /**
@@ -183,9 +231,14 @@
      * @param text the text to be appended
      */
     private void doAppend(final String text) {
+        int startLine = textArea.getLineCount();
+
         textArea.append(text);
-        
         textArea.setCaretPosition(textArea.getDocument().getLength());
+
+        for (TextReporterListener listener : listeners) {
+            listener.onReporterUpdated(startLine);
+        }
     }
 
     /**

Modified: branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/StatusBar.java
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/StatusBar.java 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/StatusBar.java 2009-10-27 10:45:47 UTC (rev 34263)
@@ -18,9 +18,14 @@
 package org.geotools.swing;
 
 import java.awt.Font;
+import java.awt.Graphics;
 import java.awt.LayoutManager;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.awt.geom.Rectangle2D;
 import java.util.ResourceBundle;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import net.miginfocom.swing.MigLayout;
@@ -32,16 +37,21 @@
 import org.geotools.map.MapContext;
 import org.geotools.swing.event.MapPaneAdapter;
 import org.geotools.swing.event.MapPaneEvent;
+import org.geotools.swing.menu.CRSPopupMenu;
 import org.opengis.geometry.Envelope;
 import org.opengis.referencing.crs.CoordinateReferenceSystem;
 
 /**
- * A status bar that displays the mouse cursor position in
- * world coordinates.
+ * A status bar to work with JMapPane. It displays the following:
+ * <ul>
+ * <li> Mouse cursor position (world coordinates)
+ * <li> Current display area (world coordinates)
+ * <li> Coordinate reference system name
+ * <li> Rendering busy indicator
+ * </ul>
  *
- * @todo Add the facility to display additional information in
- * the status bar. The notion of 'spaces' is in the present code
- * looking ahead to this facility.
+ * The CRS name is displayed on a JButton which displays a pop-up menu
+ * of CRS options for the map.
  *
  * @author Michael Bedward
  * @since 2.6
@@ -51,26 +61,21 @@
 public class StatusBar extends JPanel {
     private static final ResourceBundle stringRes = ResourceBundle.getBundle("org/geotools/swing/Text");
 
-    /** Number of status bar spaces (text areas) */
-    public static final int NUM_SPACES = 4;
-
-    /** Index of the space used for mouse coordinates */
-    public static final int COORDS_SPACE = 0;
-
-    /** Index of the space used for map bounds */
-    public static final int BOUNDS_SPACE = 1;
-
-    /** Index of the space used for the CRS */
-    public static final int CRS_SPACE = 2;
-
     private JMapPane mapPane;
     private MapContext context;
     private MapMouseListener mouseListener;
     private MapPaneAdapter mapPaneListener;
 
-    private JLabel[] spaces;
     private JLabel renderLabel;
+    private JLabel coordsLabel;
+    private JLabel boundsLabel;
+    private JButton crsBtn;
+    private CRSPopupMenu crsMenu;
 
+    private ImageIcon busyIcon;
+    private static final String BUSY_ICON_IMAGE = "/org/geotools/swing/icons/busy_16.gif";
+
+
     /**
      * Default constructor.
      * {@linkplain #setMapPane} must be
@@ -88,7 +93,7 @@
      */
     public StatusBar(JMapPane pane) {
         createListeners();
-        init();
+        initComponents();
 
         if (pane != null) {
             setMapPane(pane);
@@ -116,6 +121,8 @@
             newPane.addMapPaneListener(mapPaneListener);
             context = newPane.getMapContext();
             mapPane = newPane;
+
+            crsMenu.setMapPane(mapPane);
         }
     }
 
@@ -123,14 +130,14 @@
      * Clear the map coordinate display
      */
     public void clearCoords() {
-        spaces[COORDS_SPACE].setText("");
+        coordsLabel.setText("");
     }
 
     /**
      * Clear the map bounds display
      */
     public void clearBounds() {
-        spaces[BOUNDS_SPACE].setText("");
+        boundsLabel.setText("");
     }
 
     /**
@@ -140,7 +147,7 @@
      */
     public void displayCoords(DirectPosition2D mapPos) {
         if (mapPos != null) {
-            spaces[COORDS_SPACE].setText(String.format("  %.2f %.2f", mapPos.x, mapPos.y));
+            coordsLabel.setText(String.format("  %.2f %.2f", mapPos.x, mapPos.y));
         }
     }
 
@@ -150,7 +157,7 @@
      */
     public void displayBounds(Envelope bounds) {
         if (bounds != null) {
-            spaces[BOUNDS_SPACE].setText(String.format("Min:%.2f %.2f Span:%.2f %.2f",
+            boundsLabel.setText(String.format("Min:%.2f %.2f Span:%.2f %.2f",
                     bounds.getMinimum(0),
                     bounds.getMinimum(1),
                     bounds.getSpan(0),
@@ -164,17 +171,16 @@
      */
     public void displayCRS(CoordinateReferenceSystem crs) {
         if (crs == null) {
-            spaces[CRS_SPACE].setText("Undefined");
+            crsBtn.setText(stringRes.getString("crs_undefined"));
         } else {
-            spaces[CRS_SPACE].setText(crs.getName().toString());
+            crsBtn.setText(crs.getName().toString());
         }
     }
 
     /**
-     * Helper for constructors. Sets basic layout and creates
-     * the first space for map coordinates.
+     * Creates and sets the layout of components
      */
-    private void init() {
+    private void initComponents() {
         Rectangle2D rect;
         String constraint;
 
@@ -183,49 +189,57 @@
 
         Font font = Font.decode("Courier-12");
 
+        busyIcon = new ImageIcon(StatusBar.class.getResource(BUSY_ICON_IMAGE));
         renderLabel = new JLabel();
+        renderLabel.setHorizontalTextPosition(JLabel.LEADING);
         rect = getFontMetrics(font).getStringBounds(
-                "Rendering... ", renderLabel.getGraphics());
+                "rendering", renderLabel.getGraphics());
 
-        constraint = String.format("width %d!, height %d!",
-                (int)rect.getWidth() + 10, (int)rect.getHeight() + 6);
+        constraint = String.format("gapx 5, width %d!, height %d!",
+                (int)rect.getWidth() + busyIcon.getIconWidth() + renderLabel.getIconTextGap(),
+                (int)Math.max(rect.getHeight(), busyIcon.getIconHeight()) + 6);
 
         add(renderLabel, constraint);
 
-        spaces = new JLabel[NUM_SPACES];
+        coordsLabel = new JLabel();
+        Graphics graphics = coordsLabel.getGraphics();
+        coordsLabel.setFont(font);
 
-        spaces[COORDS_SPACE] = new JLabel();
-        spaces[COORDS_SPACE].setFont(font);
-
         rect = getFontMetrics(font).getStringBounds(
-                "  00000000.000 00000000.000", spaces[0].getGraphics());
+                "  00000000.000 00000000.000", graphics);
 
         constraint = String.format("width %d!, height %d!",
                 (int)rect.getWidth() + 10, (int)rect.getHeight() + 6);
 
-        add(spaces[COORDS_SPACE], constraint);
+        add(coordsLabel, constraint);
 
-        spaces[BOUNDS_SPACE] = new JLabel();
-        spaces[BOUNDS_SPACE].setFont(font);
+        boundsLabel = new JLabel();
+        boundsLabel.setFont(font);
 
         rect = getFontMetrics(font).getStringBounds(
-                "Min: 00000000.000 00000000.000 Span: 00000000.000 00000000.000", spaces[0].getGraphics());
+                "Min: 00000000.000 00000000.000 Span: 00000000.000 00000000.000", graphics);
 
         constraint = String.format("width %d!, height %d!",
                 (int)rect.getWidth() + 10, (int)rect.getHeight() + 6);
 
-        add(spaces[BOUNDS_SPACE], constraint);
+        add(boundsLabel, constraint);
 
-        spaces[CRS_SPACE] = new JLabel();
-        spaces[CRS_SPACE].setFont(font);
+        crsBtn = new JButton(stringRes.getString("crs_undefined"));
+        crsBtn.setFont(font);
 
-        rect = getFontMetrics(font).getStringBounds(
-                "The name of a CRS might be this long", spaces[0].getGraphics());
+        rect = getFontMetrics(font).getStringBounds("X", graphics);
 
-        constraint = String.format("width %d!, height %d!",
-                (int)rect.getWidth() + 20, (int)rect.getHeight() + 6);
+        constraint = String.format("height %d!", (int)rect.getHeight() + 6);
 
-        add(spaces[CRS_SPACE], constraint);
+        crsBtn.setToolTipText(stringRes.getString("tool_tip_statusbar_crs"));
+        crsMenu = new CRSPopupMenu();
+        crsBtn.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                crsMenu.show(crsBtn, 0, 0);
+            }
+        });
+
+        add(crsBtn, constraint);
     }
 
     /**
@@ -267,12 +281,14 @@
 
             @Override
             public void onRenderingStarted(MapPaneEvent ev) {
-                renderLabel.setText("Rendering...");
+                renderLabel.setText("rendering");
+                renderLabel.setIcon(busyIcon);
             }
 
             @Override
             public void onRenderingStopped(MapPaneEvent ev) {
                 renderLabel.setText("");
+                renderLabel.setIcon(null);
             }
 
             @Override

Modified: branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/TextReporterListener.java
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/TextReporterListener.java 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/TextReporterListener.java 2009-10-27 10:45:47 UTC (rev 34263)
@@ -31,9 +31,17 @@
 public interface TextReporterListener {
 
     /**
-     * Notify the listener that the text reporter is being closed
+     * Called by the reporter when it is being closed
      *
-     * @param ev the window event
+     * @param ev the window event issued by the system
      */
     public void onReporterClosed(WindowEvent ev);
+
+    /**
+     * Called by the text reporter when text has been appended
+     *
+     * @param newTextStartLine the line number at which the newly
+     *        appended text begins
+     */
+    public void onReporterUpdated(int newTextStartLine);
 }

Added: branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/menu/CRSPopupMenu.java
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/menu/CRSPopupMenu.java                        (rev 0)
+++ branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/menu/CRSPopupMenu.java 2009-10-27 10:45:47 UTC (rev 34263)
@@ -0,0 +1,157 @@
+/*
+ *    GeoTools - The Open Source Java GIS Toolkit
+ *    http://geotools.org
+ *
+ *    (C) 2003-2008, Open Source Geospatial Foundation (OSGeo)
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation;
+ *    version 2.1 of the License.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ */
+
+package org.geotools.swing.menu;
+
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ResourceBundle;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import org.geotools.metadata.iso.citation.Citations;
+import org.geotools.referencing.CRS;
+import org.geotools.swing.ExceptionMonitor;
+import org.geotools.swing.JCRSChooser;
+import org.geotools.swing.JMapPane;
+import org.geotools.swing.JTextReporter;
+import org.opengis.referencing.crs.CoordinateReferenceSystem;
+
+/**
+ * A pop-up menu that can be used with {@code JMapPane} for coordinate
+ * reference system operations. It has the following items:
+ * <ul>
+ * <li> Set the CRS for the map pane
+ * <li> Show the CRS definition
+ * </ol>
+ *
+ * @author Michael Bedward
+ * @since 2.6
+ * @source $URL$
+ * @version $Id$
+ */
+public class CRSPopupMenu extends JPopupMenu {
+
+    private static final ResourceBundle stringRes = ResourceBundle.getBundle("org/geotools/swing/Text");
+    private JMapPane mapPane;
+
+    /**
+     * Creates a CRS pop-up menu.
+     * Use {@linkplain #setMapPane(org.geotools.swing.JMapPane) later to
+     * associate this menu with a map pane.
+     */
+    public CRSPopupMenu() {
+        this(null);
+    }
+
+    /**
+     * Creates a CRS pop-up menu to wotk with the given map pane
+     *
+     * @param mapPane an instance of JMapPane, or {@code null}
+     */
+    public CRSPopupMenu(JMapPane mapPane) {
+        super("CRS options");
+
+        this.mapPane = mapPane;
+
+        JMenuItem setCRSItem = new JMenuItem(stringRes.getString("crs_popupmenu_setcrs"));
+        setCRSItem.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                setCRS();
+            }
+        });
+        add(setCRSItem);
+
+        JMenuItem showCRSItem = new JMenuItem(stringRes.getString("crs_popupmenu_showcrs"));
+        showCRSItem.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                showCRS();
+            }
+        });
+        add(showCRSItem);
+    }
+
+    /**
+     * Set the map pane that this menu will service
+     *
+     * @param mapPane an instance of JMapPane, or {@code null}
+     */
+    public void setMapPane(JMapPane mapPane) {
+        this.mapPane = mapPane;
+    }
+
+    /**
+     * {@inheritDoc}
+     * The menu items will only be enabled when both the {@code JMapPane} associated with
+     * this menu, and its {@code MapContext}, are non-null.
+     *
+     */
+    @Override
+    public void show(Component invoker, int x, int y) {
+        boolean enabled = (mapPane != null && mapPane.getMapContext() != null);
+        for (Component c : getComponents()) {
+            if (c instanceof JMenuItem) {
+                c.setEnabled(enabled);
+            }
+        }
+        super.show(invoker, x, y);
+    }
+
+    /**
+     * Action method for the "Set CRS" item in the CRS label pop-up menu
+     */
+    private void setCRS() {
+        if (mapPane != null && mapPane.getMapContext() != null) {
+            CoordinateReferenceSystem crs = mapPane.getMapContext().getCoordinateReferenceSystem();
+            String initialSelection = null;
+            try {
+                if (crs != null) {
+                    initialSelection = CRS.lookupIdentifier(Citations.EPSG, crs, false);
+                }
+
+            } catch (Exception ex) {
+                // do nothing
+            }
+
+            CoordinateReferenceSystem newCRS = JCRSChooser.showDialog(
+                    mapPane, null, "Choose a projection for the map display", initialSelection);
+
+            if (newCRS != null && (crs == null || !CRS.equalsIgnoreMetadata(crs, newCRS))) {
+                try {
+                    mapPane.getMapContext().setCoordinateReferenceSystem(newCRS);
+
+                } catch (Exception ex) {
+                    ExceptionMonitor.show(this, ex, "Failed to set the display CRS");
+                }
+            }
+        }
+    }
+
+    /**
+     * Action method for the "Set CRS" item in the CRS label pop-up menu
+     */
+    private void showCRS() {
+        if (mapPane != null && mapPane.getMapContext() != null) {
+            CoordinateReferenceSystem crs = mapPane.getMapContext().getCoordinateReferenceSystem();
+            String wkt = crs.toWKT();
+            JTextReporter reporter = new JTextReporter("Coordinate reference system");
+            reporter.append(wkt);
+            reporter.setModal(true);
+            reporter.setVisible(true);
+        }
+    }
+}


Property changes on: branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/menu/CRSPopupMenu.java
___________________________________________________________________
Added: svn:keywords
   + Id URL

Modified: branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/tool/InfoTool.java
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/tool/InfoTool.java 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/java/org/geotools/swing/tool/InfoTool.java 2009-10-27 10:45:47 UTC (rev 34263)
@@ -279,10 +279,9 @@
      */
     private void createReporter() {
         if (reporter == null) {
-            reporter = new JTextReporter("Feature info");
+            reporter = new JTextReporter("Feature info", 20, 30);
             reporter.addListener(this);
 
-            reporter.setSize(400, 400);
             reporter.setVisible(true);
         }
     }
@@ -308,6 +307,14 @@
     }
 
     /**
+     * Empty method. Defined to satisfy the {@code TextReporterListener} interface.
+     * @param newTextStartLine
+     */
+    public void onReporterUpdated(int newTextStartLine) {
+        // no action
+    }
+
+    /**
      * Convert the Object returned by {@linkplain GridCoverage2D#evaluate(DirectPosition)} into
      * an array of Numbers
      *

Modified: branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text.properties
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text.properties 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text.properties 2009-10-27 10:45:47 UTC (rev 34263)
@@ -1,9 +1,5 @@
 MapWidget_demo_title=GeoTools MapWidget
 
-# MapWidget menu strings
-file_menu=File
-file_open_local_shapefile=Open local shapefile...
-
 # MapLayerTable titles and tool tips
 layers_list_title=Layers
 select_layer=Select / unselect layer
@@ -39,3 +35,7 @@
 # other
 shape_files=shape files
 
+tool_tip_statusbar_crs=Set or display the map projection
+crs_popupmenu_setcrs=Set the CRS...
+crs_popupmenu_showcrs=Show the CRS definition
+crs_undefined=No CRS defined

Modified: branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en.properties
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en.properties 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en.properties 2009-10-27 10:45:47 UTC (rev 34263)
@@ -1,9 +1,5 @@
 MapWidget_demo_title=GeoTools MapWidget
 
-# MapWidget menu strings
-file_menu=File
-file_open_local_shapefile=Open local shapefile...
-
 # MapLayerTable titles and tool tips
 layers_list_title=Layers
 select_layer=Select / unselect layer
@@ -39,3 +35,7 @@
 # other
 shape_files=shape files
 
+tool_tip_statusbar_crs=Set or display the map projection
+crs_popupmenu_setcrs=Set the CRS...
+crs_popupmenu_showcrs=Show the CRS definition
+crs_undefined=No CRS defined

Modified: branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en_US.properties
===================================================================
--- branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en_US.properties 2009-10-27 10:30:57 UTC (rev 34262)
+++ branches/2.6.x/modules/unsupported/swing/src/main/resources/org/geotools/swing/Text_en_US.properties 2009-10-27 10:45:47 UTC (rev 34263)
@@ -1,9 +1,5 @@
 MapWidget_demo_title=GeoTools MapWidget
 
-# MapWidget menu strings
-file_menu=File
-file_open_local_shapefile=Open local shapefile...
-
 # MapLayerTable titles and tool tips
 layers_list_title=Layers
 select_layer=Select / unselect layer
@@ -39,3 +35,7 @@
 # other
 shape_files=shape files
 
+tool_tip_statusbar_crs=Set or display the map projection
+crs_popupmenu_setcrs=Set the CRS...
+crs_popupmenu_showcrs=Show the CRS definition
+crs_undefined=No CRS defined


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
GeoTools-commits mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-commits