Aloha , ich arbeite grade an einer Art Installations-Assitent , der es ermöglicht eine Grundeinrichtung meiner eigentlichen Applikation durchzuführen, nun zu folgender Frage:
Wie macht man sowas am besten / für gewöhnlich ?
Mein Ansatz ist wie folgt :
Beim starten meiner Eigentlichen Applikation sieht der Konstruktor so aus :
und die dazugehörigen Methode checkState(); welche sich um das lesen eines Wertes aus einer im Build-Path befindlichen Properties Datei kümmert :
Die selbst erstellte Utilityklasse ProperitesUtil kümmert sich in diesem Fall nur um das erstellen der in/outputStreams und das lesen einer vorab definierten "default_properties" Datei, in welcher ich nur 2 Werte halte:
Das Setup selbst hält eine Referenz auf ein SetupModel welches sich um das lesen und Schreiben der Daten kümmert,
genau da liegt jetzt meine Frage, ich erfasse über TextFelder die Daten , erstelle dann daraus Objekte und übergebe diese beim beenden des Setups über die Setter an das SetupModel welches dann über die
Methode die Werte in der Properties Datei ändern soll, die Serialisierten Objekte in den 'Rootpfad' der Applikation Schreibt, dementsprechende Ordner für die Applikation erstellt und die Eigentliche Applikation startet.
macht man das so ? oder mache ich mir das jetzt einfach nur unfassbar umständlich ?
Auch beim Ansatz mit Model für die Daten und der Eigentlichen Sicht darauf ( Setup ) bin ich mir noch unschlüssig, ich habe mich hierbei an JTable und Co orientiert, welche ja auch die Referenz auf ein model zur Datenspeicherung haben. ( wobei es denke ich wesentliche übersichtlicher ist als alles in die eigentliche Darstellung zu stopfen ) nutzt man dann hier zusätzlich noch einen Extra Controller ? :rtfm:
Da ich ja vor Erstmaligem Programmstart eine Datei benötige die enthält ob schonmal ein Setup ausgeführt worden ist dachte ich ich nutze eben den Weg über die im Built-Path befindliche Properties Datei.
ich kann ja aus properties Dateien lediglich Strings als Wert erhalten , demnach müsste ich wenn ich z.B anstatt die Userdaten zu Serialisieren diese aus der Propertie Datei laden wollte, alle informationen einzeln speichern , da fand ich den Ansatz über das Serialisierte Objekt angenehmer,
würde mich freuen wenn mir jemand mit Erfahrung in diesem Bereich ein paar Tipps geben könnte , wie man sowas für gewöhnlich handhabt
Wie macht man sowas am besten / für gewöhnlich ?
Mein Ansatz ist wie folgt :
Beim starten meiner Eigentlichen Applikation sieht der Konstruktor so aus :
Java:
public Editor() {
if (checkState() != 1) {
new Setup().showSetup();
}
else{
setUpFrame();
setUpComponents();
setProperties();
addComponents();
setVisible();
}
}
und die dazugehörigen Methode checkState(); welche sich um das lesen eines Wertes aus einer im Build-Path befindlichen Properties Datei kümmert :
Java:
private int checkState(){
properties = PropertiesUtil.readProperties(DEFAULT_PROP_PATH);
return Integer.parseInt(properties.getProperty("state"));
}
Die selbst erstellte Utilityklasse ProperitesUtil kümmert sich in diesem Fall nur um das erstellen der in/outputStreams und das lesen einer vorab definierten "default_properties" Datei, in welcher ich nur 2 Werte halte:
Code:
#Default Properties
#Fri May 02 21:07:44 CEST 2014
root=null
state=0
Das Setup selbst hält eine Referenz auf ein SetupModel welches sich um das lesen und Schreiben der Daten kümmert,
Java:
public class SetupModel {
private User user;
private int state;
private File rootDir;
private Company company;
private Properties properties;
public SetupModel() {
properties = new Properties();
}
public void setApplicationRoot(File dir){
this.rootDir = dir;
}
public void setUser(User user){
this.user = user;
}
public void setSetupState(int state){
this.state = state;
}
public void setCompany(Company company){
this.company = company;
}
public void storeData(){
properties.setProperty("root", String.valueOf(getApplicationRoot()));
properties.setProperty("state", String.valueOf(getSetupState()));
/*Hier sollen später auch die Objekte 'user' + 'company' serialisiert
*in den rootpfad geschrieben werden !
*welche beim Applikationsstart dann ausgelesen werden sollen.
*/
PropertiesUtil.writeProperties(properties, DEFAULT_PROP_PATH, "Default Properties");
}
public User getUser() {return this.user;}
public File getApplicationRoot() {return this.rootDir;}
public Properties getProperties() {return this.properties;}
public Company getCompany() {return this.company;}
public int getSetupState() {return this.state;}
}
genau da liegt jetzt meine Frage, ich erfasse über TextFelder die Daten , erstelle dann daraus Objekte und übergebe diese beim beenden des Setups über die Setter an das SetupModel welches dann über die
Code:
storeData();
macht man das so ? oder mache ich mir das jetzt einfach nur unfassbar umständlich ?
Auch beim Ansatz mit Model für die Daten und der Eigentlichen Sicht darauf ( Setup ) bin ich mir noch unschlüssig, ich habe mich hierbei an JTable und Co orientiert, welche ja auch die Referenz auf ein model zur Datenspeicherung haben. ( wobei es denke ich wesentliche übersichtlicher ist als alles in die eigentliche Darstellung zu stopfen ) nutzt man dann hier zusätzlich noch einen Extra Controller ? :rtfm:
Da ich ja vor Erstmaligem Programmstart eine Datei benötige die enthält ob schonmal ein Setup ausgeführt worden ist dachte ich ich nutze eben den Weg über die im Built-Path befindliche Properties Datei.
ich kann ja aus properties Dateien lediglich Strings als Wert erhalten , demnach müsste ich wenn ich z.B anstatt die Userdaten zu Serialisieren diese aus der Propertie Datei laden wollte, alle informationen einzeln speichern , da fand ich den Ansatz über das Serialisierte Objekt angenehmer,
würde mich freuen wenn mir jemand mit Erfahrung in diesem Bereich ein paar Tipps geben könnte , wie man sowas für gewöhnlich handhabt