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
jvx:features [2018/11/29 11:51]
admin
jvx:features [2020/06/08 13:03] (current)
cduncan [More Features]
Line 1: Line 1:
 +~~Title: Features~~
 ~~NOTRANS~~ ~~NOTRANS~~
  
-== UI platform independent ​==+===== UI Platform Independent =====
  
-Write UI sourcce ​code for your screens once and start the application as DesktopWeb or Mobile ​solution.+Write UI source ​code for your screens once and start the application as a web, mobile, or desktop ​solution.
  
 <WRAP group> <WRAP group>
Line 12: Line 13:
 </​WRAP>​ </​WRAP>​
 <WRAP column third> <WRAP column third>
-<​carousel infinite=true&​dots=true&​speed=500&​fade=true>​ +<​carousel infinite=true&​dots=true&​speed=500&​fade=true&​adaptiveHeight=true> 
-  * {{:​jvx:​gal_charts.png|Charts}} +  * {{:​jvx:​gal_android_vaadin_status.png?​nolink|Vaadin}} 
-  * {{:​jvx:​gal_android_vaadin_projekte.png|Vaadin}} +  * {{:​jvx:​gal_charts.png?nolink|Charts}} 
-  * {{:jvx:gal_android_vaadin_status.png|Vaadin}} +  * {{:​jvx:​gal_android_vaadin_projekte.png?nolink|Vaadin}} 
-  * {{:jvx:gal_charts_swing.png|Swing}} +  * {{:jvx:gal_charts_swing.png?​nolink|Swing}} 
-  * {{:​jvx:​gal_charts_vaadin.png|Vaadin}}+  * {{:​jvx:​gal_charts.png?​nolink|Charts}} 
 +  * {{:​jvx:​gal_chrome_vaadin_projekte.png?​nolink|Vaadin}} 
 +  * {{:jvx:gal_erp_customers.png?nolink|ERP}} 
 +  * {{:​jvx:​gal_erp_statistic_full.png?​nolink|Statistics}} 
 +  * {{:​jvx:​gal_charts_vaadin.png?​nolink|Charts}} 
 +  * {{:​jvx:​gal_erp_statistic.png?​nolink|ERP}} 
 +  * {{:​jvx:​gal_exchange_contacts.png?​nolink|Exchange}} 
 +  * {{:​jvx:​gal_iOS_app_menu.png?​nolink|iOS}} 
 +  * {{:​jvx:​gal_iOS_app_projects.png?​nolink|iOS}} 
 +  * {{:​jvx:​gal_iOS_app_status.png?​nolink|iOS}} 
 +  * {{:​jvx:​gal_iPad_vaadin_projects.png?​nolink|Vaadin}} 
 +  * {{:​jvx:​gal_iPad_vaadin_status.png?​nolink|Vaadin}} 
 +  * {{:​jvx:​gal_jvxswing_browser.png?​nolink|Browser}} 
 +  * {{:​jvx:​gal_master_detail_detail.png?​nolink|Master-Detail}} 
 +  * {{:​jvx:​gal_tree_swing.png?​nolink|Tree}} 
 +  * {{:​jvx:​gal_tree_vaadin.png?​nolink|Tree}}
 </​carousel>​ </​carousel>​
 </​WRAP>​ </​WRAP>​
 </​WRAP>​ </​WRAP>​
 +\\ 
 +\\ 
 +\\ 
  
-== Quick Easy development ​==+===== Quick and Easy Development =====
  
