Documentation

Trace:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
de:jvx:firstapp_step-by-step [2018/01/30 11:23]
admin
de:jvx:firstapp_step-by-step [2018/01/30 11:50] (current)
admin
Line 69: Line 69:
 Die Applikation benötigt Serverseitig eine Konfigurationsdatei für Einstellungen die nur die Applikation betreffen. Für die Konfiguration des Servers wird zusätzlich eine Konfigurationsdatei benötigt. Zuerst erstellen wir die Datei für die Applikation:​ Die Applikation benötigt Serverseitig eine Konfigurationsdatei für Einstellungen die nur die Applikation betreffen. Für die Konfiguration des Servers wird zusätzlich eine Konfigurationsdatei benötigt. Zuerst erstellen wir die Datei für die Applikation:​
  
-  * **File** / **New** / **File** - config.xml \\ ((Erstellung direkt im Applikationsverzeichnis **JVxFirstApp**) \\ {{:​jvx:​app_config.png?​nolink|}}+  * **File** / **New** / **File** - config.xml \\ (Erstellung direkt im Applikationsverzeichnis **JVxFirstApp**) \\ {{:​jvx:​app_config.png?​nolink|}}
  
 Die Datei wird wie folgt befüllt: Die Datei wird wie folgt befüllt:
Line 468: Line 468:
 |initializeModel|Instanziert die Objekte für den Zugriff auf den Server bzw. die Daten.| |initializeModel|Instanziert die Objekte für den Zugriff auf den Server bzw. die Daten.|
 |InitializeUI|Layouting des WorkScreen.| |InitializeUI|Layouting des WorkScreen.|
-|dispose|Beendet die Verbindung zum Server für den WorkScreen und schließt den Frame. +|dispose|Beendet die Verbindung zum Server für den WorkScreen und schließt den Frame. Die Verbindung müsste nicht explizit geschlossen werden, da dies beim Verwerfen durch den GarbageCollector vollautomatisch passiert. In unserer ersten Applikation ist das aber auch kein Nachteil.|
-Die Verbindung müsste nicht explizit geschlossen werden, da dies beim Verwerfen durch den GarbageCollector vollautomatisch passiert. In unserer ersten Applikation ist das aber auch kein Nachteil.|+
 |createSubConnection|Wir erstellen eine eigene Verbindung zum Server. Das hat den Vorteil, dass am Server ein eigenes Lifecycle Objekt verwendet wird. Dieses Objekt hält alle Objekte, die vom WorkScreen benötigt werden. Nachdem der WorkScreen geschlossen wird, wird auch der benutzte Speicher wieder freigeben. Weiters kann jede Verbindung spezielle Parameter und Timeouts haben. Das gewünschte Lifecycle Objekt wird mit der Klassenbezeichnung definitert: apps.firstapp.frames.DBEdit. \\ \\ Die Klasse erstellen wir im Anschluß.| |createSubConnection|Wir erstellen eine eigene Verbindung zum Server. Das hat den Vorteil, dass am Server ein eigenes Lifecycle Objekt verwendet wird. Dieses Objekt hält alle Objekte, die vom WorkScreen benötigt werden. Nachdem der WorkScreen geschlossen wird, wird auch der benutzte Speicher wieder freigeben. Weiters kann jede Verbindung spezielle Parameter und Timeouts haben. Das gewünschte Lifecycle Objekt wird mit der Klassenbezeichnung definitert: apps.firstapp.frames.DBEdit. \\ \\ Die Klasse erstellen wir im Anschluß.|
  
-^Member^Description+^Member^Beschreibung
-|connection|The connection to the serverespecially for the WorkScreen. ​A special communication protocol is used in the background. In our case, it is represented by the class ''​DirectServerConnection''​.| +|connection|Die Verbindung zum Serverspeziell für den WorkScreen. ​Im Hintergrund wird ein spezielles Kommunikationsprotokoll verwendet. In unserem Fall spiegelt dieses die Klasse ​''​DirectServerConnection'' ​wieder.| 
-|dataSource|The DataSource ​is independent of the communication protocol and takes care of the data transfer between client and serverThe connection ​defines under which name the server-side object is to be found in the lifecycle object.| +|dataSource|Die DataSource ​ist unabhängig vom Kommunikationsprotokoll und kümmert sich um die Übertragung der Daten zwischen Client und ServerFür den Transfer wird die ''​connection''​ verwendet.| 
-|rdbContacts|The model and the controller for data display. \\ The name ''​contacts'' ​defines under which name the server-side business object can be found.| +|rdbContacts|Das Model und der Controller für die Datenanzeige. \\ Der Name ''​contacts'' ​legt fest unter welchen Namen das serverseitige Objekt im Lifecycle Objekt zu finden ist.| 
-|table|The view for data display.|+|table|Die View für die Datenanzeige.|
  
-The WorkScreen ​is now ready and can be integrated ​in the applicationWe now implement the missing call:+Der WorkScreen ​ist nun fertig und kann in die Applikation integriert werdenWir implementieren nun den fehlenden Aufruf:
  
 <file java FirstApplication.java>​ <file java FirstApplication.java>​
Line 504: Line 503:
 </​file>​ </​file>​
  
-^Method^Description+^Methode^Beschreibung
-|doOpenDBEdit|The method can easily throw a  ​Throwable. ​All application errors are caught by the application and shown in an information dialogue.| +|doOpenDBEdit|Die Methode kann ohne Probleme ''​Throwable''​ werfenSämtliche Applikationsfehler werden vom Applikationsrahmen abgefangen und in einem Informationsdialog angezeigt.| 
-|configureFrame|This method is provided by the super class and ensures that all frames have a similar lookThis also includes the menu icon.|+|configureFrame|Diese Methode wird von der Superklasse bereitgestellt und sorgt dafür, dass alle Frames einheitlich aussehenDazu zählt unter anderem das Menü Icon.|
  
-The client implementation is now finishedBefore we can use the application,​ we must create the missing server classesWe create the following classes:+Die Client Implementierung ist nun abgeschlossenBevor wir die Applikation verwenden können müssen die fehlenden Server Klassen erstellt werdenWir erstellen folgende Klassen:
  
   * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.Application''​\\ {{:​jvx:​lco_application.png?​nolink|}}   * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.Application''​\\ {{:​jvx:​lco_application.png?​nolink|}}
Line 528: Line 527:
 </​file>​ </​file>​
  
-^Description+^Beschreibung
-|The class represents the lifecycle object for an applicationThere is exactly one instance of this class for each application,​ thereby enabling the use of session-wide objects.|+|Die Klasse spiegelt das Lifecycle Objekt für eine Applikation wiederPro Applikation existiert genau eine Instanz dieser Klasse. Es können somit Session übergreifende Objekte verwendet werden.|
  
   * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.Session''​ \\ {{:​jvx:​lco_session.png?​nolink|}}   * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.Session''​ \\ {{:​jvx:​lco_session.png?​nolink|}}
Line 578: Line 577:
 </​file>​ </​file>​
  
-^Description+^Beschreibung
-|The class represents a lifecycle object for a sessionIn our case, a session begins with the login to the application and ends with the logoutThere is exactly one instance of this object for each sessionThis allows objects to be used for the full duration of the login. \\ \\ Thanks to the inheritance of ''​apps.firstapp.Application'' ​it is very easy to use even application objects.|+|Die Klasse spiegelt das Lifecycle Objekt für eine Session wiederEine Session beginnt in unserem Fall mit der Anmeldung an die Applikation und endet mit der AbmeldungPro Session existiert genau eine Instanz dieses ObjektesEs können somit Objekte für die Dauer der Anmeldung verwendet werden. \\ \\ Durch die Ableitung von ''​apps.firstapp.Application'' ​ist es auf einfachste Art und Weise möglich, auch die Applikationsobjekte zu verwenden.|
  
-^Method^Description+^Methode^Beschreibung
-|getDBAccess|Opens a new connection to a HyperSQL databaseif this has not already happened. \\ \\ The Exception Handling ​is taken over by the server.|+|getDBAccess|Öffnet eine neue Verbindung zu einer HSQL Datenbankfalls dies nicht bereits geschehen ist. \\ \\ Das Exception Handling ​wird vom Server übernommen.|
  
   * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.frames.DBEdit''​ \\ {{:​jvx:​lco_dbedit.png?​nolink|}}   * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.frames.DBEdit''​ \\ {{:​jvx:​lco_dbedit.png?​nolink|}}
Line 633: Line 632:
 </​file>​ </​file>​
  
-^Description+^Beschreibung
-|The class represents the lifecycle object for the DBEditFrame ​work screenThe objects can only be accessed via the SubConnection ​of the work screen. \\ \\ Thanks to the inheritance of ''​apps.firstapp.Session'' ​it is very easy to access all Session ​and Application ​objects.|+|Die Klasse spiegelt das Lifecycle Objekt für den ''​DBEditFrame''​ WorkScreen wiederAuf die Objekte kann ausschließlich über die SubConnection ​des WorkScreens zugegriffen werden. \\ \\ Durch die Ableitung von ''​apps.firstapp.Session'' ​kann auf einfachste Art und Weise auf sämtliche Objekte der ''​Session''​ und der ''​Application''​ zugegriffen werden.|
  
-^Method^Description+^Methode^Beschreibung
-|getContacts|Enables the access to the database table ''​CONTACTS''​. ​The method name must match the object name of the RemoteDataBook:​ ''​contacts => getContacts''​. \\ \\ The Exception Handling ​is taken over by the Server.|+|getContacts|Ermöglicht den Zugriff auf die Datenbanktabelle ​''​CONTACTS''​. ​Der Methodenname muss dem Objektnamen des ''​RemoteDataBook''​ entsprechen: ''​contacts => getContacts''​. ​ \\ \\ Das Exception Handling ​wird vom Server ​übernommen.|
  
-The application is now fully implemented and ready to runSo as to be able to work with the application,​ we need a database with the ''​CONTACTS'' ​table which we want to accessThe configuration of HyperSQL DB is not described ​in detail in this documentas the examples on the project page are detailed and suffice. In the next chapter, you will find a short summary of the necessary steps.+Die Applikation ist jetzt vollständig implementiert und lauffähigDamit wir nun mit der Applikation arbeiten können benötigen wir die Datenbank inklusive Tabelle ​''​CONTACTS'' ​auf die wir zugreifen wollenDie Konfiguration von HSQLDB wird in diesem Dokument nicht detailiert beschriebenda die Beispiele auf der Projektseite detailiert und ausreichend sind. In nachfolgendem Kapitel finden Sie eine kurze Zusammenfassung der notwendigen Schritte.
  
-== Create database ​==+== Datenbank erstellen ​==
  
-The following steps should take place to create and start a HyperSQL DB.+Folgende Schritte sollten durchgeführt werden um eine HSQLDB zu erstellen und zu starten.
  
-  * Copy the HyperSQL ​JDBC-Driver ​(hsqldb.jar) ​to the directory ​\\ ''​../​JVxFirstApp/​libs/​server/'​ +  * Kopieren Sie den HSQLDB ​JDBC-Teiber ​(hsqldb.jar) ​in das Verzeichnis ​\\ ''​../​JVxFirstApp/​libs/​server/'​ 
-  * Add the JDBC-Driver to the CLASSPATH ​of the JVxFirstApp ​Project +  * Fügen Sie den JDBC-Treiber dem CLASSPATH ​des JVxFirstApp ​Projektes hinzu 
-  * Create a database with the alias firstappdb ​and the following table: \\ <file sql>​create table CONTACTS+  * Erstellen Sie eine Datenbank mit dem Alias ''​firstappdb''​ und folgender Tabelle: \\ <file sql>​create table CONTACTS
 ( (
   ID            INTEGER IDENTITY,   ID            INTEGER IDENTITY,
Line 658: Line 657:
   TOWN          VARCHAR(200)   TOWN          VARCHAR(200)
 )</​file>​ )</​file>​
-  * Start the database, e.g.: \\ <file bash>​java -cp ../​libs/​server/​hsqldb.jar org.hsqldb.Server -database.0 ​+  * SStarten Sie die Datenbank z.B.: \\ <file bash>​java -cp ../​libs/​server/​hsqldb.jar org.hsqldb.Server -database.0 ​
      ​file:​firstappdb -dbname.0 firstappdb</​file>​      ​file:​firstappdb -dbname.0 firstappdb</​file>​
  
-== The first application ​==+== Die erste Applikation ​==
  
-Once the database has been started, the application can also be startedThe final application should look as follows:+Nachdem die Datenbank gestartet wurde kann die Applikation ebenfalls gestartet werdenDie fertige Applikation sollte nun wie folgt aussehen:
  
 {{:​jvx:​app_finished.png?​nolink|}} {{:​jvx:​app_finished.png?​nolink|}}
  
-The Source Code and the Eclipse ​project can be found in the [[https://​www.sibvisions.com/​en/​jvxmdownload|Download]] ​section.+Den Source Code und das Eclipse ​Projekt finden Sie auch im [[https://​www.sibvisions.com/​de/​jvxmdownload|Download]] ​Bereich.
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information