Clear Data Builder for Ext JS (CDB) is a free and open source productivity tool to build applications with HTML5, JavaScript and Java EE technologies.
It supports Ext JS with Ext.Direct/JEE.
CDB for ExtJS writes both JavaScript and Java code for you. All artifacts required for bringing together Ext JS, Java implementations of Ext.Direct (currently - DirectJNGine), and popular Java frameworks: Spring, Hibernate, and MyBatis ClearJS generates automatically.
Source code is hosted on the GitHub under MIT license.
Commercial support of ClearDataBuilder is available from the source: Farata Systems.
Tip
|
Intrigued? Check our getting started guide in wiki or read how to improve your productivity with CDB in free chapter from «Enterprise Web Development: From Desktop to Mobile» book. |
If your ever tried to create a combined Ext-JEE-DBMS project with or
without Spring, you spent hours just to see a window populated with the
simple data. Implementing data persistence and transaction processing is
even more time consuming. How about batching all inserts, deletes and
and updates done to your store as a single transaction? Want to
incorporate changes to the associated stores to the same sync()
?
ClearJS substantially saves time by automating most of these efforts.
You go through a set of simple steps to declare
what data do you need
(using SQL or Hibernate) and let ClearJS generate
and deploy
all the
artifacts: Java, JavaScript and configuration files. Below,
getCompanyAssociates
is annotated to return all records from a
company_associate
table1) and this declaration is all you write to
build a service that returns a collection of employee data:
package com.farata.test.service;
import java.util.List;
import com.farata.test.entity.CompanyAssociate;
import clear.cdb.annotations.*;
@JSService
public interface ICompanyService {
@JSJPQL(query="SELECT a FROM CompanyAssociate a WHERE companyId=:companyId")
List<CompanyAssociate> getCompanyAssociated(Integer companyId);
}
Throw in one more Java annotation to generate a sample HTML application:
@JSGenerateHTML5(arguments="1")
@JSJPQLMethod(query="SELECT a FROM CompanyAssociate a WHERE companyId=:companyId")
List<CompanyAssociate> getCompanyAssociated(Integer companyId);