-== How does it work? ==+<WRAP group> 
 +<WRAP column column>​ 
 +Client Code: 
 +<file java> 
 +private void initializeUI() throws Exception ​ { 
 +  UITable table new UITable();​ 
 +  table.setDataBook(rdbContacts);//​bind to UI model 
 +  add(table, UIBorderLayout.CENTER);​ 
 +  setTitle("​Contacts"​);​ 
 +  setSize(new UIDimension(600,​ 500)); 
 +
 +private void initializeModel() throws Throwable { 
 +  RemoteDataBook rdbContacts ​new RemoteDataBook();​ 
 +  rdbContacts.setDataSource(getDatasource());​ // bind to DAO „contacts“ 
 +  rdbContacts.setName("​contacts"​);​  
 +  rdbContacts.open();​ 
 +
 +</​file>​ 
 + 
 +Server Code: 
 + 
 +<file java> 
 +public IStorage getContacts() throws Exception { 
 +  DBStorage dbsContacts = (DBStorage)get("​contacts"​);​ 
 +  if (dbsContacts == null) { 
 +    dbsContacts = new DBStorage();​ // Automatic DAO 
 +    dbsContacts.setDBAccess(getDBAccess());​  
 +    dbsContacts.setWritebackTable("​CONTACTS"​);​ 
 +    dbsContacts.open();​ 
 +    put("​contacts",​ dbsContacts);​ 
 +  } 
 +  return dbsContacts;​  
 +
 +</​file>​ 
 +</​WRAP>​ 
 +<WRAP column third> 
 +\\  
 +\\  
 +**You don't need more code!** 
 + 
 +You write just a few lines of code for an application that manages your contacts. 
 + 
 +  * **initializeUI()** \\ Initialize an UITable, bind it to the model, and add it to the screen. 
 +  * **initializeModel()** \\ Instantiate model for contacts, bind it to the server, and the DAO "​contacts"​. 
 +  * **getContacts()** \\ Instantiate DAO "​contacts",​ initialize it with database and table "​CONTACTS"​. 
 +</​WRAP>​ 
 +</​WRAP>​ 
 + 
 +===== How Does It Work? ===== 
 + 
 +<WRAP group> 
 +<WRAP column column>​ 
 +{{:​jvx:​jvx_features.png?​nolink |Screenshots}} 
 +</​WRAP>​ 
 +<WRAP column third> 
 +//JVx' DAO class DBStorage analyzes the data model of table "​CONTACTS"​. This detects all data types for all columns and all foreign keys to master data tables. This metadata information is sent to the client model. 
 +\\  
 +\\  
 +The dynamic client model, for all Daten data-bound GUI controls, uses this metadata. 
 +Because of this mechanism, all input fields get a specific data type and size directly from the database. Dropdown lists are created because of foreign key references to master data tables, etc. 
 +\\  
 +\\  
 + As a result, no further source code is necessary.\\ **Covention Over Configuration** 
 +\\  
 +Any deviation from the standard behavior can be coded accordingly. 
 +//</​WRAP>​ 
 +</​WRAP>​ 
 + 
 +===== All Features ===== 
 + 
 +==== General ==== 
 + 
 +  * **OpenSource Framework**\\ Apache 2.0 license 
 +  * **Full Stack Framework** 
 +    * Full application stack, starts with GUI and ends with Persistence 
 +    * Simple APIs, short training period 
 +    * Well documented 
 +    * Easy to extend 
 +  * **Database Independent** 
 +    * Oracle, DB2, MS SQL, MySql/​MariaDB,​ PostgreSql, HSQLDB, Hana, Tibero, etc. 
 +  * **Applicationserver Independent** 
 +    * Any servlet container, e.g., Tomcat, Wildfly, etc. 
 +  * **Multi-Tier Architecture** 
 + 
 + 
 +==== GUI Features ==== 
 + 
 +  * **GUI Technology Independent** 
 +      * Web (vaadin) 
 +      * Mobile (native iOS, Android) 
 +      * Desktop (Swing, JavaFX) 
 +      * Headless (Testing) 
 +  * **Standardized Dynamic Model for All Data-Bound GUI Controls** 
 +      * Uses persistence metadata as base datatype, data size, datatype dependent editors (e.g., "​Date"​ -> Date editor, "​Master data" -> Dropdown list (= Combobox) 
 +      * Editor (Number, Date, Dropdown), Table, Tree, Chart 
 + 
 + 
 +==== GUI/Server Features ==== 
 + 
 +  * **Flexible Authentication Management With Different  
 +Security Managers**\\ Database table, NTLM, LDAP, XML 
 +  * **CRUD Triggers on Client & Application Server**\\ Before/​After Insert, Update, Delete, Select, … 
 +  * **Event & Listener Concept** 
 +  * **Multilingual Support** 
 +  * **Lazy Loading** 
 +    * Only visible GUI information are loaded 
 +    * No paging, lazy loading is integrated in GUI controls -> scrollbar 
 +    * Process millions of records 
 +  * **Flexible Application Frame** 
 +    * Integrated in the framework 
 +    * Contains Toolbar, Menu, Login/out, Change password, Help, About, Save, Reload, … 
 +    * Can be easily extended and adapted to the requirements of the application 
 +    * CSS styling, Web appliaction frame 
 +    * Fully configurable application frame through interfaces
  
-== All Features ==+==== More Features ​====
  
 +  * **Online Help System for Web & Desktop applications**\\ Table of Contents, Search, HTML
 +  * **User and Role Management**\\ Database Tables, If (Rolle=Admin) Then Show Data
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information