polymap.org

  • Increase font size
  • Default font size
  • Decrease font size
Home POLYMAP2 Dokumentation Konfiguration Fachdaten-Filter konfigurieren (TD-Plugin)

Fachdaten-Filter konfigurieren (TD-Plugin)

PDF
There are no translations available.

Bei Fachdaten handelt es sich meist um Tabellendaten, die in einer SQL-Datenbank gespeichert sind (Hibernate-Plugin) oder um Daten eines WFS-Servers (Deegree-Plugin). Egal aus welchem System die Daten kommen, es können für alle Tabellendaten auf dieselbe Weise Filter definiert werden.

Filter werden im Abschnitt polymap2/gis/tabularData/filters eingetragen.

Beispiel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- Bauland Filter *********************** -->
<bauland1 label="bauland1" providerId="bauland" maxResults="100">
<entities>
<sudmerberg name="bauland.Sudmerberg" root="true" />
</entities>
<expression>
<equal>
<field name="sudmerberg.gemarkung" />
<input order="10" label="Gemarkung" x="0" y="0" tooltip="text"
validator="WildcardStringValidator" builder="StringBuilder" />
</equal>
</expression>
<executor class="polymap2.hibernate.filter.HibernateFilterExecutor" />
</bauland1>
  • label: Bezeichnung des Filters
  • providerId: (optional): zugehöriger Datenlieferant
  • maxResults: maximal zulässige Anzahl non Ergebnisdatensätzen

Abschnitt “entities”

In diesem Abschnitt werden die Entities aufgeführt, die im Filter verwendet werden sollen und es wird ihnen ein Alias-Name zugewiesen unter dem sie im Filter angesprochen werden können. Es sich um Entities handeln, die vom entsprechenden Provider zur Verfügung gestellt werden. Die Entity, die das Ergebnis des Filters darstellt, wird mit root=“true” markiert. Alle anderen Entities müssen ihre Assoziation zum Ergebnis im Attribut path=“” enthalten.

Abschnitt “classPrefixes”

Abschnitt “expression”

Datenfeld: “field”

  • name: vollqualifizierter Name des Datenfeldes: “Entity-Alias.Feldname”

Eingabefeld: “input”

