Weil unser Team beim Software-Design besonderen Wert auf Erweiterbarkeit,
Skalierbarkeit und eine gute Voraussetzung zur Weiterentwicklung nachfolgender
Bachelorprojekte gelegt hat, ist der Client so aufgebaut und programmiert
worden, dass es keine Schwierigkeit darstellt, neue Module (Formulare) zu
integrieren. Um ein neues Formular im Client einzubinden, müssen nur zwei
Java-Dateien modifiziert werden:
- Client.java im Client-Package:
.
.
.
public void showNextForm (int fo)
{
this.getContentPane().removeAll();
switch (fo)
{ case FormularAnforderung.Formular.Anfrage:
this.getContentPane().add(new Anfrage(this));
break;
case FormularAnforderung.Formular.BearbeitungsHinweis:
this.getContentPane().add(new BearbeitungsHinweis(this));
break;
case FormularAnforderung.Formular.Lieferadresse:
this.getContentPane().add(new Adresse(this));
break;
case FormularAnforderung.Formular.Lieferant:
this.getContentPane().add(new Lieferant(this));
break;
case FormularAnforderung.Formular.MaterialAnforderung:
this.getContentPane().add(new MaterialAnforderung(this));
break;
case FormularAnforderung.Formular.Preis:
this.getContentPane().add(new Preis(this));
break;
case FormularAnforderung.Formular.Angebotsliste:
this.getContentPane().add(new Angebotsliste(this));
break;
case FormularAnforderung.Formular.Arbeitsliste:
this.getContentPane().add(new Arbeitsliste(this));
break;
case FormularAnforderung.Formular.NeuerWorkflow:
this.getContentPane().add(new NeuerWorkflow(this));
break;
case FormularAnforderung.Formular.WorkflowAnzeigen:
this.getContentPane().add(new WorkflowAnzeigen(this));
break;
case FormularAnforderung.Formular.WorkflowDocument:
this.getContentPane().add(new WorkflowDocument(this));
break;
case FormularAnforderung.Formular.LoginPanel:
this.getContentPane().add(new LoginPanel(this));
break;
case FormularAnforderung.Formular.LoggedSystem:
this.getContentPane().add(new LoggedSystem(this));
break;
case FormularAnforderung.Formular.Start:
this.getContentPane().add(new StartScreen());
break;
// add new Form here!
}
this.setVisible(true);
}
.
.
.
- FormularAnforderung.java im Package Exchange:
.
.
.
public static class Formular implements Serializable
{
public static final int ERROR = 0;
public static final int Anfrage = 1;
public static final int BearbeitungsHinweis = 2;
public static final int KontoHIS = 3;
public static final int KontoMBS = 4;
public static final int Lieferadresse = 5;
public static final int Lieferant = 6;
public static final int MaterialAnforderung = 7;
public static final int Preis = 8;
public static final int Angebot = 9;
public static final int Adresse = 10;
public static final int Start = 11;
public static final int Angebotsliste = 12;
public static final int NeuerWorkflow = 13;
public static final int WorkflowAnzeigen = 14;
public static final int Arbeitsliste = 15;
public static final int WorkflowDocument = 16;
public static final int LoginPanel = 17;
public static final int LoggedSystem = 18;
public static final int EMail = 19;
//add your new Form ID here
/** Erster Wert */
private static final int min = 1;
/** Letzter Wert */
private static final int max = 19;
/** Letzter Wert muss auf die maximale Anzahl
der Formulare gesetzt werden */
.
.
.
Außerdem muss eine neue Datenübertragungsklasse geschrieben werden, die dann
ihren Platz im Package Server.data findet. Diese Klasse realisiert dann den
Datenaustausch zwischen Client und App-Server, oder es ist auch möglich, sich die Value-Klassen mit XDoclet erzeugen zu lassen.
Wir hoffen, dass es uns gelungen ist zu dokumentieren, wie modular das Software-Konzept des gesamten Projekts und speziell des Clients ist.