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
Next revision Both sides next revision
jvx:firstapp_step-by-step [2018/01/30 08:11]
admin
jvx:firstapp_step-by-step [2018/01/30 08:28]
admin
Line 54: Line 54:
  
   * **File / New / Java Project**   * **File / New / Java Project**
-  * Note that the project has to be set up in the application folder firstapp\\ {{:​jvx:​newproject.png?​nolink|}}+  * Note that the project has to be set up in the application folder firstapp \\ {{:​jvx:​newproject.png?​nolink|}}
   * **Remove** the src folder from the **Source Folders** \\ **Set** the folders ''​src.client'',​ ''​src.server''​ and ''​test''​ as **Source Folder** \\ {{:​jvx:​newproject_folders.png?​nolink|}}   * **Remove** the src folder from the **Source Folders** \\ **Set** the folders ''​src.client'',​ ''​src.server''​ and ''​test''​ as **Source Folder** \\ {{:​jvx:​newproject_folders.png?​nolink|}}
   * **Add** the ''​jvx.jar''​ library, from the project directory ''​JVxFirstApp/​libs/​server''​ \\ {{:​jvx:​newproject_libs.png?​nolink|}}   * **Add** the ''​jvx.jar''​ library, from the project directory ''​JVxFirstApp/​libs/​server''​ \\ {{:​jvx:​newproject_libs.png?​nolink|}}
Line 331: Line 331:
 We now create the client class for our work screen: We now create the client class for our work screen:
  
-  * **File** / **New** / **Class** \\ {{:​jvx:​dbedit_new.png?​nolink|}}+  * **File** / **New** / **Class** ​\\ ''​src.client'',​ ''​apps.firstapp.frames.DBEditFrame''​\\ {{:​jvx:​dbedit_new.png?​nolink|}}
  
 and use the following Source Code: and use the following Source Code:
Line 378: Line 378:
   /**   /**
    * Creates a new instance of DBEditFrame for a specific application.    * Creates a new instance of DBEditFrame for a specific application.
- * <​p/>​ +   * <​p/>​ 
- * @param pApp the application +   ​* @param pApp the application 
- * @throws Throwable if the remote access fails +   ​* @throws Throwable if the remote access fails 
- */ +   ​*/ 
- ​public DBEditFrame(Application pApp) throws Throwable +  public DBEditFrame(Application pApp) throws Throwable 
- { +  
- ​super(pApp.getDesktopPane());​+    super(pApp.getDesktopPane());​
    
- application = pApp;+    ​application = pApp;
    
- initializeModel();​ +    ​initializeModel();​ 
- ​initializeUI();​ +    initializeUI();​ 
- }+  }
    
- /** +  ​/** 
- * Initializes the model. +   ​* Initializes the model. 
- * <​p/>​ +   ​* <​p/>​ 
- * @throws Throwable if the initialization throws an error +   ​* @throws Throwable if the initialization throws an error 
- */ +   ​*/ 
- ​private void initializeModel() throws Throwable +  private void initializeModel() throws Throwable 
- { +  
- //we use a new "​session"​ for the screen +    //we use a new "​session"​ for the screen 
- ​connection = ((MasterConnection)application.getConnection()). +    connection = ((MasterConnection)application.getConnection()). 
- ​createSubConnection("​apps.firstapp.frames.DBEdit"​);​ +    createSubConnection("​apps.firstapp.frames.DBEdit"​);​ 
- ​connection.open();​+    connection.open();​
  
- //data connection +    ​//data connection 
- ​dataSource.setConnection(connection);​ +    dataSource.setConnection(connection);​ 
- ​dataSource.open();​+    dataSource.open();​
    
- //table +    ​//table 
- ​rdbContacts.setDataSource(dataSource);​ +    rdbContacts.setDataSource(dataSource);​ 
- ​rdbContacts.setName("​contacts"​);​ +    rdbContacts.setName("​contacts"​);​ 
- ​rdbContacts.open();​ +    rdbContacts.open();​ 
- }+  }
    
