Jvx Enterprise Application Framework
Total Page:16
File Type:pdf, Size:1020Kb
JVx stellt sich vor. Zurück zur Effizienz! Code once, run anywhere. Web Desktop Mobile HTML5 + Ajax Swing Native iOS & Android … Code once, run anywhere. -> Why? 1x Framework, 1x Team for all UI Platforms Easy UI Platform Change. E.g. Swing -> Web Own customized UI Plattform More flexible More efficient, smaller Teams, less Know How Faster Application Development Powerful Business Features Easy to use, to extend and works well with other frameworks LIVE Less Files, just simple! GUI Persistence 2x xml // GUI Low Code! UILabel label = new UILabel(“Hello World“); add(label); // Data Binding UIEditor ed = new UIEditor(); ed.setDataRow(model ); ed.setColumnName(“NAME"); ProjectsWorkScreen.java add(ed); RemoteDataBook model = new RemoteDataBook(); model.setName(“projects“); model.setDataSource(getDataSource()); model.open(); // DAO & Persistence DBStorage dao = new DBStorage(); dao.setWritebackTable("projects"); dao.setDBAccess(getDBAccess()); Projects.java dao.open(); put("projects", dao); Conventions over Configuration! Conventions over Configuration! Foreign Key -> Typ erzeugt automatisch eine Auswahlliste Conventions over Configuration! select m.ID, m.NAME, m.BESCHREIBUNG, m.VON_DATUM, m.BIS_DATUM, m.TYP_ID, l1.TYP TYP_TYP from projekte m LEFT OUTER JOIN PROJEKTEDOAG.TYP l1 ON m.TYP_ID = l1.ID // DAO & Persistence Projects.java DBStorage dao = new DBStorage(); dao.setWritebackTable("projects"); dao.setDBAccess(getDBAccess()); dao.open(); put("projects", dao); Framework Compare – Time for 1xScreen blue = 1st run, green = 2nd run Roland Hörmann [email protected] blog.sibvisions.com @sibvisions www.sibvisions.com Code once, run anywhere. -> How does it work? Web Desktop Mobile HTML5 + Ajax native iOS & Android Interface / UI Component - IButton, ILabel, IPanel, IEditor, ITable, … public interface IButton extends IComponent { public String getText(); public void setText(String text); Implementations public void setImage(IImage image); public IImage getImage(); } VaadinButton public class SwingButton extends SwingComponent<JButton> implements IButton { public SwingButton() { JavaFXButton super(new JButton()); } public String getText() { … return resource.getText(); } public void setText(String pText) { resource.setText(pText); }} UI independent Wrapper Class UIButton, UILabel, UIPanel, UIEditor, UITable, … public class HelloWorldApplication extends Application { public HelloWorldApplication(UILauncher pLauncher) { super(pLauncher); UILabel label = new UILabel ("Hello World!"); add(label); } } Instantiate UI Implementation over Factory Pattern Web Desktop Mobile HTML5 + Ajax native iOS & Android.