Some days ago, we updated our showcase application and especially the WebUI implementation.
But what is new?
Our WebUI has some great new features, in addition to our Plat_Forms release.
Check out the Help menu - the help is now embedded in the application. Another great feature is the download option for grids - press the small export button beside the grids. Or try uploading an image in the contacts screen - works great
Smaller changes are grid specific, e.g. the sort operation is now a remote operation, same for inserting new lines.
We welcome your feedback!
Our showcase application was updated with the latest versions of JVx and WebUI. It demonstrates the new simple charting, global meta data caching and a lot of new features of WebUI, like Upload or Help integration.
The Plat_Forms contest 2011 is over. We are proud to have participated.
Working together was really fun:
collaboration
The task (Conferences and Participants) was very interesting and we tried to use our JVx WebUI for the implementation (somewhat riskily, but an interesting challenge).
The user interface was not a real problem, of course the WebUI needs some additional features, but it is ok. On the other side, we had problems with the REST service implementation because we tried to solve it very dynamic, to be reusable for JVx.
But there was not enough time to finish the implementation. And last but not least, we damaged the REST authentication during the last possible deployment. That means that our REST service does not work - very frustrating... but we had a lot of fun.
We know that our solution has some problems, but the usage of the framework during the whole contest was really fun. And we used our single sourcing mechanism for development: We developed with our Swing Launcher and deployed the app as Ajax/HTML application - it worked great.
We give a first insight into our result (the design did not matter):
SIB Visions - Plat_Forms 2011
The Web interface is competitive, even if it was not designed for the creation of content management systems:) For classical web development, we need a different application style, but that has nothing to do with the technology behind.
Now we look forward to the results of the Jury.
We talked with James Sugrue from Javalobby (dzone) about JVx. He had some questions about the framework and we talked with him about the next features.
Read the full interview.
Because of the Plat_Forms competition, we released special versions of JVx, WebUI and OnlineHelp. All releases are available from our project page.
We implemented some amazing new features for JVx and WebUI.
Check out the changelogs for details.
Some tags:
- Simple charting
- Default layouts
- Global metadata caching (server-side)
- Modal frames in WebUI
- Table handling in WebUI
It is available from the project page.
What’s New?
The complete list of changes can be found here.
- Default Database (CoC)It is now possible to configure multiple db datasources via config.xml
<?xml version="1.0" encoding="UTF-8"?>
<application>
<securitymanager>
<class>com.sibvisions.rad.server.security.DBSecurityManager</class>
</securitymanager>
<datasource>
<db name="default">
<url>jdbc:oracle:thin:@localhost:1521:mydb</url>
<username>user</username>
<password>password</password>
</db>
</datasource>
</application>
If the DBSecurityManager does not define a specific datasource, the datasource with the name "default" is used.
- Quoting in DBAccessDBAccess supports case sensitive database access. To enable the feature, call
on your DBAccess instance.
- Custom SessionManager and ObjectProviderIt was possible to use a custom ObjectProvider but it was not possible to extend the DefaultObjectProvider. Now this limit is gone. Additional it is now possible to use a custom SessionManager and extend the DefaultSessionManager.
Configure the objects in your server config.xml like this:
<server>
<sessionmanager>com.sibvisions.AnotherSessionManager</sessionmanager>
<objectprovider>com.sibvisions.AnotherObjectProvider</objectprovider>
<server>
- Server Side TriggersOur DataBooks now supports specific events like before insert or after delete. The server side storage did not have this events, so you had to overwrite the data manipulation methods to call your business logic or to change the default behaviour. That was not very cool.
We have implemented a very powerful feature, with which you have full control of your data sent to the data tier. Do you know database triggers?
Now you have the same power in your storages.
A short example:
public void getUsers
()
{
DBStorage dbsUsers
= new DBStorage
();
dbsUsers.
setDBAccess(getDBAccess
());
dbsUsers.
setFromClause("V_USER_USERS");
dbsUsers.
setWritebackTable("USERS");
dbsUsers.
open();
dbsUsers.eventBeforeInsert().addListener(this, "doEncryptPwd");
dbsUsers.eventBeforeUpdate().addListener(this, "doEncryptPwd");
}
public void doEncryptPwd(StorageEvent pEvent)
{
IBean bn = pEvent.getNew();
bn.put("PASSWORD", AbstractSecurityManager.getEncryptedPassword(
SessionContext.getCurrentSessionConfig(),
(String)bn.get("PASSWORD")));
pEvent.setNew(bn);
}
Use the event handling as usual.
- Flat POJO support for StoragesInstead of using the dynamic property access via IBean, it is possible to work with POJOs:
public void doEncryptPwd
(StorageEvent pEvent
)
{
User user
= pEvent.
getNew(User.
class);
user.setPassword(AbstractSecurityManager.getEncryptedPassword(
SessionContext.getCurrentSessionConfig(),
user.getPassword()));
pEvent.setNew(user);
}
You can work with every useful POJO because the storage mapps only available properties to the POJO.
- Useful bugfixes
We look forward to your reviews
The next beta version is planned for Friday, 7th January 2010. It contains some important bugfixes and improvements for DB handling. The default server implementation supports a custom session manager and object provider. And of course we solved some problems of the previous beta.