[Schmitzm-commits] r1080 - in trunk/src/schmitzm: geotools/gui/resource/locales lang lang/tree swing/resource/locales

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Oct 7 23:30:46 CEST 2010


Author: mojays
Date: 2010-10-07 23:30:45 +0200 (Thu, 07 Oct 2010)
New Revision: 1080

Modified:
   trunk/src/schmitzm/geotools/gui/resource/locales/GTResourceBundle_de.properties
   trunk/src/schmitzm/lang/LangUtil.java
   trunk/src/schmitzm/lang/tree/OperationTree.java
   trunk/src/schmitzm/lang/tree/OperationTreeParser.java
   trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties
   trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties
Log:
Erweiterung OperationTree und OperationTreeParser

Modified: trunk/src/schmitzm/geotools/gui/resource/locales/GTResourceBundle_de.properties
===================================================================
--- trunk/src/schmitzm/geotools/gui/resource/locales/GTResourceBundle_de.properties	2010-10-06 20:53:44 UTC (rev 1079)
+++ trunk/src/schmitzm/geotools/gui/resource/locales/GTResourceBundle_de.properties	2010-10-07 21:30:45 UTC (rev 1080)
@@ -1,179 +1,179 @@
-##########
-#Copyright (c) 2009 Martin O. J. Schmitz.
-#
-#This file is part of the SCHMITZM library - a collection of utility 
-#classes based on Java 1.6, focusing (not only) on Java Swing 
-#and the Geotools library.
-#
-#The SCHMITZM project is hosted at:
-#http://wald.intevation.org/projects/schmitzm/
-#
-#This program 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; either version 3
-#of the License, or (at your option) any later version.
-#
-#This program 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 General Public License for more details.
-#
-#You should have received a copy of the GNU Lesser General Public License (license.txt)
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-#or try this link: http://www.gnu.org/licenses/lgpl.html
-#
-#Contributors:
-#    Martin O. J. Schmitz - initial API and implementation
-#    Stefan A. Tzeggai - additional utility classes
-##########
-# ----------------------------------------------------
-# ------ German Translations for GUI components ------
-# ------ in Package schmitz.geotools.gui        ------
-# ----------------------------------------------------
-
-Attribute=Attribut
-Attributes=Attribute
-
-org.geotools.styling.StyleBuilder.MARK_ARROW=Pfeil
-org.geotools.styling.StyleBuilder.MARK_CIRCLE=Kreis
-org.geotools.styling.StyleBuilder.MARK_CROSS=Kreuz
-org.geotools.styling.StyleBuilder.MARK_SQUARE=Quadrat
-org.geotools.styling.StyleBuilder.MARK_STAR=Stern
-org.geotools.styling.StyleBuilder.MARK_TRIANGLE=Dreieck
-org.geotools.styling.StyleBuilder.MARK_X=X
-
-org.geotools.styling.ColorMap.TYPE_RAMP=Farb-Interpolation
-org.geotools.styling.ColorMap.TYPE_VALUES=Farb-Klassifizierung
-org.geotools.styling.ColorMap.TYPE_INTERVALS=Farb-Intervalle
-
-schmitzm.geotools.gui.FeatureCollectionFilterPanel.TestButton=Filter testen
-schmitzm.geotools.gui.FeatureCollectionFilterPanel.TestResultDetailsButton=?
-schmitzm.geotools.gui.FeatureCollectionFilterPanel.TestResultDetailsToolTip=Fehler-Details anzeigen...
-schmitzm.geotools.gui.FeatureCollectionFilterPanel.ResultsBorderTitle=Ergebnis des Filters:
-schmitzm.geotools.gui.FeatureCollectionFilterPanel.FilterDefinitionBorderTitle=Filter definieren:
-schmitzm.geotools.gui.FeatureCollectionFilterPanel.PreviewMapPaneToolTip=Rote Objekte treffen auf den Filter zu, graue Objekte nicht.
-
-schmitzm.geotools.gui.FeatureTablePane.PreviewMapPaneToolTip=Rote Objekte sind selektiert, graue Objekte nicht.
-
-schmitzm.geotools.gui.FeatureLayerFilterDialog.TITLE = Feature-Filter
-
-schmitzm.geotools.gui.MapActionControlPane.ZOOM_IN=Heran zoomen
-schmitzm.geotools.gui.MapActionControlPane.ZOOM_OUT=Heraus zoomen
-schmitzm.geotools.gui.MapActionControlPane.SELECT_TOP=Ausw\u00E4hlen aus oberstem Layer
-schmitzm.geotools.gui.MapActionControlPane.SELECT_ALL=Ausw\u00E4hlen aus allen Layern
-schmitzm.geotools.gui.MapContextControlPane.Menu.MOVE_UP=Nach OBEN schieben
-schmitzm.geotools.gui.MapContextControlPane.Menu.MOVE_DOWN=Nach UNTEN schieben
-schmitzm.geotools.gui.MapContextControlPane.Menu.ZOOM_TO=Zu Layer zoomen
-schmitzm.geotools.gui.MapContextControlPane.Menu.FILTER=Layer filtern...
-schmitzm.geotools.gui.MapContextControlPane.Menu.RECOLOR=F\u00E4rbung \u00E4ndern
-schmitzm.geotools.gui.MapContextControlPane.Menu.REMOVE=Layer entfernen
-schmitzm.geotools.gui.MapContextControlPane.Menu.SHOWALL=Alle Layer anzeigen
-schmitzm.geotools.gui.MapContextControlPane.Menu.HIDEALL=Alle Layer verbergen
-schmitzm.geotools.gui.MapContextControlPane.Menu.INVERTALL=Alle Layer invertieren
-schmitzm.geotools.gui.MapContextControlPane.Menu.CUSTOMIZE=Anpassen...
-schmitzm.geotools.gui.MapContextControlPane.ColorMapDialog.TITLE=Farbpalette
-schmitzm.geotools.gui.MapContextControlPane.SaveColorMapDialog.TITLE=Farbpalette speichern
-schmitzm.geotools.gui.MapContextControlPane.SaveColorMapDialog.QUESTION=Name f\u00FCr neue Farbpalette...
-schmitzm.geotools.gui.ColorMapTable.Header.QUANTITY=Raster-Wert
-schmitzm.geotools.gui.ColorMapTable.Header.COLOR=Farbe
-schmitzm.geotools.gui.ColorMapTable.Header.LABEL=Label
-schmitzm.geotools.gui.ColorMapTable.Header.OPACITY=Transparent
-schmitzm.geotools.gui.RasterPositionLabel.LABEL_PREFIX=Raster-Wert
-schmitzm.geotools.gui.GeotoolsGUIUtil.Load=Laden
-schmitzm.geotools.gui.GeotoolsGUIUtil.LoadRaster=Raster laden
-schmitzm.geotools.gui.GeotoolsGUIUtil.LoadFeature=Shape laden
-schmitzm.geotools.gui.GeotoolsGUIUtil.Save=Speichern
-schmitzm.geotools.gui.GeotoolsGUIUtil.SaveRaster=Raster speichern
-schmitzm.geotools.gui.GeotoolsGUIUtil.SaveFeature=Shape speichern
-schmitzm.geotools.gui.GeotoolsGUIUtil.NORTH=Nord
-schmitzm.geotools.gui.GeotoolsGUIUtil.SOUTH=S\u00FCd
-schmitzm.geotools.gui.GeotoolsGUIUtil.WEST=West
-schmitzm.geotools.gui.GeotoolsGUIUtil.EAST=Ost
-schmitzm.geotools.gui.GeotoolsGUIUtil.North=Norden
-schmitzm.geotools.gui.GeotoolsGUIUtil.South=S\u00FCden
-schmitzm.geotools.gui.GeotoolsGUIUtil.West=Westen
-schmitzm.geotools.gui.GeotoolsGUIUtil.East=Osten
-schmitzm.geotools.gui.GeotoolsGUIUtil.NORTH.Abb=N
-schmitzm.geotools.gui.GeotoolsGUIUtil.SOUTH.Abb=S
-schmitzm.geotools.gui.GeotoolsGUIUtil.WEST.Abb=W
-schmitzm.geotools.gui.GeotoolsGUIUtil.EAST.Abb=O
-schmitzm.geotools.gui.CRSSelectionDialog.init.crs.title=CRS datenbank
-schmitzm.geotools.gui.CRSSelectionDialog.init.crs.mess=CRS-Datenbank wird initialisiert. Bitte warten...
-schmitzm.geotools.gui.CRSSelectionDialog.title=Koordinaten-System (CRS) ausw\u00E4hlen
-schmitzm.geotools.gui.CRSSelectionDialog.mandatory=CRS must be specified!
-schmitzm.geotools.gui.CRSSelectionDialog.button.wgs84=WGS-84 CRS
-schmitzm.geotools.gui.CRSSelectionDialog.button.default=Standard CRS (${0})
-schmitzm.geotools.gui.CRSSelectionDialog.button.predefined=Vordefiniert
-schmitzm.geotools.gui.CRSSelectionDialog.button.userDefined=Benutzerdefiniert:
-schmitzm.geotools.gui.JMapEditorPane.Err.MissingMap=Bevor ein neues Layer erstellt werden kann, muss ein Layer angezeigt werden (um CRS und geogr. Lage zu definieren).
-schmitzm.geotools.gui.JMapEditorPane.Err.Line.LessPoints=F\u00FCr ein Line-Feature m\u00FCssen mind. 2 Punkte definiert werden\!
-schmitzm.geotools.gui.JMapEditorPane.Err.Polygon.LessPoints=F\u00FCr ein Polygon-Feature m\u00FCssen mind. 3 Punkte definiert werden\!
-schmitzm.geotools.gui.JMapEditorToolBar.button.layer.new=Neues Layer erstellen
-schmitzm.geotools.gui.JMapEditorToolBar.button.layer.save=Layer abschliessen
-schmitzm.geotools.gui.JMapEditorToolBar.button.layer.cancel=Layer abbrechen
-schmitzm.geotools.gui.JMapEditorToolBar.button.edit.undo=Letzte Operation zur\u00FCcknehmen
-schmitzm.geotools.gui.JMapEditorToolBar.button.edit.redo=Letzte zur\u00FCckgenommene Operation wiederholen
-schmitzm.geotools.gui.JMapEditorToolBar.button.edit.clear=Layer leeren
-schmitzm.geotools.gui.JMapEditorToolBar.button.edit.finish=Neues Feature starten
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.dialog.title=Neues Layer erzeugen
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.title=Layer-Bezeichnung
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.title.default=Neues Layer
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type=Layer-Art
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type.point=Punkt-Layer
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type.line=Linien-Layer
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type.polygon=Polygon-Layer
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.ftype.title=Weitere Attribute
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.Err.GeomAttr=Attribut-Name '${0}' reserviert f\u00FCr das Default-Geometrie-Attribut.
-schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.Err.AutoVal=Auto-Wert f\u00FCr Attribut-Typ '${0}' nicht m\u00F6glich.
-schmitzm.geotools.gui.JMapEditorToolBar.NewFeature.title=Neues Feature
-schmitzm.geotools.gui.StyleToolBar.FillColor=F\u00FCllfarbe
-schmitzm.geotools.gui.StyleToolBar.BorderColor=Randfarbe
-schmitzm.geotools.gui.StyleToolBar.BorderWidth=Randbreite
-schmitzm.geotools.gui.StyleToolBar.PointMark=Punkt-Style
-schmitzm.geotools.gui.FeatureTypeBuilderTableModel.AttrName=Name
-schmitzm.geotools.gui.FeatureTypeBuilderTableModel.AttrType=Typ
-schmitzm.geotools.gui.FeatureTypeBuilderTableModel.Nillable=Nullable
-schmitzm.geotools.gui.FeatureTypeBuilderTableModel.AutoValue=Auto-Wert
-schmitzm.geotools.gui.FeatureTypeBuilderTableModel.DefValue=Default
-schmitzm.geotools.gui.FeatureTypeBuilderTableModel.NewAttr=ATTR_${0}
-
-schmitzm.geotools.gui.SelectableFeatureTablePane.button.clearSelection.tt=Auswahl aufheben
-schmitzm.geotools.gui.SelectableFeatureTablePane.button.selectionToTop.tt=Ausgew\u00E4hlte Zeilen in der Tabelle nach oben verschieben 
-schmitzm.geotools.gui.SelectableFeatureTablePane.button.invertSelection.tt=Auswahl umkehren
-schmitzm.geotools.gui.SelectableFeatureTablePane.button.zoomToSelection.tt=Zoomt zu den ausgew\u00E4hlten Geoobjekten 
-schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus=${0} von ${1} ${2} selektiert.
-schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus.polygons=Polygonen
-schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus.points=Punkten
-schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus.lines=Linien
-
-
-schmitzm.geotools.gui.GridPanelFormatter_DHDN.title=DHDN - 1,234,567 (H|R)
-schmitzm.geotools.gui.GridPanelFormatter_LatLon1.title=Grad\u00B0 Minute' (N|O|S|W)
-#nice to have: schmitzm.geotools.gui.GridPanelFormatter_LatLon2.title=Grad\u00b0 Minute' Sek.'' (N|O|S|W)
-#nice to have: schmitzm.geotools.gui.GridPanelFormatter_LatLon3.title=Grad\u00b0 Minute' Hundertstel (N|O|S|W)
-
-schmitzm.geotools.gui.GridPanelFormatter.ToolTipTemplate=${0} in Einheit ${1}
-
-schmitzm.geotools.gui.GeoPositionLabel.LABEL_PREFIX=Maus-Koordinate\: 
-
-MapPaneButtons.Pan.TT=Karte verschieben
-MapPaneButtons.Info.TT=Informationen zu Objekten abfragen 
-MapPaneButtons.ZoomIn.TT=Auf einen Auschnitt zoomen
-MapPaneButtons.ZoomOut.TT=Aus der Karte herauszoomen
-MapPaneButtons.LastZoom.TT=Letzten Kartenausschnitt wiederherstellen 
-MapPaneButtons.NextZoom.TT=N\u00E4chsten Kartenausschnitt wiederherstellen
-
-MapPaneButtons.Selection.AddSelection.TT=F\u00FCgt Objekte zur Selektion hinzu
-MapPaneButtons.Selection.RemoveSelection.TT=Entfernt Objekte aus der Selektion 
-MapPaneButtons.Selection.SetSelection.TT=Setzt die Selektion auf die ausgew\u00E4hlten Objekte
-MapPaneButtons.Selection.ClearSelection.TT=Hebt alle Selektionen auf
-
-SearchMapDialog.Results.Column.Layer=Gefunden in
-SearchMapDialog.Results.Column.Name=Name
-SearchMapDialog.resultsTable.tt=Klicken Sie auf ein Ergebnis um es anzuzeigen.
-SearchMapDialog.searchString.Label=Suchbegriff eingeben:
-SearchMapDialog.searchString.tt=Geben Sie den Suchbegriff ein und dr\u00FCcken Sie [Enter]
-SearchMapDialog.title=Durchsuche Karte: ${0}
-SearchMapDialog.Explanation=<html>Es werden alle <b>Beschriftungen</b> dieser Karte durchsucht.</html> 
-
+##########
+#Copyright (c) 2009 Martin O. J. Schmitz.
+#
+#This file is part of the SCHMITZM library - a collection of utility 
+#classes based on Java 1.6, focusing (not only) on Java Swing 
+#and the Geotools library.
+#
+#The SCHMITZM project is hosted at:
+#http://wald.intevation.org/projects/schmitzm/
+#
+#This program 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; either version 3
+#of the License, or (at your option) any later version.
+#
+#This program 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 General Public License for more details.
+#
+#You should have received a copy of the GNU Lesser General Public License (license.txt)
+#along with this program; if not, write to the Free Software
+#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#or try this link: http://www.gnu.org/licenses/lgpl.html
+#
+#Contributors:
+#    Martin O. J. Schmitz - initial API and implementation
+#    Stefan A. Tzeggai - additional utility classes
+##########
+# ----------------------------------------------------
+# ------ German Translations for GUI components ------
+# ------ in Package schmitz.geotools.gui        ------
+# ----------------------------------------------------
+
+Attribute=Attribut
+Attributes=Attribute
+
+org.geotools.styling.StyleBuilder.MARK_ARROW=Pfeil
+org.geotools.styling.StyleBuilder.MARK_CIRCLE=Kreis
+org.geotools.styling.StyleBuilder.MARK_CROSS=Kreuz
+org.geotools.styling.StyleBuilder.MARK_SQUARE=Quadrat
+org.geotools.styling.StyleBuilder.MARK_STAR=Stern
+org.geotools.styling.StyleBuilder.MARK_TRIANGLE=Dreieck
+org.geotools.styling.StyleBuilder.MARK_X=X
+
+org.geotools.styling.ColorMap.TYPE_RAMP=Farb-Interpolation
+org.geotools.styling.ColorMap.TYPE_VALUES=Farb-Klassifizierung
+org.geotools.styling.ColorMap.TYPE_INTERVALS=Farb-Intervalle
+
+schmitzm.geotools.gui.FeatureCollectionFilterPanel.TestButton=Filter testen
+schmitzm.geotools.gui.FeatureCollectionFilterPanel.TestResultDetailsButton=?
+schmitzm.geotools.gui.FeatureCollectionFilterPanel.TestResultDetailsToolTip=Fehler-Details anzeigen...
+schmitzm.geotools.gui.FeatureCollectionFilterPanel.ResultsBorderTitle=Ergebnis des Filters:
+schmitzm.geotools.gui.FeatureCollectionFilterPanel.FilterDefinitionBorderTitle=Filter definieren:
+schmitzm.geotools.gui.FeatureCollectionFilterPanel.PreviewMapPaneToolTip=Rote Objekte treffen auf den Filter zu, graue Objekte nicht.
+
+schmitzm.geotools.gui.FeatureTablePane.PreviewMapPaneToolTip=Rote Objekte sind selektiert, graue Objekte nicht.
+
+schmitzm.geotools.gui.FeatureLayerFilterDialog.TITLE = Feature-Filter
+
+schmitzm.geotools.gui.MapActionControlPane.ZOOM_IN=Heran zoomen
+schmitzm.geotools.gui.MapActionControlPane.ZOOM_OUT=Heraus zoomen
+schmitzm.geotools.gui.MapActionControlPane.SELECT_TOP=Ausw\u00E4hlen aus oberstem Layer
+schmitzm.geotools.gui.MapActionControlPane.SELECT_ALL=Ausw\u00E4hlen aus allen Layern
+schmitzm.geotools.gui.MapContextControlPane.Menu.MOVE_UP=Nach OBEN schieben
+schmitzm.geotools.gui.MapContextControlPane.Menu.MOVE_DOWN=Nach UNTEN schieben
+schmitzm.geotools.gui.MapContextControlPane.Menu.ZOOM_TO=Zu Layer zoomen
+schmitzm.geotools.gui.MapContextControlPane.Menu.FILTER=Layer filtern...
+schmitzm.geotools.gui.MapContextControlPane.Menu.RECOLOR=F\u00E4rbung \u00E4ndern
+schmitzm.geotools.gui.MapContextControlPane.Menu.REMOVE=Layer entfernen
+schmitzm.geotools.gui.MapContextControlPane.Menu.SHOWALL=Alle Layer anzeigen
+schmitzm.geotools.gui.MapContextControlPane.Menu.HIDEALL=Alle Layer verbergen
+schmitzm.geotools.gui.MapContextControlPane.Menu.INVERTALL=Alle Layer invertieren
+schmitzm.geotools.gui.MapContextControlPane.Menu.CUSTOMIZE=Anpassen...
+schmitzm.geotools.gui.MapContextControlPane.ColorMapDialog.TITLE=Farbpalette
+schmitzm.geotools.gui.MapContextControlPane.SaveColorMapDialog.TITLE=Farbpalette speichern
+schmitzm.geotools.gui.MapContextControlPane.SaveColorMapDialog.QUESTION=Name f\u00FCr neue Farbpalette...
+schmitzm.geotools.gui.ColorMapTable.Header.QUANTITY=Raster-Wert
+schmitzm.geotools.gui.ColorMapTable.Header.COLOR=Farbe
+schmitzm.geotools.gui.ColorMapTable.Header.LABEL=Label
+schmitzm.geotools.gui.ColorMapTable.Header.OPACITY=Transparent
+schmitzm.geotools.gui.RasterPositionLabel.LABEL_PREFIX=Raster-Wert
+schmitzm.geotools.gui.GeotoolsGUIUtil.Load=Laden
+schmitzm.geotools.gui.GeotoolsGUIUtil.LoadRaster=Raster laden
+schmitzm.geotools.gui.GeotoolsGUIUtil.LoadFeature=Shape laden
+schmitzm.geotools.gui.GeotoolsGUIUtil.Save=Speichern
+schmitzm.geotools.gui.GeotoolsGUIUtil.SaveRaster=Raster speichern
+schmitzm.geotools.gui.GeotoolsGUIUtil.SaveFeature=Shape speichern
+schmitzm.geotools.gui.GeotoolsGUIUtil.NORTH=Nord
+schmitzm.geotools.gui.GeotoolsGUIUtil.SOUTH=S\u00FCd
+schmitzm.geotools.gui.GeotoolsGUIUtil.WEST=West
+schmitzm.geotools.gui.GeotoolsGUIUtil.EAST=Ost
+schmitzm.geotools.gui.GeotoolsGUIUtil.North=Norden
+schmitzm.geotools.gui.GeotoolsGUIUtil.South=S\u00FCden
+schmitzm.geotools.gui.GeotoolsGUIUtil.West=Westen
+schmitzm.geotools.gui.GeotoolsGUIUtil.East=Osten
+schmitzm.geotools.gui.GeotoolsGUIUtil.NORTH.Abb=N
+schmitzm.geotools.gui.GeotoolsGUIUtil.SOUTH.Abb=S
+schmitzm.geotools.gui.GeotoolsGUIUtil.WEST.Abb=W
+schmitzm.geotools.gui.GeotoolsGUIUtil.EAST.Abb=O
+schmitzm.geotools.gui.CRSSelectionDialog.init.crs.title=CRS datenbank
+schmitzm.geotools.gui.CRSSelectionDialog.init.crs.mess=CRS-Datenbank wird initialisiert. Bitte warten...
+schmitzm.geotools.gui.CRSSelectionDialog.title=Koordinaten-System (CRS) ausw\u00E4hlen
+schmitzm.geotools.gui.CRSSelectionDialog.mandatory=CRS must be specified!
+schmitzm.geotools.gui.CRSSelectionDialog.button.wgs84=WGS-84 CRS
+schmitzm.geotools.gui.CRSSelectionDialog.button.default=Standard CRS (${0})
+schmitzm.geotools.gui.CRSSelectionDialog.button.predefined=Vordefiniert
+schmitzm.geotools.gui.CRSSelectionDialog.button.userDefined=Benutzerdefiniert:
+schmitzm.geotools.gui.JMapEditorPane.Err.MissingMap=Bevor ein neues Layer erstellt werden kann, muss ein Layer angezeigt werden (um CRS und geogr. Lage zu definieren).
+schmitzm.geotools.gui.JMapEditorPane.Err.Line.LessPoints=F\u00FCr ein Line-Feature m\u00FCssen mind. 2 Punkte definiert werden\!
+schmitzm.geotools.gui.JMapEditorPane.Err.Polygon.LessPoints=F\u00FCr ein Polygon-Feature m\u00FCssen mind. 3 Punkte definiert werden\!
+schmitzm.geotools.gui.JMapEditorToolBar.button.layer.new=Neues Layer erstellen
+schmitzm.geotools.gui.JMapEditorToolBar.button.layer.save=Layer abschliessen
+schmitzm.geotools.gui.JMapEditorToolBar.button.layer.cancel=Layer abbrechen
+schmitzm.geotools.gui.JMapEditorToolBar.button.edit.undo=Letzte Operation zur\u00FCcknehmen
+schmitzm.geotools.gui.JMapEditorToolBar.button.edit.redo=Letzte zur\u00FCckgenommene Operation wiederholen
+schmitzm.geotools.gui.JMapEditorToolBar.button.edit.clear=Layer leeren
+schmitzm.geotools.gui.JMapEditorToolBar.button.edit.finish=Neues Feature starten
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.dialog.title=Neues Layer erzeugen
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.title=Layer-Bezeichnung
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.title.default=Neues Layer
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type=Layer-Art
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type.point=Punkt-Layer
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type.line=Linien-Layer
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.layer.type.polygon=Polygon-Layer
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.ftype.title=Weitere Attribute
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.Err.GeomAttr=Attribut-Name '${0}' reserviert f\u00FCr das Default-Geometrie-Attribut.
+schmitzm.geotools.gui.JMapEditorToolBar.NewLayer.Err.AutoVal=Auto-Wert f\u00FCr Attribut-Typ '${0}' nicht m\u00F6glich.
+schmitzm.geotools.gui.JMapEditorToolBar.NewFeature.title=Neues Feature
+schmitzm.geotools.gui.StyleToolBar.FillColor=F\u00FCllfarbe
+schmitzm.geotools.gui.StyleToolBar.BorderColor=Randfarbe
+schmitzm.geotools.gui.StyleToolBar.BorderWidth=Randbreite
+schmitzm.geotools.gui.StyleToolBar.PointMark=Punkt-Style
+schmitzm.geotools.gui.FeatureTypeBuilderTableModel.AttrName=Name
+schmitzm.geotools.gui.FeatureTypeBuilderTableModel.AttrType=Typ
+schmitzm.geotools.gui.FeatureTypeBuilderTableModel.Nillable=Nullable
+schmitzm.geotools.gui.FeatureTypeBuilderTableModel.AutoValue=Auto-Wert
+schmitzm.geotools.gui.FeatureTypeBuilderTableModel.DefValue=Default
+schmitzm.geotools.gui.FeatureTypeBuilderTableModel.NewAttr=ATTR_${0}
+
+schmitzm.geotools.gui.SelectableFeatureTablePane.button.clearSelection.tt=Auswahl aufheben
+schmitzm.geotools.gui.SelectableFeatureTablePane.button.selectionToTop.tt=Ausgew\u00E4hlte Zeilen in der Tabelle nach oben verschieben 
+schmitzm.geotools.gui.SelectableFeatureTablePane.button.invertSelection.tt=Auswahl umkehren
+schmitzm.geotools.gui.SelectableFeatureTablePane.button.zoomToSelection.tt=Zoomt zu den ausgew\u00E4hlten Geoobjekten 
+schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus=${0} von ${1} ${2} selektiert.
+schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus.polygons=Polygonen
+schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus.points=Punkten
+schmitzm.geotools.gui.SelectableFeatureTablePane.selectionStatus.lines=Linien
+
+
+schmitzm.geotools.gui.GridPanelFormatter_DHDN.title=DHDN - 1,234,567 (H|R)
+schmitzm.geotools.gui.GridPanelFormatter_LatLon1.title=Grad\u00B0 Minute' (N|O|S|W)
+#nice to have: schmitzm.geotools.gui.GridPanelFormatter_LatLon2.title=Grad\u00b0 Minute' Sek.'' (N|O|S|W)
+#nice to have: schmitzm.geotools.gui.GridPanelFormatter_LatLon3.title=Grad\u00b0 Minute' Hundertstel (N|O|S|W)
+
+schmitzm.geotools.gui.GridPanelFormatter.ToolTipTemplate=${0} in Einheit ${1}
+
+schmitzm.geotools.gui.GeoPositionLabel.LABEL_PREFIX=Maus-Koordinate\: 
+
+MapPaneButtons.Pan.TT=Karte verschieben
+MapPaneButtons.Info.TT=Informationen zu Objekten abfragen 
+MapPaneButtons.ZoomIn.TT=Auf einen Auschnitt zoomen
+MapPaneButtons.ZoomOut.TT=Aus der Karte herauszoomen
+MapPaneButtons.LastZoom.TT=Letzten Kartenausschnitt wiederherstellen 
+MapPaneButtons.NextZoom.TT=N\u00E4chsten Kartenausschnitt wiederherstellen
+
+MapPaneButtons.Selection.AddSelection.TT=F\u00FCgt Objekte zur Selektion hinzu
+MapPaneButtons.Selection.RemoveSelection.TT=Entfernt Objekte aus der Selektion 
+MapPaneButtons.Selection.SetSelection.TT=Setzt die Selektion auf die ausgew\u00E4hlten Objekte
+MapPaneButtons.Selection.ClearSelection.TT=Hebt alle Selektionen auf
+
+SearchMapDialog.Results.Column.Layer=Gefunden in
+SearchMapDialog.Results.Column.Name=Name
+SearchMapDialog.resultsTable.tt=Klicken Sie auf ein Ergebnis um es anzuzeigen.
+SearchMapDialog.searchString.Label=Suchbegriff eingeben:
+SearchMapDialog.searchString.tt=Geben Sie den Suchbegriff ein und dr\u00FCcken Sie [Enter]
+SearchMapDialog.title=Durchsuche Karte: ${0}
+SearchMapDialog.Explanation=<html>Es werden alle <b>Beschriftungen</b> dieser Karte durchsucht.</html> 
+

