web application generator
Create a fully working web application from your MySQL, Oracle or MS SQL database in just minutes. learn more
Create a fully working web application from your MySQL, Oracle or MS SQL database in just minutes. learn more
Validate and test your database design (the most important stage in development) and try out new ideas. learn more
A single developer can accomplish the job of an entire team in a fraction of the time. learn more
We will provide email support, video tutorials and updates for FREE, now and in the future. learn more
We are experts in JEE web application development.
Eliminates the need to learn multiple programming languages and technologies.
read more
Automatically generates minimal XML to add fully functioning CRUD
(Create, Retrieve, Update & Delete) pages to your web application.
Simply modify this XML to enhance your pages.
Menus can be nested to any level.
Related data can be displayed and edited at any level on the same page.
Mix grids and freeforms on the same page in any layout.
Incorporate 3rd party JavaScript controls.
Split you data across multiple tabs.
Based on tried and tested Java EE, HTML5 and JavaScript technologies.
Code your business logic in generated Java classes.
Regenerates JSP files to reflect your design changes.
Works with...
Edit your complete application using basic XML.
Tested to destruction on Apache Tomcat 7 and 8.
Also tested on...
Change styling to match your corporate identity.
Incorporate 3rd party JavaScript controls.
<entry-point header ="enfacadeHeader" breadcrumbs="enfacadeBreadcrumbs" messages ="enfacadeMessages" footer ="enfacadeFooter" toolbar ="enfacadeSaveToolbar"> <body> <data-freeform name ="departmentCriteria" header="enfacadeDataFreeformHeader"> <row> <text name="depId" type="criteria" chars="20" max-chars="100"/> <clear-criteria name="clearCriteria"/> <retrieve-shortcut name="retrieveShortcut"/> </row> </data-freeform> <data-grid name ="department" header="enfacadeDataGridHeader" footer="enfacadeDataGridFooter"> <data-row> <row-indicator name="rowIndicator"/> <text name="depId"/> <text name="name"/> <text name="comId"/> <text name="budHrs"/> <text name="budRate"/> <text name="fcastHrs"/> <text name="fcastRate"/> </data-row> </data-grid> </body> </entry-point>
<menu> <menu-body> <nested-component name="employeeSubMenu" label-text="Employee"/> <nested-component name="maintenanceSubMenu" label-text="Maintenance"/> <nested-component name="reportingSubMenu" label-text="Reporting"/> </menu-body> </menu> maintenanceSubMenu... <sub-menu> <sub-menu-body> <sub-menu-option name="company" forward-page="company"/> <sub-menu-option name="department" forward-page="department"/> <sub-menu-option name="project" forward-page="project"/> <nested-component name="othersSubMenu" label-text="Others"/> </sub-menu-body> </sub-menu> othersSubMenu... <sub-menu> <sub-menu-body> <sub-menu-option name="office" forward-page="office"/> <sub-menu-option name="region" forward-page="region"/> <sub-menu-option name="country" forward-page="country"/> <nested-component name="graphsSubMenu" label-text="Graphs"/> </sub-menu-body> </sub-menu>
<entry-point header ="enfacadeHeader" breadcrumbs="enfacadeBreadcrumbs" messages ="enfacadeMessages" footer ="enfacadeFooter" toolbar ="enfacadeSaveToolbar"> <body> <row> <data-grid name ="company" header="enfacadeDataGridHeader" footer="enfacadeDataGridFooter"> <data-row> <row-indicator name="rowIndicator"/> <text name="companyId"/> <text name="name"/> </data-row> </data-grid> <data-grid name ="department" header ="departmentHeader" header-component-layout="enfacadeDataGridHeader" footer ="departmentFooter" footer-component-layout="enfacadeDataGridFooter"> <data-row> <row-indicator name="rowIndicator"/> <text name="depId"/> <text name="name"/> <text name="budHrs"/> <text name="budRate"/> <text name="fcastHrs"/> <text name="fcastRate"/> </data-row> </data-grid> </row> <row> <cell colspan="2"> <data-grid name ="employee" header ="employeeHeader" header-component-layout="enfacadeDataGridHeader" footer ="employeeFooter" footer-component-layout="enfacadeDataGridFooter"> <data-row> <row-indicator name="rowIndicator"/> <text name="empId"/> <text name="name"/> <text name="address"/> <text name="title"/> </data-row> </data-grid> </cell> </row> </body> </entry-point>
<entry-point header ="enfacadeHeader" breadcrumbs="enfacadeBreadcrumbs" messages ="enfacadeMessages" footer ="enfacadeFooter" toolbar ="enfacadeSaveToolbar"> <body> <row> <data-grid name ="company" header="enfacadeDataGridHeader" footer="enfacadeDataGridFooter"> <data-row> <row-indicator name="rowIndicator"/> <text name="companyId" read-only="true"/> <text name="name" read-only="true"/> </data-row> </data-grid> <data-freeform name ="companyDetails" header="enfacadeDataFreeformHeader" footer="enfacadeDataFreeformFooter"> <data-row> <row> <text name="companyId"/> <text name="name"/> </row> <row> <text name="area"/> <text name="offshore"/> </row> <row> <text name="budCost"/> <text name="budMarkUp"/> </row> <row> <text name="budRev"/> </row> <row> <text name="budDate"/> <text name="budTime"/> </row> <row> <text name="fcastCost"/> <text name="fcastMarkup"/> </row> <row> <text name="fcastRev"/> </row> <row> <text name="fcastDate"/> <text name="fcastTime"/> </row> <row/> <row/> </data-row> </data-freeform> </row> </body> </entry-point>
// draw department charts var data = { datasets : [ { fillColor : "rgba(0,0,255,0.5)", strokeColor : "rgba(220,220,220,1)" }, { fillColor : "rgba(255,0,0,0.8)", strokeColor : "rgba(151,187,205,1)" } ], optionset : [ { set : "setTitle", value : "Custom X Axis Name" } ] }; // extract department data data.labels = departmentChartData.depId; data.datasets[0].data = departmentChartData.budRev; data.datasets[1].data = departmentChartData.fcastRev; var ctx1 = document.getElementById("chart1").getContext("2d"); new Chart(ctx1).Bar(data); var ctx2 = document.getElementById("chart2").getContext("2d"); new Chart(ctx2).Line(data);
<entry-point header ="enfacadeHeader" breadcrumbs="enfacadeBreadcrumbs" messages ="enfacadeMessages" footer ="enfacadeFooter" toolbar ="enfacadeSaveToolbar"> <body> <row> <tabbed-data-grid name ="department" header="enfacadeDataGridHeader" footer="enfacadeDataGridFooter"> <tab name="generalList"> <data-row> <row-indicator name="rowIndicator1"/> <text name="depId"/> <text name="name"/> <text name="comId"/> </data-row> </tab> <tab name="budgetList"> <data-row> <row-indicator name="rowIndicator2"/> <text name="budHrs"/> <text name="budRate"/> <text name="budCost"/> <text name="budRev"/> </data-row> </tab> <tab name="forecastList"> <data-row> <row-indicator name="rowIndicator3"/> <text name="fcastHrs"/> <text name="fcastRate"/> <text name="fcastCost"/> <text name="fcastRev"/> </data-row> </tab> </tabbed-data-grid> <tabbed-data-freeform name ="departmentDetails" header="enfacadeDataFreeformHeader" footer="enfacadeDataFreeformFooter"> <tab name="general"> <data-row> <text name="depId"/> <text name="name"/> <text name="comId"/> </data-row> </tab> <tab name="budget"> <data-row> <text name="budHrs"/> <text name="budRate"/> <text name="budCost"/> <text name="budRev"/> </data-row> </tab> <tab name="forecast"> <data-row> <text name="fcastHrs"/> <text name="fcastRate"/> <text name="fcastCost"/> <text name="fcastRev"/> </data-row> </tab> </tabbed-data-freeform> </row> </body> </entry-point>