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
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 |
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
ApplicationManagerPage
public ApplicationManagerPage(DBConnect db)
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.