Modified: trunk/src/schmitzm/lang/LangUtil.java
===================================================================
--- trunk/src/schmitzm/lang/LangUtil.java	2010-10-06 20:53:44 UTC (rev 1079)
+++ trunk/src/schmitzm/lang/LangUtil.java	2010-10-07 21:30:45 UTC (rev 1080)
@@ -57,6 +57,16 @@
  * @version 1.0
  */
 public class LangUtil {
+    /** Eine Sekunde in Millisekunden. */
+    public static final long SEC_MILLIS = 1000;
+    /** Eine Minute in Millisekunden. */
+    public static final long MIN_MILLIS = 60 * SEC_MILLIS;
+    /** Eine Stunde in Millisekunden. */
+    public static final long HOUR_MILLIS = 60 * MIN_MILLIS; 
+    /** Ein Tag in Millisekunden. */
+    public static final long DAY_MILLIS = 24 * HOUR_MILLIS; 
+    /** Eine Woche in Millisekunden. */
+    public static final long WEEK_MILLIS = 7 * DAY_MILLIS; 
 
 	final static Pattern onlyZerosRegEx = Pattern.compile("^([\\s0.,]*)$");
 

Modified: trunk/src/schmitzm/lang/tree/OperationTree.java
===================================================================
--- trunk/src/schmitzm/lang/tree/OperationTree.java	2010-10-06 20:53:44 UTC (rev 1079)
+++ trunk/src/schmitzm/lang/tree/OperationTree.java	2010-10-07 21:30:45 UTC (rev 1080)
@@ -30,6 +30,7 @@
 package schmitzm.lang.tree;
 
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Random;
 import java.util.regex.Pattern;
@@ -64,8 +65,10 @@
  *         <li>Test auf regulaeren Ausdruck: {@code "regex(expression,regular expr)"}</li>
  *         <li>n-tes Ergebnis eines {@linkplain String#split(String) String-Splits} ueber regulaeren Ausdruck: {@code "split(expression,regular expr,n)"}</li>
  *         <li>String-Ersetzung: {@code "replAll(expression,pattern expr,repl expr)"}</li>
- *         <li>Umwandung eines Datums-String in Milli-Sekunden: {@code millis(string expr, format string expr)}
- *         <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code dateStr(num expr, format string expr)}
+ *         <li>Umwandung eines Datums-String in Milli-Sekunden: {@code str2millis(string expr, format string expr)}
+ *         <li>Umwandung eines Datums in Milli-Sekunden: {@code date2millis(year, month, day)}
+ *         <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code millis2Str(millis, format string expr)}
+ *         <li>Umwandung eines Datums in einen Datums-String: {@code date2Str(year, month, day, format string expr)}
  *       </ul></li>
  *   <li>{@link UnaryOperatorNode}: Innere Knoten, die fuer einen 1-stelligen
  *       Operator auf dem <i>linken</i> Sohn stehen:
@@ -96,6 +99,8 @@
  *         <li>Zufallszahl zwischen 0 und 1: {@code "rand"} oder {@code "random"}</li>
  *         <li>"Not a number" (NaN): {@code "NaN"}</li>
  *         <li>Aktuelle Zeit in ms ({@link System#currentTimeMillis()}): {@code "CURR_MILLIS"}</li>
+ *         <li>Ein Tag in ms ({@link LangUtil#DAY_MILLIS}): {@code "DAY_MILLIS"}</li>
+ *         <li>Eine Woche in ms ({@link LangUtil#WEEK_MILLIS}): {@code "WEEK_MILLIS"}</li>
  *       </ul></li>
  *   <li>{@link ITENode}: ITE-Operator:<br>
  *       Der 3-stellige ITE-Operator {@code ITE(.,.,.)} drueckt die Bedingung
@@ -275,6 +280,81 @@
       return result[idx];
     }
 
+    if ( operator.equals("STR2MILLIS") ) {
+      // 2 Parameters (or more): STR2MILLIS(string expr, format string expr) -> long
+      if ( operand.length < 2 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",2,operator) );
+      if ( !(operand[0] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",1,operator,"String") );
+      if ( !(operand[1] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",2,operator,"String") );
+      SimpleDateFormat formatter = new SimpleDateFormat(operand[1].toString());
+      try {
+        Date date = formatter.parse(operand[0].toString());
+        return date.getTime();
+      } catch (Exception err) {
+        throw new UnsupportedOperationException(err);
+      }
+    }
+      
+    if ( operator.equals("DATE2MILLIS") ) {
+      // 3 Parameters (or more): DATE2MILLIS(year, month, day) -> long
+      if ( operand.length < 3 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",3,operator) );
+      if ( !(operand[0] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",1,operator,"Number") );
+      if ( !(operand[1] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",2,operator,"Number") );
+      if ( !(operand[2] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",3,operator,"Number") );
+      try {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(
+           ((Number)operand[0]).intValue(),
+           ((Number)operand[1]).intValue(),
+           ((Number)operand[2]).intValue()
+         );
+         return calendar.getTimeInMillis();
+      } catch (Exception err) {
+        throw new UnsupportedOperationException(err);
+      }
+    }
+
+    if ( operator.equals("MILLIS2STR") ) {
+      // 2 Parameters: MILLIS2STR(num expr, format string expr) -> string
+      if ( operand.length < 2 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",2,operator) );
+      if ( !(operand[0] instanceof Number) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",1,operator,"Number") );
+      if ( !(operand[1] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",2,operator,"String") );
+      SimpleDateFormat formatter = new SimpleDateFormat(operand[1].toString());
+      long millis = ((Number)operand[0]).longValue();
+      Date date   = new Date(millis);
+      return formatter.format(date);
+    }
+
+    if ( operator.equals("DATE2STR") ) {
+      // 4 Parameters (or more): DATE2STR(year, month, day, format string expr) -> string
+      if ( operand.length < 4 )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams1",4,operator) );
+      for (int i=0; i<3; i++)
+        if ( !(operand[i] instanceof Number) )
+          throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",i+1,operator,"Number") );
+      if ( !(operand[3] instanceof String) )
+        throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.IllegalParam",4,operator,"String") );
+      SimpleDateFormat formatter = new SimpleDateFormat(operand[3].toString());
+      Calendar calendar = Calendar.getInstance();
+      calendar.set(
+         ((Number)operand[0]).intValue(),
+         ((Number)operand[1]).intValue(),
+         ((Number)operand[2]).intValue()
+       );
+       Date date = calendar.getTime();
+       return formatter.format(date);
+    }
+    
+    
     if ( operator.equals("REPLALL") ) {
       if ( operand.length != 3 )
         throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.LessParams2",3,operator) );
@@ -414,27 +494,8 @@
 //        boolean ret = Pattern.matches(operand2.toString(), operand1.toString());
         return Pattern.matches(operand2.toString(), operand1.toString()) ? 1 : 0;
       }
-      if ( operator.equals("MILLIS") ) {
-        SimpleDateFormat formatter = new SimpleDateFormat(operand2.toString());
-        try {
-          Date date = formatter.parse(operand1.toString());
-          return date.getTime();
-        } catch (Exception err) {
-          throw new UnsupportedOperationException(err);
-        }
-      }
     }
 
-    // Long/String-Operationen
-    if ( operand1 instanceof Number && operand2 instanceof String ) {
-      if ( operator.equals("DATESTR") ) {
-        SimpleDateFormat formatter = new SimpleDateFormat(operand2.toString());
-        long millis = ((Number)operand1).longValue();
-        Date date   = new Date(millis);
-        return formatter.format(date);
-      }
-    }
-
     String op1Class = (operand1 != null) ? operand1.getClass().getSimpleName() : null;
     String op2Class = (operand2 != null) ? operand2.getClass().getSimpleName() : null;
     throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.UnknownOperator",operator+" ("+op1Class+", "+op2Class+")") );
@@ -544,7 +605,11 @@
    * Wertet einen 0-stelligen Operator (Alias oder Variable) aus.
    * Als Operator unterstuetzt diese Methode
    * <ul>
-   *   <li>Zufallszahl zwischen 0 und 1: {@code "rand"} oder {@code "random"}</li>
+   *   <li>Zufallszahl zwischen 0 und 1: {@code "RAND"} oder {@code "RANDOM"}</li>
+   *   <li>Not-a-Number: {@code "NAN"}</li>
+   *   <li>Aktuelle Zeit in ms ({@link System#currentTimeMillis()}): {@code "CURR_MILLIS"}</li>
+   *   <li>Ein Tag in ms ({@link LangUtil#DAY_MILLIS}): {@code "DAY_MILLIS"}</li>
+   *   <li>Eine Woche in ms ({@link LangUtil#WEEK_MILLIS}): {@code "WEEK_MILLIS"}</li>
    * </ul>
    * @param operator 0-stelliger Operator
    */
@@ -557,6 +622,10 @@
       return Double.NaN;
     if ( operator.equals("CURR_MILLIS") )
       return System.currentTimeMillis();
+    if ( operator.equals("DAY_MILLIS") )
+      return LangUtil.DAY_MILLIS;
+    if ( operator.equals("WEEK_MILLIS") )
+      return LangUtil.WEEK_MILLIS;
     throw new UnsupportedOperationException( LangUtil.RESOURCE.getString("OperationTree.err.UnknownAliasOperator",operator) );
   }
 

Modified: trunk/src/schmitzm/lang/tree/OperationTreeParser.java
===================================================================
--- trunk/src/schmitzm/lang/tree/OperationTreeParser.java	2010-10-06 20:53:44 UTC (rev 1079)
+++ trunk/src/schmitzm/lang/tree/OperationTreeParser.java	2010-10-07 21:30:45 UTC (rev 1080)
@@ -61,6 +61,8 @@
  *           <li>boolesches WAHR (1): {@code "TRUE"}</li>
  *           <li>boolesches FALSCH (0): {@code "FALSE"}</li>
  *           <li>Aktuelle Zeit in ms ({@link System#currentTimeMillis()}): {@code "CURR_MILLIS"}</li>
+ *           <li>Ein Tag in ms ({@link LangUtil#DAY_MILLIS}): {@code "DAY_MILLIS"}</li>
+ *           <li>Eine Woche in ms ({@link LangUtil#WEEK_MILLIS}): {@code "WEEK_MILLIS"}</li>
  *       </ul></li>
  *   <li>konstante String Werte: {@link ConstantNode}</li>
  *       <ul>
@@ -91,13 +93,15 @@
  *          <li>String-Konkatenation: {@code "+"}</li>
  *          <li>Test auf regulaeren Ausdruck: {@code "regex(expression,regular expr)"}</li>
  *          <li>n-tes Ergebnis eines {@linkplain String#split(String) String-Splits} ueber regulaeren Ausdruck: {@code "split(expression,regular expr,n)"}</li>
- *          <li>Umwandung eines Datums-String in Milli-Sekunden: {@code millis(string expr, format string expr)}
- *          <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code dateStr(num expr, format string expr)}
  *       </ul></li>
  *   <li>den mehr-stelligen Zeichenketten-Operatoren: {@link MultiParamOperatorNode}
  *       <ul>
  *          <li>Teil-String: {@code "substr(expression,startPos_inkl,endPos_exkl)"}</li>
  *          <li>String-Ersetzung: {@code "replAll(expression,pattern,replacement)"}</li>
+ *          <li>Umwandung eines Datums-String in Milli-Sekunden: {@code str2millis(string expr, format string expr)}
+ *          <li>Umwandung eines Datums in Milli-Sekunden: {@code date2millis(year, month, day)}
+ *          <li>Umwandung von Milli-Sekunden in einen Datums-String: {@code millis2Str(millis, format string expr)}
+ *          <li>Umwandung eines Datums in einen Datums-String: {@code date2Str(year, month, day, format string expr)}
  *       </ul></li>
  *   <li>die 1-stelligen Operatoren: {@link UnaryOperatorNode}
  *       <ul>
@@ -955,7 +959,8 @@
     }
     // Zufallszahl oder NaN-Konstante
     if ( token.equals("rand") || token.equals("random") ||
-         token.equals("nan")  || token.equals("curr_millis")) {
+         token.equals("nan")  || token.equals("curr_millis") ||
+         token.equals("day_millis") || token.equals("week_millis") ) {
       return new OperationTree.ConstantAliasNode(token);
     }
     // ITE(a,b,c) = IF a THEN b ELSE c
@@ -982,27 +987,42 @@
       return new OperationTree.MultiParamOperatorNode(token,null,splitParam);
     }
 
-    // MILLIS(string,formatexpr) = Umwandung von Datums-String (in angebenen Format) in Millisekunden
-    if ( token.equals("millis") ) {
+    // STR2MILLIS(string,formatexpr) = Umwandung von Datums-String (in angebenen Format) in Millisekunden
+    if ( token.equals("str2millis") ) {
       // Parameter fuer MILLIS parsen
-      BinaryTreeNode[] millisParam = parseFunctionParameters("MILLIS",2);
+      BinaryTreeNode[] millisParam = parseFunctionParameters("STR2MILLIS",2);
       // Baum fuer MILLIS
-      return new OperationTree.OperatorNode(token,millisParam[0],millisParam[1]);
+      return new OperationTree.MultiParamOperatorNode(token,null,millisParam);
     }
+    // DATE2MILLIS(year,month,day) = Umwandung von Datum in Millisekunden
+    if ( token.equals("date2millis") ) {
+      // Parameter fuer MILLIS parsen
+      BinaryTreeNode[] millisParam = parseFunctionParameters("DATE2MILLIS",3);
+      // Baum fuer MILLIS
+      return new OperationTree.MultiParamOperatorNode(token,null,millisParam);
+    }
 
-    // DATE(num,formatexpr) = Umwandung von Millisekunden in Datums-String (in angebenen Format)
-    if ( token.equals("datestr") ) {
-      // Parameter fuer MILLIS parsen
-      BinaryTreeNode[] millisParam = parseFunctionParameters("DATESTR",2);
+    // MILLIS2STR(num,formatexpr) = Umwandung von Millisekunden in Datums-String (in angebenen Format)
+    if ( token.equals("millis2str") ) {
+      // Parameter fuer DATESTR parsen
+      BinaryTreeNode[] datestrParam = parseFunctionParameters("MILLIS2STR",2);
       // Baum fuer DATESTR
-      return new OperationTree.OperatorNode(token,millisParam[0],millisParam[1]);
+      return new OperationTree.MultiParamOperatorNode(token,null,datestrParam);
     }
 
+    // DATE2STR(year,month,day,formatexpr) = Umwandung von Datum in Datums-String (in angebenen Format)
+    if ( token.equals("date2str") ) {
+      // Parameter fuer DATESTR parsen
+      BinaryTreeNode[] datestrParam = parseFunctionParameters("DATE2STR",4);
+      // Baum fuer DATESTR
+      return new OperationTree.MultiParamOperatorNode(token,null,datestrParam);
+    }
+
     // SUBSTR(string,startPos_inkl,endPos_exkl) = Teil-String
     if ( token.equals("substr") ) {
       // Parameter fuer SUBSTR parsen
       BinaryTreeNode[] substrParam = parseFunctionParameters("SUBSTR",3);
-      // Baum fuer SPLIT
+      // Baum fuer SUBSTR
       return new OperationTree.MultiParamOperatorNode(token,null,substrParam);
     }
 
@@ -1216,11 +1236,18 @@
     avOperators.add("len");         
     avOperators.add("toupper");     
     avOperators.add("tolower");     
-    avOperators.add("ITE");         
-    avOperators.add("REGEX");       
-    avOperators.add("SUBSTR");      
+    avOperators.add("ite");         
+    avOperators.add("regex");       
+    avOperators.add("substr");      
+    avOperators.add("split");      
+    avOperators.add("str2millis");      
+    avOperators.add("date2millis");      
+    avOperators.add("millis2str");      
+    avOperators.add("date2str");      
+    avOperators.add("day_millis");      
+    avOperators.add("week_millis");      
     // Die "einfachen Operatoren" and Ende setzen, da diese eigentlich
-    // menuell eingegeben werden und nicht so oft gebraucht werden
+    // manuell eingegeben werden und nicht so oft gebraucht werden
     avOperators.add("+"); 
     avOperators.add("-"); 
     avOperators.add("*"); 
@@ -1317,6 +1344,7 @@
         op.equalsIgnoreCase("ln") || op.equalsIgnoreCase("log") ||
         op.equalsIgnoreCase("val") || op.equalsIgnoreCase("str") ||
         op.equalsIgnoreCase("toupper") || op.equalsIgnoreCase("tolower") ||
+        op.equalsIgnoreCase("STR2MILLIS") || op.equalsIgnoreCase("MILLIS2STR") ||
         op.equalsIgnoreCase("!") )
       return 1;
 
@@ -1325,9 +1353,14 @@
       return 2;
 
     // Funktionen mit drei geklammerten Parameter
-    if (op.equalsIgnoreCase("ITE") || op.equalsIgnoreCase("SUBSTR") )
+    if (op.equalsIgnoreCase("ITE") || op.equalsIgnoreCase("SUBSTR") ||
+        op.equalsIgnoreCase("SPLIT") || op.equalsIgnoreCase("DATE2MILLIS") )
       return 3;
 
+    // Funktionen mit vier geklammerten Parameter
+    if (op.equalsIgnoreCase("DATE2STR"))
+      return 4;
+
     // sonst: Konstante/Alias angenommen
     return 0;
   }

Modified: trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties
===================================================================
--- trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties	2010-10-06 20:53:44 UTC (rev 1079)
+++ trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle.properties	2010-10-07 21:30:45 UTC (rev 1080)
@@ -117,9 +117,16 @@
 OperationTreePanel.OpDesc.len=len($TEXT)
 OperationTreePanel.OpDesc.toupper=toupper($TEXT)
 OperationTreePanel.OpDesc.tolower=tolower($TEXT)
-OperationTreePanel.OpDesc.ITE=IF .. THEN .. ELSE
-OperationTreePanel.OpDesc.REGEX=REGEX( $TEXT , REGEX)
-OperationTreePanel.OpDesc.SUBSTR=SUBSTRING( $TEXT , $NUMBER , $NUMBER)
+OperationTreePanel.OpDesc.ite=IF .. THEN .. ELSE
+OperationTreePanel.OpDesc.regex=REGEX( $TEXT , $REGEX)
+OperationTreePanel.OpDesc.substr=SUBSTRING( $TEXT , $NUMBER , $NUMBER)
+OperationTreePanel.OpDesc.split=SPLIT( $TEXT , $REGEX , $NUMBER)
+OperationTreePanel.OpDesc.str2millis=str2millis( $TEXT , $TEXT)
+OperationTreePanel.OpDesc.date2millis=date2millis( $YEAR, $MONTH, $DAY)
+OperationTreePanel.OpDesc.millis2str=millis2str( $NUMBER , $FORMAT)
+OperationTreePanel.OpDesc.date2str=date2millis( $YEAR, $MONTH, $DAY, $FORMAT)
+OperationTreePanel.OpDesc.day_millis=DAY_MILLIS
+OperationTreePanel.OpDesc.week_millis=WEEK_MILLIS
 OperationTreePanel.OpDesc.plus=+
 OperationTreePanel.OpDesc.minus=-
 OperationTreePanel.OpDesc.multiply=*
@@ -163,6 +170,13 @@
 OperationTreePanel.OpTooltip.ite=Specifies a logical test to be performed.
 OperationTreePanel.OpTooltip.regex=Performs regular-expressions operation on a text.
 OperationTreePanel.OpTooltip.substr=Returns only a part of a text.
+OperationTreePanel.OpTooltip.split=Returns the n-th result of a text split over a regular expression.
+OperationTreePanel.OpTooltip.str2millis=Converts a date from string to milliseconds
+OperationTreePanel.OpTooltip.date2millis=Converts a date to milliseconds
+OperationTreePanel.OpTooltip.millis2str=Converts milliseconds to a date string
+OperationTreePanel.OpTooltip.date2str=Converts a date to a date string
+OperationTreePanel.OpTooltip.day_millis=The value of a day in milliseconds
+OperationTreePanel.OpTooltip.week_millis=The value of a week in milliseconds
 OperationTreePanel.OpTooltip.plus=Addition
 OperationTreePanel.OpTooltip.minus=-Subtraction
 OperationTreePanel.OpTooltip.multiply=Multiplication

Modified: trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties
===================================================================
--- trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties	2010-10-06 20:53:44 UTC (rev 1079)
+++ trunk/src/schmitzm/swing/resource/locales/SwingResourceBundle_de.properties	2010-10-07 21:30:45 UTC (rev 1080)
@@ -145,9 +145,16 @@
 OperationTreePanel.OpTooltip.len=Berechnet die L\u00E4nge eines Texts.
 OperationTreePanel.OpTooltip.toupper=Konvertiert Text in Gro\u00DFbuchstaben.
 OperationTreePanel.OpTooltip.tolower=Konvertiert Text in Kleinbuchstaben.
-OperationTreePanel.OpTooltip.ITE=Spezifiziert einen logischen Test.
-OperationTreePanel.OpTooltip.REGEX=Wertet einen regul\u00E4ren Ausdruck auf einem Text aus.
-OperationTreePanel.OpTooltip.SUBSTR=Liefert einen Teil-String.
+OperationTreePanel.OpTooltip.ite=Spezifiziert einen logischen Test.
+OperationTreePanel.OpTooltip.regex=Wertet einen regul\u00E4ren Ausdruck auf einem Text aus.
+OperationTreePanel.OpTooltip.substr=Liefert einen Teil-String.
+OperationTreePanel.OpTooltip.split=Liefert das n-te Ergebnis eines Text-Split \u00fcber einem regul\u00E4ren Ausdruck
+OperationTreePanel.OpTooltip.str2millis=Konvertiert einen Datum-Text in Millisekunden
+OperationTreePanel.OpTooltip.date2millis=Konvertiert ein Datum in Millisekunden
+OperationTreePanel.OpTooltip.millis2str=Konvertiert Millisekunden in einen Datum-Text
+OperationTreePanel.OpTooltip.date2str=Konvertiert ein Datum in einen Datum-Text
+OperationTreePanel.OpTooltip.day_millis=Ein Tag in Millisekunden
+OperationTreePanel.OpTooltip.week_millis=Eine Woche in Millisekunden
 OperationTreePanel.OpTooltip.plus=Addition
 OperationTreePanel.OpTooltip.minus=Subtraktion
 OperationTreePanel.OpTooltip.multiply=Multiplikation



More information about the Schmitzm-commits mailing list