- /** +  ​/** 
- * Initializes the UI. +   ​* Initializes the UI. 
- * <​p/>​ +   ​* <​p/>​ 
- * @throws Exception if the initialization throws an error +   ​* @throws Exception if the initialization throws an error 
- */ +   ​*/ 
- ​private void initializeUI() throws Exception +  private void initializeUI() throws Exception 
- { +  
- ​UIGroupPanel group = new UIGroupPanel();​ +    UIGroupPanel group = new UIGroupPanel();​ 
- ​group.setText("​Available Contacts"​);​+    group.setText("​Available Contacts"​);​
    
- UITable table = new UITable();​ +    ​UITable table = new UITable();​ 
- ​table.setDataBook(rdbContacts);​+    table.setDataBook(rdbContacts);​
    
- group.setLayout(new UIBorderLayout());​ +    ​group.setLayout(new UIBorderLayout());​ 
- ​group.add(table);​+    group.add(table);​
    
- //same behaviour as centered component in BorderLayout  +    ​//same behaviour as centered component in BorderLayout  
- ​setLayout(new UIBorderLayout());​ +    setLayout(new UIBorderLayout());​ 
- ​add(group); ​+    add(group); ​
  
- setTitle("​Contacts"​);​ +    ​setTitle("​Contacts"​);​ 
- ​setSize(new UIDimension(400,​ 500)); +    setSize(new UIDimension(400,​ 500)); 
- ​} ​+  
  
- //​~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +  ​//​~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
- // Overwritten methods +  // Overwritten methods 
- //​~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+  //​~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
- /** +  ​/** 
- * Closes the communication connection and disposes the frame. +   ​* Closes the communication connection and disposes the frame. 
- */ +   ​*/ 
- ​@Override +  @Override 
- ​public void dispose() +  public void dispose() 
- { +  
- try +    try 
- { +    
- ​connection.close();​ +      connection.close();​ 
- } +    
- catch (Throwable th) +    catch (Throwable th) 
- { +    
- //​nothing to be done +      //nothing to be done 
- } +    
- ​finally +    finally 
- { +    
- ​super.dispose();​ +      super.dispose();​ 
- } +    
- }+  }
  
 } // DBEditFrame } // DBEditFrame
Line 509: Line 509:
 The client implementation is now finished. Before we can use the application,​ we must create the missing server classes. We create the following classes: The client implementation is now finished. Before we can use the application,​ we must create the missing server classes. We create the following classes:
  
-  * {{:​jvx:​lco_application.png?​nolink|}}+  * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.Application''​\\ ​{{:​jvx:​lco_application.png?​nolink|}}
  
 <file java Application.java>​ <file java Application.java>​
Line 530: Line 530:
 |The class represents the lifecycle object for an application. There is exactly one instance of this class for each application,​ thereby enabling the use of session-wide objects.| |The class represents the lifecycle object for an application. There is exactly one instance of this class for each application,​ thereby enabling the use of session-wide objects.|
  
-  * {{:​jvx:​lco_session.png?​nolink|}}+  * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.Session''​ \\ {{:​jvx:​lco_session.png?​nolink|}}
  
 <file java Session.java>​ <file java Session.java>​
Line 583: Line 583:
 |getDBAccess|Opens a new connection to a HyperSQL database, if this has not already happened. \\ \\ The Exception Handling is taken over by the server.| |getDBAccess|Opens a new connection to a HyperSQL database, if this has not already happened. \\ \\ The Exception Handling is taken over by the server.|
  
-  * {{:​jvx:​lco_dbedit.png?​nolink|}}+  * **File** / **New** / **Class** \\ ''​src.server'',​ ''​apps.firstapp.frames.DBEdit''​ \\ {{:​jvx:​lco_dbedit.png?​nolink|}}
  
 <file java DBEdit.java>​ <file java DBEdit.java>​
Line 657: 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 file:​firstappdb -dbname.0 firstappdb</​file>​+  * Start the database, e.g.: \\ <file bash>​java -cp ../​libs/​server/​hsqldb.jar org.hsqldb.Server -database.0 ​ 
 +     file:​firstappdb -dbname.0 firstappdb</​file>​
  
 == The first application == == The first application ==
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information