<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2162873019977383255</id><updated>2011-04-22T05:55:31.929+05:30</updated><category term='SERVOY Tips'/><category term='SERVOY upcomming'/><category term='JAVA Tips'/><category term='SERVOY Component'/><category term='SERVOY Release Intro'/><title type='text'>Arup's Exceptional</title><subtitle type='html'>Blog related to the Java Technology &amp;amp; SERVOY Rapid Application Development Tool.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-5969993767650175623</id><published>2008-11-25T13:17:00.002+05:30</published><updated>2008-11-25T13:22:51.023+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Component'/><title type='text'>[Free] Servoy Image Viewer Module</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;I have developed a "Servoy Image Viewer Module" to view the uploaded image. The module has the option to flip, zoom, rotate, upload, save the image.&lt;br /&gt;&lt;br /&gt;Here is the preview of the "Servoy Image Viewer Module" in Rich Client.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_uIgTPoqOSgs/SSuutQ1sFqI/AAAAAAAAAAo/uMGFS1DAvbA/s1600-h/preview.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://3.bp.blogspot.com/_uIgTPoqOSgs/SSuutQ1sFqI/AAAAAAAAAAo/uMGFS1DAvbA/s400/preview.png" alt="" id="BLOGGER_PHOTO_ID_5272499881404798626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This module can be used in 3.5 + and 4.0 +.and is Rich &amp;amp; WebClient compatible. Please, feel free to use, modify &amp;amp; distrubute as per your want.&lt;br /&gt;&lt;br /&gt;The Module can be downloaded form the original post from the Servoy Forum.&lt;br /&gt;&lt;a href="http://www.servoy.com/forum/viewtopic.php?f=14&amp;amp;t=11627"&gt;http://www.servoy.com/forum/viewtopic.php?f=14&amp;amp;t=11627&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-5969993767650175623?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/5969993767650175623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=5969993767650175623&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/5969993767650175623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/5969993767650175623'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/11/free-servoy-image-viewer-module.html' title='[Free] Servoy Image Viewer Module'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_uIgTPoqOSgs/SSuutQ1sFqI/AAAAAAAAAAo/uMGFS1DAvbA/s72-c/preview.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-7833189351353279582</id><published>2008-11-19T18:51:00.005+05:30</published><updated>2009-02-04T19:53:33.922+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Tips'/><title type='text'>Checking Performance Issue in Servoy</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;By the help of Debugging, we can make our code bug free, but it can't help us for checking performance issue which may creep into our code and Servoy does't offer any such tool to check or monitor these issues, such as which Servoy method called, and how many time it takes to finish the code etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Yes, a simple checking can be done by adding a timestamp at the method start and end.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Here is a nice solution for your above issue, suggested by Greg Pierce of Agile Tortoise. It requires no changes to your original code to track the timestamps, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;function profile_global_method()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var orig = arguments[0]; //Method name to test the performance&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var newName = orig + '_orig';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    if(typeof globals[newName] == 'function')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    globals[orig] = globals[newName];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    globals[newName] = globals[orig];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var pStart;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var before = function() { pStart = new Date(); };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var after = function() { application.output(orig + ":" + (new Date() - pStart)); };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var repl = function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        switch(typeof before)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;            case 'string' : eval(before); break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;            case 'function' : before(); break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        var result = globals[newName].apply(this, arguments);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        switch(typeof after)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;            case 'string' : eval(after); break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;            case 'function' : after(); break;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        return result;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    globals[orig] = repl;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;You can profile your global method for performance testing by using the profile_global_method() and passing the method name as an argument. Now, you can call your method from somewhere else, typically in an "enter profiler mode" method somewhere that will call it repeated for the different methods you want to watch. It aliases the original global method in the runtime and replaces it with a version that tracks profiling ticks and outputs them to the console. No further modifications to your original code are required. Now, every time the method is called you can able to get the time consumed by the method like “methodName:[ticks]” in milliseconds. No, you can track the execution time into the db or keep counting the number of times the particular methods are called.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt; to Greg Pierce of Agile Tortoise for the same.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Here is an improved version which, now, can able to figure out the start, end and count of the method.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;function profile_global_method()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var orig = arguments[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var newName = orig + '_orig';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    if(typeof globals[newName] == 'function') globals[orig] = globals[newName];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    globals[newName] = globals[orig];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    if(typeof $profileData == 'undefined') $profileData = { };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    if(typeof $profileData[orig] == 'undefined') $profileData[orig] = {count:0, lastStart:null, lastEnd:null, ticks:0};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var before = function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        $profileData[orig].count = $profileData[orig].count + 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        $profileData[orig].lastStart = new Date();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        application.output("START | globals." + orig + " | count: " + $profileData[orig].count);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var after = function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        $profileData[orig].lastEnd = new Date();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        $profileData[orig].ticks = $profileData[orig].lastEnd - $profileData[orig].lastStart;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        application.output('END | globals.' + orig + " | count: " + $profileData[orig].count + ", ticks: " + $profileData[orig].ticks);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    var repl = function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        before();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        var result = globals[newName].apply(this, arguments);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        after();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;        return result;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;    globals[orig] = repl;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;} &lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Now, the console output will be like ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;START | method1 | count: 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;START | method1 | count: 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;END | method1 | count: 7, ticks: 10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;END | method2 | count: 6, ticks: 50&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;The original post is at &lt;a href="http://www.servoy.com/forum/viewtopic.php?f=22&amp;amp;t=11579"&gt;http://www.servoy.com/forum/viewtopic.php?f=22&amp;amp;t=11579&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-7833189351353279582?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/7833189351353279582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=7833189351353279582&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/7833189351353279582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/7833189351353279582'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/11/performance-testing-in-servoy.html' title='Checking Performance Issue in Servoy'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-497836815955847157</id><published>2008-10-08T10:41:00.005+05:30</published><updated>2008-10-08T12:04:39.551+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Release Intro'/><title type='text'>SERVOY 4.1 PreRelease : DONE !!</title><content type='html'>Yes,&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;       Servoy 4.1 PreRelease version is on your hand now, with lots of fixes and enhancements and in addition to these with a new revolutionary change called, "Solution Model".&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;With this PreRelease of Servoy 4.1, you can now able to see a node "SolutionModel" just below to the Application node. SolutionModel node gives you the capability to change or create new form &amp;amp; form objects such as forms, fields, labels, buttons, and tabpanels (portals coming in b2) on the FLY. yes, at the runtime....&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;                         and the most important and surprising thing is...... You can have this with your WebClient also. Yes, You can change or create new form &amp;amp; form objects on the fly in your WebClient also.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;You can add whatever or any number of controls to your form or a newly created form. For the first time, you can now able to change any of the properties on objects , even the data binding on any object at runtime. You can also able to add/change parts of a form at runtime.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Isn't it a revolutionary change in Servoy ??&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTE :-&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;You can only change the properties of an object on a form that is not currently visible;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;The changes only persist as long as the client session does. So if you want to keep the changes between sessions - you need to code your solution to restore the changes the user made.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Just looking at to the SolutionModel node....&lt;br /&gt;&lt;br /&gt;Let you want to change the style class of the form on the fly(on the runtime) :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;//Get the form that you want to change the Style Class&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;var form = solutionModel.getForm("formName");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;//Change the StyleClass&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;form.styleClass = "newStyleClass"&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Let you want to add a new button to  a newly created form :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0); font-family: trebuchet ms;"&gt;//Get the Form&lt;br /&gt;var newForm = solutionModel.newForm("frm", controller.getServerName(), controller.getTableName(), "svy_Cherry", true, 200, 200);&lt;br /&gt;&lt;br /&gt;//Add a button to the newly created Form&lt;br /&gt;newForm.newButton("showForm",100,100, 80,20,showForm);&lt;br /&gt;&lt;br /&gt;//Show the newly crated form&lt;br /&gt;forms['frm'].controller.show();&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;NOTE :- this is PRE-RELEASE software - so make sure to back up your databases and workspace before trying it out.&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-497836815955847157?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/497836815955847157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=497836815955847157&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/497836815955847157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/497836815955847157'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/10/servoy-41-prerelease-done.html' title='SERVOY 4.1 PreRelease : DONE !!'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-4943349566921411753</id><published>2008-10-06T17:28:00.004+05:30</published><updated>2008-10-06T17:44:09.601+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Component'/><title type='text'>[FREE] 3-State Check Box Bean for Servoy</title><content type='html'>The 3-State Check Box Bean has the three states called, "NOT_SELECTED", "CHECKED", "CROSSED". You can get/set the state by using the state property of the bean.&lt;br /&gt;&lt;br /&gt;To Get the State :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;var state = elements.bn_triState.state&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;To Set the State :&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: trebuchet ms; font-weight: bold; color: rgb(51, 204, 0);"&gt;//Set to Checked&lt;br /&gt;elements.bn_triState.state = "CHECKED";&lt;br /&gt;&lt;br /&gt;//Set to Not Selected&lt;br /&gt;elements.bn_triState.state = "NOT_SELECTED";&lt;br /&gt;&lt;br /&gt;//Set to Crossed&lt;br /&gt;elements.bn_triState.state = "CROSSED";&lt;/blockquote&gt;&lt;br /&gt;I have posted the bean at Servoy Forum. Please check at &lt;a href="http://www.servoy.com/forum/viewtopic.php?f=15&amp;amp;t=11317"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-4943349566921411753?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/4943349566921411753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=4943349566921411753&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/4943349566921411753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/4943349566921411753'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/10/free-3-state-check-box-bean-for-servoy.html' title='[FREE] 3-State Check Box Bean for Servoy'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-3613666942576305359</id><published>2008-10-06T12:40:00.003+05:30</published><updated>2008-10-06T12:44:11.924+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Component'/><title type='text'>Record Plugin is at Servoy Newsletter October 2008</title><content type='html'>My Record Plug-in for Servoy, "mfRecordPro" has been added to the "&lt;span style="font-weight: bold;"&gt;Servoy Newsletter October 2008&lt;/span&gt;"  :)  :)&lt;br /&gt;&lt;br /&gt;Check the Newsletter at &lt;a href="http://www.servoy.com/generic.jsp?mt=721&amp;amp;taxonomy_id=827"&gt;here&lt;/a&gt;. Check for "FREE: New Third-party Servoy Training Tools" heading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-3613666942576305359?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/3613666942576305359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=3613666942576305359&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/3613666942576305359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/3613666942576305359'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/10/record-plugin-is-at-servoy-newsletter.html' title='Record Plugin is at Servoy Newsletter October 2008'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-2865834118246203036</id><published>2008-10-06T12:28:00.003+05:30</published><updated>2008-10-06T14:10:12.558+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Component'/><title type='text'>[FREE] Record Plugin for SERVOY - "mfRecordPro 1.2" Released</title><content type='html'>&lt;div class="content"&gt;&lt;span style="font-weight: bold;"&gt;Record Plugin-in "mfRecordPro 1.2" released. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Version 1.2 includes the possibility to control the playback sound level, pause &amp;amp; resume recording, play an External File and can merge previously recorded audio etc.&lt;br /&gt;&lt;br /&gt;Check out the change history at &lt;a href="http://www.mindfiresolutions.com/mindfire/mfRecordPro1.2/changehistory.txt"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The plug-in &amp;amp; sample Servoy solution can be downloaded at &lt;a href="http://www.mindfiresolutions.com/downloads.htm#mfRecordPro"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Happy Recording :) :)&lt;br /&gt;&lt;a href="http://www.mindfiresolutions.com/downloads.htm#mfRecordPro" class="postlink"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-2865834118246203036?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/2865834118246203036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=2865834118246203036&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/2865834118246203036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/2865834118246203036'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/10/free-record-plugin-for-servoy.html' title='[FREE] Record Plugin for SERVOY - &quot;mfRecordPro 1.2&quot; Released'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-8911683384278330388</id><published>2008-10-03T18:15:00.005+05:30</published><updated>2008-10-03T18:36:19.200+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY upcomming'/><title type='text'>SaaS -- TO -- PaaS Powered</title><content type='html'>YES,&lt;br /&gt;&lt;br /&gt;With the upcoming release of Servoy 4.1, you can have your application &lt;a href="http://en.wikipedia.org/wiki/Platform_as_a_service"&gt;PaaS(Platform as a Service)&lt;/a&gt; powered. Now, you can allow users or developers at the client side to develop &amp;amp; deploy the User Interface, Data &amp;amp; Business Logic according to the need just right from your own application. Isn't it Great ???   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s1600-h/icon_biggrin.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s320/icon_biggrin.gif" alt="" id="BLOGGER_PHOTO_ID_5252912712462637794" border="0" /&gt;&lt;/a&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s1600-h/icon_biggrin.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s320/icon_biggrin.gif" alt="" id="BLOGGER_PHOTO_ID_5252912712462637794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;According to the Tech person : &lt;span style="font-style: italic;"&gt;"In 4.1 we allow you to create objects (any type) on-the-fly, bind them to data and present them to a user. You can do this both with our Smart Client and with our Web Client, again from the same code-base!"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Curious to see live in action... &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s1600-h/icon_biggrin.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s320/icon_biggrin.gif" alt="" id="BLOGGER_PHOTO_ID_5252912712462637794" border="0" /&gt;&lt;/a&gt;   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s1600-h/icon_biggrin.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s320/icon_biggrin.gif" alt="" id="BLOGGER_PHOTO_ID_5252912712462637794" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-8911683384278330388?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/8911683384278330388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=8911683384278330388&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/8911683384278330388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/8911683384278330388'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/10/saas-to-paas-powered.html' title='SaaS -- TO -- PaaS Powered'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_uIgTPoqOSgs/SOYYR-Z4GuI/AAAAAAAAAAM/0swhSKu8rHc/s72-c/icon_biggrin.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-3334371204938707701</id><published>2008-09-25T12:49:00.007+05:30</published><updated>2008-09-25T14:45:33.673+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVA Tips'/><title type='text'>LOCK-OUT your source code from decompilation</title><content type='html'>&lt;div style="text-align: justify;"&gt;Unlike C, C++ &amp;amp; Pascal, Java uses a different approach to compilation. Java don't compile to machine code, compile into intermediate code(byte code). That's why your Java byte code (.class or .jar) file contains much more information of your Java Source file, leaving exposed to reading the code or decompilation. To conceal your code from others, you can use any Java Obfuscator. Obfuscated code is very hard to read and understand. Obfuscating code to prevent reverse engineering(decompilation) is typically done to manage risks that stem from unauthorized access to source code.These risks include loss of intellectual property, ease of probing for application vulnerabilities and loss of revenue that can result when applications are reverse engineered, modified to circumvent metering or usage control and then recompiled. Obfuscating code is, therefore, also a compensating control to manage these risks. Obfuscators also be used to compact object code or interpreted code without affecting its behaviour. A good one I found is &lt;a href="http://www.retrologic.com/retroguard-main.html"&gt;RetoGuard&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;RetoGuard is very easy to install &amp;amp; use and fully documented. RetroGuard comes up with three flavors of license.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Commercial(annual license and support agreement ) : If you are going to use RetroGuard commercially.&lt;/li&gt;&lt;li&gt;Academic/Not-For-Profit(non-commercial license) : If you are going to use RetroGuard for Academic or not for profit purpose.&lt;/li&gt;&lt;li&gt;Open Source(GNU General Public License) : If you are going to use RetroGuard for your Open Sourced Projects.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Using RetroGuard&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Download RetroGuard from the download section and add the retroguard.jar file to your classpath. Package your entire package directory into jar by using the jar command or you can use any editor to do the same.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The command for running RetroGuard is of form&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;java RetroGuard [INPUT-JAR [OUTPUT-JAR [SCRIPT [LOGFILE]]]]&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;For simply, you can use&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(51, 204, 0); font-weight: bold;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;java -jar retroguard.jar input.jar output.jar&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;input.jar : jar to be obfuscated.&lt;br /&gt;output.jar : output jar&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Note : &lt;/span&gt;You can specify the classes not to obfuscate by adding entries to the script file. Bydefault(if you don't specify your script file) RetroGuard will preserve applications, applets, serializable classes, and RMI remote classes from obfuscation.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;If your Jar requires other libraries to access they are must be available in classpath while running RetroGuard. Let your source jar is "&lt;span style="font-weight: bold;"&gt;input.jar&lt;/span&gt;" and you want allow access the class "&lt;span style="font-weight: bold;"&gt;mainClass&lt;/span&gt;" which lives in input.jar and has the package structure "&lt;span style="font-weight: bold;"&gt;com.test&lt;/span&gt;" and your jar depends upon the external library "&lt;span style="font-weight: bold;"&gt;extLib.jar&lt;/span&gt;" and will be output to "&lt;span style="font-weight: bold;"&gt;output.jar&lt;/span&gt;", then a suitable command for running RetroGuard will be :&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 204, 0);font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;java -classpath retroguard.jar;extLib.jar RetroGuard input.jar output.jar script.rgs&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;script.rgs is a simple text file which should contain the entry ".class com.test.mainClass public method"(without quote).&lt;br /&gt;&lt;br /&gt;For the detail information, please check the &lt;a href="http://www.retrologic.com/retroguard-docs.html"&gt;RetroGuard documentation&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-3334371204938707701?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/3334371204938707701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=3334371204938707701&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/3334371204938707701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/3334371204938707701'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/09/lock-out-your-source-code-from.html' title='LOCK-OUT your source code from decompilation'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-5551109038977149563</id><published>2008-09-23T17:59:00.008+05:30</published><updated>2009-02-04T19:55:41.716+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Tips'/><title type='text'>Customize your Exception Handler in Servoy</title><content type='html'>&lt;div style="text-align: justify;"&gt;Whenever, Servoy encounters any error, it throws the Exception with the message. To add your own customized message, which will be more user friendly, you can attach an Exception handler to your solution.&lt;br /&gt;&lt;br /&gt;Exception Handler is just a Global Method which will be get fired automatically, whenever servoy encounters any error and the Exception will be passed to the method as an argument.  You can add the Exception handler to your Solution by setting the global method(Exception handler) to the onError event of the solution.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;[Servoy 3.1+ &amp;amp; 3.5+]&lt;br /&gt;Open the Solution -&gt; Go to File menu -&gt; Solution Settings -&gt; Select the Global Method from the On error method drop down.&lt;br /&gt;&lt;br /&gt;[Servoy 4.0+]&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Select the solution -&gt; Go to Properties Tab -&gt; select the Global Method to the onError event.&lt;br /&gt;&lt;br /&gt;Here is the sample code snippet, that you can add to your Global Method(Exception Handler) to show customized messages to the user.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;/span&gt;&lt;blockquote  style="font-family:trebuchet ms;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;var svyExpList = new java.util.HashMap();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;//Add your message to the respective Exceptions    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;svyExpList.put(ServoyException.ACQUIRE_LOCK_FAILURE, "Acquire Lock Failure");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.BAD_SQL_SYNTAX, "Bad Sql Syntax");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.DATA_ACCESS_RESOURCE_FAILURE, "Data Access Failure");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.DATA_INTEGRITY_VIOLATION, "Data Integrity Violation.");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.DEADLOCK, "Dead Lock");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.DELETE_NOT_GRANTED, "Delete not Granted.");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.EXECUTE_PROGRAM_FAILED, "Execute Program failed.");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.INCORRECT_LOGIN, "Incorrect login");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.INVALID_INPUT, "Invalid Input");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.INVALID_INPUT_FORMAT, "Invalid Input Format");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.INVALID_RESULTSET_ACCESS, "Invalid Resultset Access");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_ACCESS, "No Access");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_CREATE_ACCESS, "No Create Access");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_DELETE_ACCESS, "No Delete Access");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_LICENSE, "No License");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_MODIFY_ACCESS, "No Modify Access");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_PARENT_DELETE_WITH_RELATED_RECORDS, "No Parent Delete with Related Record");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.NO_RELATED_CREATE_ACCESS, "No Related Create Access");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.PERMISSION_DENIED, "Permission Denaid");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.RECORD_LOCKED, "Record Locked");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.SAVE_FAILED, "Save Failed");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    svyExpList.put(ServoyException.UNKNOWN_DATABASE_EXCEPTION, "Unknown Database Exception");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    var exception = arguments[0]; //Occurred Exception&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    if (exception.isServoyException) //Servoy Exception&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;        var msg = svyExpList.get(exception.getErrorCode());&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;        plugins.dialogs.showErrorDialog( "Error Occured !!",  msg, 'OK');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0); font-weight: bold;"&gt;    }&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Add your own messages to each Exception to show the user a proper message.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-5551109038977149563?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/5551109038977149563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=5551109038977149563&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/5551109038977149563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/5551109038977149563'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/09/customizing-exception-handler-for.html' title='Customize your Exception Handler in Servoy'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-666070724832690452</id><published>2008-09-22T14:11:00.007+05:30</published><updated>2008-09-22T14:24:33.645+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Tips'/><title type='text'>Changing the Default UI Settings of Elements in Servoy</title><content type='html'>&lt;div style="text-align: justify;"&gt;Look and Feel is used to set the general appearance of the Swings Component in java. Java Cross Platform Look &amp;amp; Feel is the default and this is the most portable also. You can design your own Look and Feel and apply your application as well. There are number of Free &amp;amp; Commercial Look and Feel available. You can google for the same or a good place to start with is from &lt;a href="http://www.javootoo.com/"&gt;http://www.javootoo.com&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I just want to change the Default UI of the Swing Component. Then, I google through and found some of the facts that help me to play with the Default UI settings of the Swings Component. The javax.swing.UIManager class is used to handle most of the UI related aspects.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;All the UI related properties are stored against keys. You can override or set the new value for the keys by using the javax.swing.UIManager.put(Object key, Object value) method.&lt;br /&gt;&lt;br /&gt;You can get all the list of Keys &amp;amp; there default values by executing the below statements :&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);font-family:courier new;" &gt;&lt;/span&gt;&lt;blockquote  style="font-weight: bold; font-style: italic; color: rgb(51, 204, 0);font-family:trebuchet ms;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;br /&gt;UIDefaults uiDefaults = UIManager.getDefaults();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Enumeration&lt;/span&gt;&lt;object&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; &lt;object&gt; enum1 = uiDefaults.keys();&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;while (enum1.hasMoreElements())&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    Object key = enum1.nextElement();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    Object value = uiDefaults.get(key);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    System.out.println("Key : " + key + " - " + "Value : " + value);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;}&lt;/span&gt;&lt;/object&gt;&lt;/blockquote&gt;&lt;object&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);font-family:courier new;" &gt;&lt;/span&gt;This will print Keys And their default values.&lt;br /&gt;&lt;br /&gt;You can change the Default UI Settings of Elements in Servoy by using the below code :&lt;br /&gt;&lt;br /&gt;Let I want to change the Selection Background Color of the ComboBox to Pink. The below Code will do the same.&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0); font-weight: bold;font-family:courier new;" &gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;application.setUIProperty("ComboBox.selectionBackground", new Packages.javax.swing.plaf.ColorUIResource(java.awt.Color.PINK));&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;Here, the "ComboBox.selectionBackground" is the key responsible for Selection Background Color and the value is a Object of ColorUIResource.&lt;br /&gt;&lt;br /&gt;Likewise, you can change the Default UI Settings by overriding the desired key values.&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-666070724832690452?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/666070724832690452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=666070724832690452&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/666070724832690452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/666070724832690452'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/09/changing-default-ui-settings-of.html' title='Changing the Default UI Settings of Elements in Servoy'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-6311293112396992114</id><published>2008-09-10T10:27:00.006+05:30</published><updated>2008-10-06T14:56:40.406+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Component'/><title type='text'>[FREE] Record Plugin for SERVOY, "mfRecordPro1.0" Released</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;strong&gt;                       mfRecordPro&lt;/strong&gt; is the Record Plugin for Servoy.  The plugin can be used for recording audio from your Servoy application. The Plugin also has the facility to play back the recently recoded audio or the previously stored one. The plugin returns the recorded audio as byte array which can be stored in the database and can be played back latter. You can use the Play() method to play the recently recorded audio or the previously recorded audio by passing to the play method as an argument. The Plugin has been tested in Servoy 3.5 &amp;amp; 4.0 Final under java version 1.6. The Plugin works well in rich client and in WebClient as well. The plugin also has the facility to export the recorded audio by specifying a suitable audio file format. The plugin comes up with a default Recording Interface to record &amp;amp; play audio. How ever, the plugin also has the methods to design the interface of your own.&lt;br /&gt;&lt;br /&gt;You can have a look to the demonstration video at &lt;a href="http://www.mindfiresolutions.com/Video%20-%20mfRecordProServoyPlugin/mfRecordProServoyPlugin.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Plugin &amp;amp; Sample Servoy Solution can be downloaded from &lt;a href="http://www.mindfiresolutions.com/downloads.htm#mfRecordPro"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Servoy Forum post &amp;amp; feed backs : &lt;a href="http://www.servoy.com/forum/viewtopic.php?f=15&amp;amp;t=11162"&gt;http://www.servoy.com/forum/viewtopic.php?f=15&amp;amp;t=11162&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Happy Recording... :) :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-6311293112396992114?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/6311293112396992114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=6311293112396992114&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/6311293112396992114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/6311293112396992114'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/09/free-record-plugin-for-servoy.html' title='[FREE] Record Plugin for SERVOY, &quot;mfRecordPro1.0&quot; Released'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2162873019977383255.post-9041501643407468669</id><published>2008-09-10T10:20:00.004+05:30</published><updated>2008-09-29T12:53:38.531+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVOY Component'/><title type='text'>[FREE] JSpinner Bean for SERVOY</title><content type='html'>&lt;strong&gt;            &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;JSpinner Bean&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt; for SERVOY is the JSpinner swing component of Java. With  the help of JSpinner bean of SERVOY, user can spins through a specific range of  numbers, spins through specific range of dates &amp;amp; times and also can spin  through list of custom values. It has all the properties &amp;amp; methods to access  &amp;amp; change the value of the JSpinner with in the SERVOY Environment.&lt;br /&gt;&lt;br /&gt;Sample Servoy Solution &amp;amp; the Bean can be downloaded from &lt;a href="http://www.mindfiresolutions.com/downloads.htm#JSpinner"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Servoy Forum post and feed backs : &lt;a href="http://www.servoy.com/forum/viewtopic.php?f=14&amp;amp;t=9778"&gt;http://www.servoy.com/forum/viewtopic.php?f=14&amp;amp;t=9778&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2162873019977383255-9041501643407468669?l=arupexceptional.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arupexceptional.blogspot.com/feeds/9041501643407468669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2162873019977383255&amp;postID=9041501643407468669&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/9041501643407468669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2162873019977383255/posts/default/9041501643407468669'/><link rel='alternate' type='text/html' href='http://arupexceptional.blogspot.com/2008/09/free-jspinner-bean-for-servoy.html' title='[FREE] JSpinner Bean for SERVOY'/><author><name>Arup R Sahoo</name><uri>http://www.blogger.com/profile/17280416324475458342</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
