Florian Bielsky (854855) | Michael Kabdebo (854129

Werbung
Florian Bielsky (854855) | Michael Kabdebo (854129) | Marc Rohe(854150)
Inhaltsverzeichnis
1.
2.
3.
Einführung
5
1.1
Vorwort
5
1.2
infra$tat
5
1.3
Lizenz und Haftungsauschluss
6
1.4
Weiterentwicklung
6
Anforderungen, Installation und Verwendung
7
2.1
Softwareanforderungen
7
2.2
Installation für Entwickler
7
2.3
Systemvoraussetzungen für die Nutzung
7
2.4
Installation für die Nutzung
7
2.5
Programmiersprachen
8
2.6
Hardwareanforderungen
8
Datenbank
9
3.1
Datenbankstruktur
9
3.2
ER-Modell
9
3.3
Datenbank-Design
10
3.3.1
Tabelle Firma
10
3.3.2
Tabelle Banken
10
3.3.3
Tabelle Aufsichtrat
10
3.3.4
Tabelle Vorstand
10
3.3.5
Tabelle Beteiligungen
10
3.3.6
Tabelle Umsatz
11
3.3.7
Tabelle Konzernumsatz
11
3.3.8
Tabelle Beschaeftigte
11
2
4.
5.
Packages
12
4.1
gui (Klassen für View-Komponente)
12
4.2
libs(benötigte Libraries)
12
4.3
crawler (Klassen für Crawler-Komponente)
12
4.4
db (Klassen für Model-Komponente)
13
4.5
db.data (Datenbank-Inhalte)
13
4.6
db.im ages(Verwendete Bilder / Icons)
14
4.7
action (Klassen für Control-Komponente)
14
4.8
helper (Hilfsklassen)
15
Klassenbeschreibungen
16
5.1
Package gui
16
5.1.1
Klasse MainGui.java
16
5.2
Package Crawler
16
5.2.1
Zugriff auf die Hoppenstedt-Datenbank
16
5.2.2
Programminterner Ablauf
17
5.2.3
Die Klasse Former.java
17
5.2.4
Die Klasse Crawler.java
17
5.2.5
Die Klasse Profile2File.java
18
5.2.6
Die Klasse CrawlFromFile.java
18
5.3
Package db
19
5.3.1
DTO-Klassen
19
5.3.2
Klasse db.DBObject
19
5.3.3
DB-Klassen
19
5.4
Package action
20
Enthaltene Klassen
20
5.4.1
action.DoLineWrapListener.java
20
5.4.2
action.ItemControlListener.java
20
5.4.3
SearchBodListener.java
20
5.4.4
SearchCompListener.java
20
5.4.5
SearchDirectorListener.java
20
5.4.6
SearchTownListener.java
20
3
5.4.7
SelectButtonListener.java
20
5.4.8
ShowStatsListener.java
21
5.4.9
SResultSele ctionListener.java
21
5.5
Package Helper
21
5.5.1
Umsatz
21
5.5.2
KUmsatz
21
5.5.3
Tools
21
6.
Ablaufdiagramm
23
7.
Styleguide
24
8.
7.1
Farbschema
24
7.2
Schriftarten
24
7.3
Icons
24
Kontakt
26
8.1
Teammitglieder
26
8.2
Supervisor
25
4
1. Einführung
1.1 Vorwort
Dieses Dokument dient dazu, inter essierten Programmierern eine Grundlage zur Weiterentwic klung
von infra$tat zu schaffen. Es enthält sowohl allgemeine Informationen über die Anwendung infra$tat
, als auch detaillierte Informationen über die Softwarearchitektur, die einzelnen Packages und
Klassen.
1.2 infra$tat
In Deutschland gibt es derzeit über 159 000 Unternehmen. Bei dieser großen Zahl an Firmen gibt es
zahlreiche Beziehungen unter einander. Zur Informationsbeschaffung gibt es eine Hand voll
Datenbanken in welchen detaillierte Informationen zu den einzelnen Unternehmen zu finden sind.
Allerdings sind anhand der Struktur dieser Daten Zusammenhänge zwischen den Firmen nur schwer
zu erkennen.
Des Weiteren gibt es derzeit keine Software, die diese Struktur en direkt visuell darstellt und
veranschaulicht.
Mit der Anwendung infra$tat wird diese Marktlücke aufgegriffen. Infra$tat beschäftigt sich mit der
Visualisierung von Unternehmensstrukturen deutscher Unternehmen und den Beziehungen
untereinander.
Es ist möglich Firmen anhand von Suchparametern zu ermittelt. Einzelne oder mehr ere
Suchergebnisse können daraufhin visuell dargestellt werden. Zusätzlich werden auch umfangreiche
Informationen zu den ausgewählten Firmen in einem Informationsbereich angezeigt. Hierbei ist es
auch möglich Statistiken zu Umsatz- und Beschäftigungszahlen zu erhalten.
Bei einer Visualisierung wird die gewählte Firma, umgeben von Ihren Aufsichtsrats - und
Vorstandsmitgliedern angezeigt.
Infra$tat wurde in der modernen und objektorientierten Programmiersprache entwickelt. Als
Grundlage für die Datenbeschaffung dient die Hochschul datenbank der Hoppenstedt- Gruppe.
Im Rahmen der Veranstaltung Medienkonzeption und Produktion an der Fachhochschule
Kaiserslautern wurde dem Entwicklerteam FreeFaces ein VPN-Zugang zur Technischen Universität
Kaiserslautern zur Verfügung gestellt, um über deren Hochschulaccount bei Hoppenstedt die
benötigten Daten beschaffen zu können.
Die Anwendung besteht aus drei Hauptkomponenten:



Sammeln der Informationen durch einen Crawler.
Speichern der Daten in einer softwareinternen Datenbank.
Auswertung und An zeigen der geforderten Informationen mittels eines entsprechenden
Algorithmus.
5
1.3 Lizenz und Haftungsauschluss
Die Anwendung infra$tat wurde unter der General Public License (GPL) entwickelt. Näher e
Informationen dazu finden Sie unter http://www.opensource.org. Die Anwendung behält sich vor
weder vollkommen korrekt noch auf dem aktuellsten Stand zu sein. Bei der Entwicklung der Daten
wurden die Daten der Hoppenstedt Datenbank aus dem Ja hre 2007 verwendet.
1.4 Weiterentwicklung
Die Anwendung infra$tat bietet jedem Inter essenten die Möglichkeit den Quellcode nach seinen
eigenen Vorstellungen anzupassen und weiterzuentwickeln. Durch die sauber aufgebaute Struktur
der Software im Gesamten und eine ausführliche Kommentierung des Quellcodes wird der Einstieg
in die Weiterentwicklung erleichtert.
6
2. Anforderungen, Installation und Verwendung
2.1 Softwareanforderungen
Zur Weiterentwicklung von infra$tat benötigen Sie folgende Anforderungen:







Java Development Kit ab Version 5.0 der Java Standard Edition J2SE
Visualisierungstoolkit Prefuse
JFreeChart (W erkzeug zur Darstellungen der Statistiken)
Jakarta http Client
HSQLDB (Integriertes Datenbankmanagementsystem für Java)
Java Entwicklungsumgebung (hier verwendet Eclipse 3.2, JDeveloper, NetBeans 5.5.1)
Substance LookAndFeel
Die genannten W erkzeuge sind größtenteils im CVS Root im Ordner src/libs vorhanden.
Lediglich die Java Entwicklungsumgebung und das Java Development Kit müssen über ex terne
Quellen bezogen werden.
Bezugsquellen hierzu:

Java Entwicklungsumgebung:
Eclipse 3.2 http://www.eclipse.org

Java JDK:
http://www.sun.com
2.2 Installation für Entwickler
Entwickleraccount bei sf.net für infra$tat
Erstellen einer Verbindung zum CVS Repository auf http://www.sourceforge.net zum Beispiel mit
Eclipse:


Kompletter Checkout durchführen
Libraries aus dem Ordner src/libs in Build-Path einbinden.
2.3 Systemvoraussetzungen für die Nutzung
Für die Ausführung der Anwendung werden folgende Softwareanforderungen vorausgesetzt:


Java Runtime Environment ab Version 5.0.
Hier wird auf die unter http://infra$tat.sf.net/documentation.html zu erhaltende
Benutzerdokumentation verwiesen.
2.4 Installation für die Nutzung
Zur Installation der Anwendung bitte wie folgt vorgehen:



Herunterladen der aktuellen Version unter
http://infra$tat.sourceforge.net/download.html
Installationsdatei ausführen und den Installationsanweisungen folgen.
Ausführen der infra$tat.exe , um die Anwendung zu starten.
Weitere Hinweise siehe Benutzerdokumentation.
7
2.5 Programmiersprachen
Die gesamte Anwendung wurde ich Java 5.0 entwickelt. Für die Datenbankkomponente wurde SQL
verwendet.
2.6 Hardwareanforderungen
Für das Ausführen der Anwendung werden folgende Hardwareanforderungen vorausgesetzt:




Mindestens Pentium 4 mit 1,2 GHz.
Mindestens 256 MB RAM, empfohlen 512 MB oder höher.
15 MB freier Festplattenspeicher.
Eine Bildschirmauflösung von mindestens 1024 x 768 Pixel.
Für das Ausführen des Crawler, bzw. die Entwicklung werden deutlich höhere Systemressourcen
empfohlen.



Mindestens Pentium 4 mit 2 GHz.
Mindestens 1024 MB RAM oder höher.
Bis zu 700 MB freier Festplattenspeicher.
8
3. Datenbank
Als DBMS wurde in der Anwendung infra$tat HSQLDB verwendet. Dies ist eine kostenlose
vollwertige SQL-Datenbank, die fest in eine Java-Anwendung integriert werden kann. Des Weiteren
sind bei HSQLDB Transakti onen möglich (commit, rollback) und es wird referentielle Integrität
unterstützt. Somit können HSQL Datenbanken bei aktuellen vergleichbaren externen DBMS ohne
weiter es mithalten.
Eine zentrale Bedeutung hat dabei die Datei src/db/data/infrastat.script, in welcher sowohl die
Einstellungen für die Datenbank wie Benutzername oder Passwort, als auch die die Tabellen und die
Datensätze gespeichert werden. Der Datenbank-Prozess wird mit dem Start der Anwendung
gestartet und mit deren Beendung auch wieder beendet. Die hat den großen Vorteil, dass
Endbenutzer sich nicht mit der Installation etwa einer MySQL-Datenbank rumschlagen müssen.
3.1 Datenbankstruktur
Die Datenbankstruktur ist folgendermaßen aufgebaut:
Es gibt die Zentrale Tabelle „Firma“, in der die grundlegenden Daten zu den Firmen, wie Name, Ort,
Kontakt, URL usw. gespeichert werden. Da spezifische Daten wie Aufsichtsräte, Vorstände etc.
mehrfach zu jeder Firma vorliegen, wurden für diese Daten 7 weitere Tabellen angelegt, in welchen
diese Daten abgelegt und über die jeweilige Firmen-ID referenziert werden:







Aufsichtsrat
Vorstand
Beschaeftigte
Umsatz
Konzernumsatz
Beteiligungen
Banken
3.2 ER-Modell
9
3.3 Datenbank-Design
3.3.1 Tabelle Firma
CREATE TABLE Firma(
fid INT NOT NULL,
name VARCHAR(80) NOT NULL,
rechtsform VARCHAR(20),
url VARCHAR(100),
handelsreg VARCHAR(80),
plz CHAR(5),
ort VARCHAR(60),
strasse VARCHAR(80),
tel VARCHAR(25),
fax VARCHAR(25),
postfach INT,
PRIMARY KEY (fid)
);
3.3.2 Tabelle Banken:
CREATE TABLE Banken (
banname VARCHAR(60) NOT NULL,
fk_fid INT NOT NULL,
PRIMARY KEY (banname, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
3.3.3 Tabelle Aufsichtrat:
CREATE TABLE Aufsichtsrat (
aufname VARCHAR(80) NOT NULL,
fk_fid INT NOT NULL,
PRIMARY KEY (aufname, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
3.3.4 Tabelle Vorstand:
CREATE TABLE Vorstand (
vorname VARCHAR(80) NOT NULL,
fk_fid INT NOT NULL,
PRIMARY KEY (vorname, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
3.3.5 Tabelle Beteiligungen:
CREATE TABLE Beteiligungen (
betname VARCHAR(80) NOT NULL,
sitz VARCHAR(80) ,
anteil FLOAT ,
fk_fid INT NOT NULL,
PRIMARY KEY (betname, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
10
3.3.6 Tabelle Umsatz:
CREATE TABLE Umsatz (
jahr int NOT NULL,
wert DOUBLE NOT NULL,
fk_fid INT NOT NULL,
PRIMARY KEY (jahr, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
3.3.7 Tabelle Konzernumsatz:
CREATE TABLE Konzernumsatz (
jahr int NOT NULL,
wert DOUBLE NOT NULL,
fk_fid INT NOT NULL,
PRIMARY KEY (jahr, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
3.3.8 Tabelle Beschaeftigte:
CREATE TABLE Beschaeftigte (
jahr INT NOT NULL,
anzahl INT NOT NULL,
fk_fid INT NOT NULL,
PRIMARY KEY (jahr, fk_fid),
FOREIGN KEY (fk_fid) REFERENCES Firma (fid)
ON UPDATE CASCADE
ON DELETE CASCADE
);
11
4. Packages
Die Softwarearchitektur von Infra$tat ist in sieben Packages aufgeteilt:
4.1 gui (Klassen für View-Komponente)
4.2 libs(benötigte Libraries)
4.3 crawler (Klassen für Crawler-Komponente)
12
4.4 db (Klassen für Model-Komponente)
4.5 db.data (Datenbank-Inhalte)
13
4.6 db.im ages(Verwendete Bilder / Icons)
4.7 action (Klassen für Control-Komponente)
14
4.8 helper (Hilfsklassen)
15
5. Klassenbeschreibungen
5.1 Package gui
Hier befinden sich die Klassen für das User Interface. Die Klassen wurde mit Hilfe des NetBeans GUI
Designer entwickelt.
5.1.1 Klasse MainGui.java
Die Klasse enthält alle Komponenten des User Interface, sowie alle Komponenten zur Erzeugung
der Graphen, die durch Prefuse erzeugt werden.
5.2 Package Crawler
5.2.1 Zugriff auf die Hoppenstedt-Datenbank
Der Zugriff auf die Hoppenstedt-Datenbank erfolgt über eine HTTP-Verbindung. Einfach gesagt
werden GET-Anfragen (Request) an den W ebserver gesendet und die Antworten (Response)
ausgewertet. Die Antworten enthalten die Informationen in HTML.
Grundlage für den Zugriff ist natürlich ein Zugang zu der Webseite. Diese kostet 2000,-€ / Jahr.
Wir nutzten für unser Projekt den, für Lehre und Forschung kostenlosen, Zugang über die
Universität Kaiserslautern. Da der Zugang über eine feste IP-Range, also keine Zugangsdaten,
erfolgte, haben wir eine Implementierung für den Zugang über HTML-Form-Tags ausgelassen.
Crawling und Parsing werden von den folgenden Klassen realisiert:




Crawler.java
Former.java
CrawlFromFile.java
Profile2File.java
Kurze Erläuterung:
Former.java beinhaltet alle Parser-Methoden. Crawler.java crawlt und parst gleichzeitig.
Wenn man die Profilseiten der Hoppenstedt-Datenbank speichern möchte, so kann man
dies mit der Profile2File.java machen. Die Seiten werden als HTML-Seiten im Ordner „data“
abgelegt. Anschließend kann man mit CrawlFromFile auf diese Dateien zugreifen und so
ebenfalls crawlen und Parsen.
Alle Methoden in diesen Klassen sind mit JavaDoc kommentiert. Enthalten sind eine kurze
Beschreibung, sowie Informationen über Eingabe- und Ausgabeformate.
16
5.2.2 Programminterner Ablauf´
HTTP-Request an
Webserver
Profilseite öffnen, mit
Former.allFromProfile
parsen und DTO
erzeugen
Server liefert
Startseite mit
SessionID im
Frameset
Links zu
Profilseiten mit
Former.getProfilLi
nks lesen
Öffnen einiger CGI-Skripte um den
Webserver davon zu überzeugen
dass man ein HTML-Client ist
(Firefox)
SessionID mit
Former.getSessio
nID auslesen
Ergebnisseite
aufrufen
Suchanfrage
stellen
Ja
Nächste 20 Profile
DTO an DBKlasse übergeben
Gibt es noch
Profilseiten ?
Nein
Ende
5.2.3 Die Klasse Former.java
Siehe JavaDoc.
5.2.4 Die Klasse Crawler.java
Die Klasse Crawler.java benutzt den Jakarta HTTP-Client um mit dem Hoppenstedt-DBWebserver zu kommunizieren.
Er gibt sich als Firefox-Browser zu erkennen um nicht geblockt zu werden.
Es werden zu Anfang die Session-ID ausgelesen und einige HTML-Seiten und CGI-Scripts
aufgerufen, die der Server beobachtet um das Crawlen zu verhindern bzw. zu erschweren.
Beispiel eines GET-Requests:
method=new GetMethod(host+"/bottom.htm");
method.addRequestHeader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1;
de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
method.addRequestHeader("Keep-Alive","300");
method.addRequestHeader("Connection","Keep-Alive");
method.addRequestHeader("Cache-Control","max-age=0");
method.addRequestHeader("Refrerer",host+"start.htm");
client.executeMethod(method);
17
5.2.5 Die Klasse Profile2File.java
Profile2File.java macht im Grunde nach das gleiche wie Crawler.java, aber schreibt den
Response in HTML-Dateien und legt diese im Ordner data ab.
Der Ordner data sollte bereits vorher angelegt sein, da im Code darauf verzichtet wurde den
Ordner, sofern er noch nicht existieren sollte, anzulegen.
Die Dateinamen werden inkrement vergeben. Angefangen bei 0.html.
Detailierte Informationen zu den einzelnen Methoden der Klassen stehen im JavaDoc.
HTTP-Request an
Webserver
Server liefert
Startseite mit
SessionID im
Frameset
Links zu
Profilseiten mit
Former.getProfilLi
nks lesen
Profilseite als HTML
speichern
Öffnen einiger CGI-Skripte um den
Webserver davon zu überzeugen
dass man ein HTML-Client ist
(Firefox)
SessionID mit
Former.getSessio
nID auslesen
Ergebnisseite
aufrufen
Suchanfrage
stellen
Ja
Nächste 20 Profile
Gibt es noch
Profilseiten ?
Nein
Ende
5.2.6 Die Klasse CrawlFromFile.java
Sofern der Ordner data bereits mit HTML-Dateien gefüllt ist, so greift diese Klasse darauf zu,
parst den Inhalt und erzeugt DTO-Objekte, die dann der DB-Klasse übergeben werden.
Die Dateinamen und -endungen sind dabei egal. Es werden alle im Ordner befindlichen Dateien
der Reihe nach abgearbeitet.
Öffnen des
Ordners
Öfnnen der HTMLDatei
Ja
Profilseite mit
Former.getProfilLinks
parsen
DTO erzeugen
Gibt es noch
Profilseiten ?
DTO an DBKlasse übergeben
Nein
Ende
18
5.3 Package db
5.3.1 DTO-Klassen
Database-Transfer-Objects; diese Klassen “verkörpern” jeweils eine Tabelle der
Datenbankstruktur, d.h. jede Klasse hat die Attribute, die auch die Tabelle hat, die sie
„verkörpert“. Dazu enthält sie noch 3 Konstruktoren:
Standard-Konstruktor (erzeugt leeres Objekt).
Konstruktor mit ResultSet als Parameter um aus einer selektierten Tabellenzeile ein Objekt zu
erzeugen).
Konstruktor mit Einzelparameter zum „manuellen“ erzeugen und initialisieren eines Objektes .
Ansonsten verfügen diese Klassen noch über die nach den Java-Bean-Konventionen üblichen
getter- und setter-Methoden.
Beispiel: FirmenProfilDTO
5.3.2 Klasse db.DBObject
Klasse, die über eine von ihr erzeugten Instanz eine Datenbankverbindung aufbaut, und diese
über die Objektmethode getConnection() zurückgibt.
Sie enthält 2 zentrale Methoden:
getConnection() -> liefert SQL-Connec tion (java.sql.Connection) zurück
getDataSource()-> liefert Datasource auf die DB, mit welcher Prefuse direkt auf der DB arbeiten
kann.
5.3.3 DB-Klassen
Zu jeder DTO-Klasse gibt es auch eine DB-Klasse. Diese DB-Klasse stellt Methoden zur
Verfügung, die die für die Anwendung wichtigen Datenbank-Aktionen auf die dazugehörende
Tabelle erledigen (z.B. finde alle, finde nach ID, finde nach Name, füge ein…)
Die Abfrage-Methoden liefern je nach Logik entweder ein DTO zurück oder eine Collection
(java.util.LinkedList) mit mehreren DTOs zurück. Die Methode zum einfügen hat ein DTO als
Parameter. Zusätzlich verfügen die DB-Klassen über Abfrage-Methoden, die ein Table-Objekt
zurückliefert, welches direkt von Prefuse verarbeitet werden kann.
Beispiel: FirmenProfilDB
19
5.4 Package action
Hier befinden sich die Klassen, die für das action-Handling zuständig sind. Jede Action-Klasse verfügt
über ein Objekt der Klasse MainGui (Haupt-User-Interface) und einen Konstruktor, dem man die zur
Laufzeit aktuelle Instanz der Klasse MainGui übergeben kann. In diesem Konstruktor wird das Main Gui Objekt somit mit der aktuellen Instanz initialisiert.
Enthaltene Klassen:
5.4.1 action.DoLineWrapListener.java
Erzeugt in der Visualisierung in den Firmen- bzw. Personennamen einen Zeilenumbruch oder
entfernt diesen wieder.
5.4.2 action.ItemControlListener.java
Action-Handling bei Mausklick auf ein Item in der Visualisierung, es werden im Infofeld
Informationen textuell zum angeklickten Item angezeigt: Beim Klick auf eine Person werden
Firmen um diese angezeigt, in welchen deren Namen auch noch auftauchen. Beim Klick auf
Firmen-Items 2. Grades wird diese den Mittelpunkt gerückt und der Visualisierungsvorgang
beginnt sozusagen von neuem.
5.4.3 SearchBodListener.java
Action-Handling für das Klicken des Suchen-Button unter dem Reiter „Aufsichtsrat“; es wird
nach den eingegebenen Parametern in der DB gesucht und die Liste unter dem Suchen -Button
wird mit den Ergebnissen gefüllt… Beim Klicken mit leeren Suchparametern werden alle
Aufsichtsräte aus der Datenbank angezeigt.
5.4.4 SearchCompListener.java
Action-Handling für das Klicken des Suchen-Button unter dem Reiter „Unternehmen“; es wird
nach den eingegebenen Parametern in der DB gesucht und die Liste unter dem Suchen -Button
wird mit den Ergebnissen gefüllt… Beim Klicken mit leeren Suchparametern werden alle Firmen
aus der Datenbank angezeigt.
5.4.5 SearchDirectorListener.java
Action-Handling für das Klicken des Suchen-Button unter dem Reiter „Vorstand“; es wird nach
den eingegebenen Parametern in der Datenbank gesucht und die Liste unter dem Suchen Button wird mit den Ergebnissen gefüllt… Beim Klicken mit leeren Suchparametern werden alle
Vorstände aus der Datenbank angezeigt.
5.4.6 SearchTownListener.java
Action-Handling für das Klicken des Suchen-Button im Infofeld unter „Weitere Firmen im Ort“ ;
es werden in der Datenbank alle Firmen gesucht, die auch im selben Ort ihren Sitz haben, wie
die Firma, von welcher gerade die Infos angezeigt werden. Di e Ergebnisliste wird wie gewohnt
mit den gefunden Firmen gefüllt.
5.4.7 SelectButtonListener.java
Action-Handling für das Klicken des „Auswahl anzeigen“-Button unter der Ergebnisliste die
ausgewählten Ergebnisse werden somit in dem Visualisierungs -Panel visuell dargestellt.
20
5.4.8 ShowStatsListener.java
Action-Handling für Klick auf Button „anzeigen“ im Infofeld unter „Statistiken:“. Es wird eine
Statistik in einem neuen Frame angezeigt, welche zu der aktuellen Firma den Umsatz- und den
Beschäftigtenzahlen-Verlauf im Vergleich in Form einer Line-Chart darstellt.
5.4.9 SResultSele ctionListener.java
Action-Handling für das anklicken eines Items der Ergebnisliste; es weden Infos im Infofeld
angezeigt.
5.5 Package Helper
In diesem Package befinden sich 3 Hilfsklassen:
5.5.1 Umsatz
Mit dieser Klasse können „Umsatz-Konstrukte“ erzeugt werden (Jahr/Wert), die das verarbeiten
der Umsätze im Crawler vereinfachen.
5.5.2 KUmsatz
Mit dieser Klasse können „Konzernumsatz-Konstrukte“ erzeugt werden (Jahr/Wert), die das
verarbeiten der Umsätze im Crawler vereinfachen.
5.5.3 Tools
In dieser Klasse befinden sich hilfreiche statische Methoden, die beim Programieren der
restlichen Klassen unterstützen:
int generateID()
generiert eine zufällige ID für einen Eintrag in die Tabelle „Firma“
boolean clearDB(boolean doBackUp)
Leert die Datenbank (etwa vor einem neuen Crawling-Vorgang) und erstellt vorher je nach Wert
von doBackUp ein Backup des alten Datenbank-Skripts.
boolean createDBBackUp()
erstellt ein Backup des alten Datenbank-Skripts.
int getMaxValue(Collection[] values)
gibt die längste Listenlänge für ein Array mit Listen zurück
int getMinValue(Collection[] values)
gibt die küzeste Listenlänge für ein Array mit Listen zurück
int getMinValue(Collection values)
gibt die küzeste Listenlänge für eine Liste mit Listen zurück
21
String removeChar(String string, char c)
Entfernt aus dem übergebenen String ein beliebiges Zeichen c
Collection mergeLists(Collection[]lists)
Fügt beliebig viele Listen zusammen zu einer, so dass jeder Listeneintrag nur einmal in der
Ergebnisliste vorkommt.
String createLineWrap(String source, int length)
Fügt in einem übergebenem String source nach length Zeichen ein Esc- Zeichen für einen
Zeilenumbruch (“\n”) ein
22
6. Ablaufdiagramm
Crawler.class
DTO-Objekt
FirmenProfilDTO.class
www.Hoppenstedt-Datenbank.de
Geparste Infos
Firmen-Profilseite
HTML-Code
FirmenprofilDB.class
Former.class
HSQL-Datenbank
Daten beschaffen
Visualisierungsanwendung
23
7. Styleguide
7.1 Farbgebung
Die Farbgebung der Anwendung wird über das PlugIn Substance lookAndFeel geregelt. Hierzu lassen
sich weitere Themen verwenden.
Folgendes Thema wurde bei infra$tat verwendet:


org.jvnet.substance.skin.SubstanceOfficeSilver2007LookAndFeel
folgende Hauptfarben kommen hierbei zur Verwendung:
d1d9e0
d
1
e8ecef
d
[
9
G
ee990000
0
b
eb87112
n
S
i
7.2 Schriftarten
e
Als Schriftarten kommt die Systemschriftart „Tahoma“ zur Verwendung.
e
i
n
7.3 Icons
Z
i
Programm-Start-Icon
t
a
t
Unternehmen
a
u
s
Aufsichtsratsmitgliedd
e
m
D
o
k
Vorstandsmitgliedu
m
e
n
Auswahllogo (Geldsack)t
o
d
e
r
d
i
e
Z
u
s
24
Screenshots
Mehrfa chauswahl von Untern ehmen
Geöffnete Sta tistik
25
8. Kontakt
8.1 Das Team “FreeFace s” besteht aus drei Entwicklern
Marc Rohe
Florian Bielsky
Michael Kabdebo
8.2 Supervisor
Prof. Hendrik Speck
Kurs: Medienkonzeption und Produktion im Wintersemester 2006/2007
Web: http://www.egs.edu/faculty/speck.html
Fachhochschule Kaiserslautern
Standort Zweibrücken
Amerikastr. 1
66482 Zweibrücken
Web: http://www.fh-kl.de
26
Herunterladen