Class ApplicationManagerPage

java.lang.Object
  |
  +--ApplicationManagerPage

public class ApplicationManagerPage
extends java.lang.Object
implements Page

HEISS-Applet zur Recherche-Anwendung des HLfB : ApplicationManagerPage. Seite  
zur Auswahl einer Applikation, die die erstellten Recherchen weiterverarbeitet.

Autor: Sven Kühne, Institut für Geoinformatik der Universität Münster e-mail: kuehne@ifgi.uni-muenster.de

Version: 1.1 Bemerkung: benötigt jdk 1.1 mit Swing 1.0.1 Stand: Januar 1998

Die Klasse ApplicationManagerPage ist für die Ausführung vorher spezifizierter Recherchen sowie Auswahl und Start einer Anwendung, die auf die Recherche zugreift, zuständig. Die Klasse präsentiert dem Nutzer eine Tabelle mit Name und Beschreibung der zur Verfügung stehenden Applikationen. Der Nutzer kann einen Eintrag aus der Tabelle wählen und die entsprechende Anwendung starten (oder den Vorgang abbrechen).


Vor jedem Start einer Anwendung führt die Klasse die spezifizierte Recherche aus. Die IDs der Datensätze, die das Ergebnis der Recherche bilden, werden in der Tabelle ERGEBNISSE gespeichert. Diese muß den folgenden Aufbau haben:

Tabelle ERGEBNISSE
Spalte Spaltenname Datentyp Primärschlüssel Fremdschlüssel
1 RID number + RECHERCHE(RID)
2 SID number +
3 DVID number + DLTREE(DLID)

Anhand der RID ist das SQL-Statement der ausgeführten Recherche nachzuvollziehen. Da die Ausführung ein- und derselben Recherche zu unterschiedlichen Zeitpunkten unterschiedliche Resultate liefern kann, wird zur Identifizierung der richtigen Ausführungsinstanz eine SID (kurz für Session_ID) mitgeführt. Die Klasse ApplicationsManagerPage ist für die Erzeugung einer eindeutigen SID zuständig. In der Datenbank existiert eine Session-Sequenz mit dem Namen SESSION_SEQ, die dafür Verwendung findet. Für die Ausführungsinstanz der Recherche verweisen die DVID-Werte jeweils auf die Ursprungspunkte in der Tabelle DLTREE, die einen Datensatz eindeutig identifizieren. Folglich kann man, wenn man eine bestimmte SID hat, anhand der Tabelle ERGEBNISSE herausfinden, zu welcher Recherche die Ausführung gehört und welche Datensätze sie als Ergebnis geliefert hat.


Die Liste der Programme und ihrer Eigenschaften erhält die ApplicationManagerPage von einem ApplicationsTableModel. Die Programme sind erstens unterschieden in solche, die den Aufbau der zugrunde liegenden Datenbank kennen, und solche, die ihn nicht kennen. Bei nichtkennenden Anwendungen erstellt die Klasse eine flache Tabelle mit Hilfe der vorher produzierten Einträge in ERGEBNISSE sowie der Spezifikationen, die für die Anwendung in der Tabelle PROGRAMME_MERKMALE der Datenbank vorliegen. Die Tabelle muß den folgenden Aufbau haben:

Tabelle PROGRAMME_MERKMALE
Spalte Spaltenname Datentyp Primärschlüssel Fremdschlüssel
1 Programm_ID number + PROGRAMME(Program_ID)
2 Merkmal_ID number +
3 Spaltenname varchar2
4 MDEFID number DEF(MDEFID) oder MDEF
5 MEDEFID number DEF(MDEFID) oder MEDEF
6 Inhalt number

PROGRAMME_MERKMALE definiert für alle nicht-metadaten-kennende Anwendungen den Aufbau der flachen Tabellen, in die diejenigen Werte aus den Ergebnisdatensätzen geschrieben werden, die die jeweilige Anwendung interessieren. Diese Tabellen sind sozusagen einfache Views auf die Ergebnismenge der Rechercheausführung.


Zweitens sind die Anwendungen unterschieden in solche, die als Applets in HTML-Dokumenten über das HTTP aufgerufen werden, und solche, die über eine ClassLoader-Instanz gestartet werden. Für erstere erfolgt der Aufruf der URL, die in der Tabelle PROGRAMME (Beschreibung siehe Klasse ApplicationsTableModel) steht, in einem neuen Browser-Fenster. Die URL ist um


Field Summary
static java.lang.String APP_MAN_ABBRECHEN_COMMAND
           
static java.lang.String APP_MAN_AUSFUEHREN_COMMAND
           
 
Constructor Summary
ApplicationManagerPage(DBConnect db)
           
 
Method Summary
 void addPanel(com.sun.java.swing.JPanel jp)
           
 boolean isAppSelected()
          Gibt wahr zurück, wenn die Selektionsmenge in der Tabelle nicht leer ist, ansonsten falsch.
 void removePanel(com.sun.java.swing.JPanel jp)
           
 void setRecherche(RechercheContainer rc, RechercheTableModel rtm)
           
 void startApplication()
           
 void startUp(java.awt.event.ActionListener ap)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APP_MAN_AUSFUEHREN_COMMAND

public static final java.lang.String APP_MAN_AUSFUEHREN_COMMAND

APP_MAN_ABBRECHEN_COMMAND

public static final java.lang.String APP_MAN_ABBRECHEN_COMMAND
Constructor Detail

ApplicationManagerPage

public ApplicationManagerPage(DBConnect db)
Method Detail

startUp

public void startUp(java.awt.event.ActionListener ap)
Specified by:
startUp in interface Page

setRecherche

public void setRecherche(RechercheContainer rc,
                         RechercheTableModel rtm)

addPanel

public void addPanel(com.sun.java.swing.JPanel jp)
Specified by:
addPanel in interface Page

removePanel

public void removePanel(com.sun.java.swing.JPanel jp)
Specified by:
removePanel in interface Page

startApplication

public void startApplication()

isAppSelected

public boolean isAppSelected()
Gibt wahr zurück, wenn die Selektionsmenge in der Tabelle nicht leer ist, ansonsten falsch.