Das Aussehen und das Verhalten von Eingabefeldern kann sehr flexibel über sogenannte Validatoren und Builder bestimmt werden. Der Builder definiert dabei wie das Eingabefeld in der Oberfläche dargestellt wird. Der Validator hingegen übernimmt die Plausibilitätsprüfung der eingegebenen Werte und die Umrechnung in ein gewünschtes Zielformat. Zum Beispiel kann man einen ganzzahligen Wert über ein Textfeld und über ein Auswahlliste eingeben. Beides kann für die jeweilige Anwendung sinnvoll sein. Dafür wählt man also entweder den StringBuilder oder den PicklistBuilder. Soll dieser Wert dann mit einem Feld eines Datensatzes vom Typ Integer verglichen werden, dann muss der IntegerValidator gewählt werden. Dieser prüft einerseits ob die eingegebene Zeichenkette korrekt in einen Integer gewandelt werden kann und führt dann auch diese Umwandlung durch.

  • label: Bezeichnung des Eingabefeldes
  • order: Ordnung innerhalb der Eingabefelder
  • x/y: (optional) (ab Version 1.0.x) Position des Eingabefeldes innerhalb eines Gitters; ohne diese Angabe werden die Felder an den Positionen x/y=0/0; x/y=0/1,… angeordnet; mehrere Felder können auf dieselbe Position gesetzt werden, sie werden dann in der Zelle horizontal angeordnet
  • width/height: (optional) (ab Version 1.0.x) maximale Ausdehnung des Feldes; ohne diese Angabe wird das Feld an die Breite des Filter-Dockables angepasst
  • tooltip: (optinional) (ab Version 1.0.x) Tooltip des Feldes; Doppel-Backslash erzeugt einen Zeilenumbruch
  • checkVisibility: (optional) (ab Version 1.0.8) Entity-Alias oder Entity-Alias.Feldname; die Sichtbarkeit dieser Entity oder des Felder wirkt sich auf die Sichtbarkeit dieses Eingabefeldes aus
  • builder:
    • StringBuilder: einfaches Textfeld; um spezielle Datentypen sicher eingeben zu können, sollte es mit dem jeweils passendem Validator verwendet werden
    • TextFieldBuilder: (ab Version 1.0.x) ersetzt den StringBuilder.
    • TextAreaBuilder: (ab Version 1.0.x) erzeugt ein mehrzeiliges Textfeld; die Höhe wird über den Parameter height= eingestellt
    • PicklistBuilder:
      • entity: Alias der Entity, die den Inhalt der Picklist bildet; ab Version 1.0.x muss hier der vollständige Entity-Name angegeben werden
      • searchField: Entity-Feld das das Ergabnis bildet; bei einer typischen n:1-Assoziation muss hier das Primärschlüsselfeld angegeben werden
      • orderField: Entity-Feld das die Sortierung der einzelnen Einträge bildet
      • labelField: Entity-Feld das die Label der einzelnen Einträge bildet
    • StaticPicklistBuilder: Auswahlliste mit festen Einträgen, die über den Parameter entry angegeben werden.
      • entry: <entry>Apfel</entry>
    • FSPicklistBuilder:
  • validator:
    • StringValidator: der Eingabewert vom Builder wird ohne Validierung und Umrechnung weitergegeben
    • WildcardStringValidator: Platzhalter “*” (beliebige Zeichenkette) und “?” (beliebiges Zeichen) werden beachtet und in SQL umgesetzt; nur sinnvoll mit “like” oder “ilike”-Operatoren
    • IntegerValidator: Prüfen und Umrechnen in ganzzahligen Wert.
    • DoubleValidator: Prüfen und Umrechnen in Fließkomma-Wert.

Operatoren

like und ilike sind nur sinnvoll mit dem WildcardStringValidator
  • <like>
  • <ilike> a case-insensitive <like>
  • <equal>
  • <greater>
  • <greaterOrEqual>
  • <less>
  • <lessOrEqual>
  • <and>
  • <or>
  • <rawQuery>: (ab Version 1.2.x) Dieser Operator erlaubt die Angabe einer Query, die direkt an das unterliegende System weitergegeben wird. Das kann zum Beispiel SQL sein. Dieser Operator sollte nur in Ausnehmefällen verwendet werden, da solche festen Queries in keiner Weise übertragbar sind und deshalb die Applikation abhängig von einem ganz bestimmten Produkt/System wird.

 

rawQuery
1
2
3
   <rawQuery query="lower({alias}.ALBFLU_ZAEHLER) like lower(?)">
<input order="5" label="Zähler" validator="StringValidator" builder="TextFieldBuilder" />
</rawQuery>

Konstante

  • <const value=“” type=“”/>

Klasse die den Filter ausführt

  • <executor class=“polymap2.hibernate.filter.HibernateFilterExecutor”/>

Filter benutzen

Filter einem Provider zuordnen (aktivieren)

Um einen Filter benutzen zu können muss dieser einem Provider zugeordnet werden. Diese Zuordnung erfolgt in der Provider-Konfiguration über den Parameter <standardFilter>.

Filter direkt anzeigen

Mit folgendem Kommando können Filter direkt aus einer Sicht geöffnet werden, ohne das der Nutzer diesen aus der Filterliste explizit auswählen muss.

1
2
3
   <c1 providerId="[providerId]" class="polymap2.td.filter.ShowFilterCommand" order="20">
<filterId>[filterId]_[providerId]</filterId>
</c1>

Die filterId setzt sich zusammen aus dem Namen des Filters + “_” + Name des Providers.

Last Updated ( Saturday, 28 March 2009 13:22 )  

Add comment


Security code
Refresh



  • Deutsch (DE-CH-AT)
  • English (United Kingdom)

Wer ist online

We have 45 guests online