Casabac GUI Server - Questions & Answers

This page contains questions which we got and which we think are of general interest. Maybe this page answers some of the questions you may have. Experienced Casabac users may use this page to regularly refresh their knowledge.

01. April 2003 - Internet Explorer 6.00.2800, the one after XP Service Pack 1...
Some customers experienced the problem of "hanging browsers" after having done the XP Service Pack 1 upgrade. Suddenly IE closes http communication - forcing the user to restart IE. In most cases the problem occurred with a browser configuration in which the cache is explicitly switched off. This is a bug inside IE 6.00.2800 - there are no problems with IE 5.5, IE 6.0.2600 (and Mozilla).
In the meantime we programmed "around" the bug and provide for a Casabac version in which the "hanging browser" does not occur anymore. The version will be officially published on Thursday 03rd of April on our download site.

In the meantime: please make sure your browser settings are set to use the cache if running into the problems described above.

21. March 2003 - Mozilla Support
From beginning of this year on Mozilla is supported as second browser. We require Mozilla version 1.2 as minimum, best: use the newest released Mozilla version.
Nearly all GUI elemenst are rendered in Mozilla exactly the same way as they are rendered with IE - there are some differences in the usage of certain controls.    
Mozilla is currently released for development purpose: in case you find pages that do not work with Mozilla and do work with IE: please contact us and send us the pages (info@casabac.com).

26. Jan 2003 - Putting images into a double line menu item (DLMENU)
The text that you put into a DLMENU item is directly rendered into the table field that represents the menu item. As consequence you can embed any HTML tags inside the text. Please pay attention: do not use "-characters inside the text - use single quotes! The following example shows one double line menu with some images in front of and behind an item:

The adapter code which creates the menu item uses the String:

String itemText = "<img src='../casabacdemos/images/smallworld.gif' border=0 height=10>&nbsp;System&nbsp;<img src='../casabacdemos/images/smallworld.gif' border=0 height=10>";

By the way: you can do the same with menu items in drop down or a context menus!

26. Nov 2002 - Property behind a value help request in the FIELD control
If the user performs a value help request on a field then this calls a method in your adapter class (attribute POPUPMETHOD inside the FIELD definition). If you want to plug an own, generic value help behind the value help request then you need to know inside this method the property which is behind the value request. E.g. if the value help was requested on a field which binds to the property "zipCode", then you want to know "zipCode" within your generic value help implementation.

You can access the property inside your method in the following way:

/** Generic value help inside your adapter. */
public void xyz()
{
    ...
    ...
    System.out.println("The value request was executed on property " + m_fieldProperty);
    ...
    ...
}

25. Nov 2002 - Internationalized Date Format
A date is transferred between client and server as YYYYMMDD String. The display of the date string in the browser depends on your internationalization settings. Currently there are two possibilities:

(1) DD.MM.YYYY ("European style")
(2) MM/DD/YYYY ("American style")

Each adpater supports a method "getDateDisplay()" which returns one of the Strings "DD.MM.YYYY" or "MM/DD/YYYY". The method has a default implementation in the class com.casabac.server.Model - the class you inherit your adapters from. This default implementation looks into the Casabac context - reflecting that you typically have one constant date format throught one session context.

As consequence you can manipulate the date settings by...

(1) overwriting the "getDateDisplay()"-method and plugging your own logic behind
(2) setting the date display inside the Casabac context. Inside your adapter e.g. call...

    m_sessionContext.setDateDisplay("MM/DD/YYYY");

06. Oct 2002 - Who is guilty? Ask the log...!
Some of your pages behave slow? Then use the Casabac log file to find out more details. There are two configuration options, which you can control via <casabac>/config/casaconfig.xml: either you use the log in "normal" mode or in "debug" mode. The "normal" mode writes each request with its data size, its processing time and its data volume into the log. The "debug" mode writes in addition all steps which the Casabac runtime executes on your models into the log: you e.g. can see each single set- and get-operation which the Casabac runtime call inside your adapter class - with a timestamp. As consequence you can observe exaclty which of your properties may take "very long" processing time, and by this causes slow resonse times.
The log is written into the <casabac>/log/-directory. Per day one log file is created. Log data is written into a memory buffer first and output to the logfile every 5 seconds. This means that the file is not blocked all the time - you e.g. can remove it at any point of time. 

29. Sep 2002 - Building a WAR file for Casabac GUI Server
For deployment in non-Tomcat-environments you can build a WAR file of the Casabac GUI Server. Please proceed in the following way: call the GUI server after installation one time - this will automatically update the WEB.XML file of the web archive. Then package all the contents of the <casabac>/tomcat/webapps/CasabacGUIServer-directory into a WAR file and deploy it to your server. The context root for the web application is "CasabacGUIServer".
Please do not forget to define context roots/ aliases for the web-directories of your application projects inside the web server definition. The Installation Guide contains info about how to do this.

21. Sep 2002 - How can I set the size of popups?
Popups are just normal pages - which are opened "in popup mode". The information of the size and the attributes of the popup (if it has a status bar or not) is contained in the page definition of the page which is called as popup. Please refer to the documentation of the PAGE-tag inside the developer's guide.

09.Sep 2002 - Several projects insdie my Casabac GUI Server are using the same libraries. Where should I position central libraries?
Central libraries should be stored in the <installdir>/appclasses/lib-directory - as .jar file (.zip is not accepted!). Please be aware of that the Casabac class loader is the same for all application classes. I.e. if you position one library more than one time inside the class loader's search path, then it depends on the sequence in the file system which library is actually used. Consequence: libraries should be installed only once inside the applicataion projects - in order to avoid confusing scenarios.

05. Sep 2002 - A certain field should be non-visible inside the layout - dependent on some constellation inside my business logic. How can I do so?
Every input control (FIELD, RADIOBUTTON, CHECKBOX, ...) provides for an attribute STATUSPROP. Via this attribute you can reference to an adapter property, which tells if the control has the status "DISPLAY", "EDIT", "FOCUS" or "ERROR". Please read detailed information inside the Developer's Guide.

02. Sep 2002 - Can I restrict the Casabac GUI Server not to use its own class loader? I get some errors back debugging Casabac applications inside a BEA environment.
Yes, since release 1.4 you can do so: there is a configuration option (/confg/casaconfig.xml), which allows you to switch off the Casabac class loader. But: pay attention to that functions like "Use newest classes" inside the Layout Painter are not available anymore.

19. Aug 2002 - Question: First opening of a page takes some time - second loading is much faster. What's the reason?
The reason is the class loader which loads the classes of your application. Loading the pages the second time all corresponding classes are already available in the server - there is no loading time anymore. The speed of loading classes improved much with JRE 1.4 - since the release 1.4 of the Casabac GUI server is delivered as default on JRE 1.4 the situation has improved a lot.

16. Aug 2002 - Question: TEXTGRID control is set to 100% width but actually does not occupy the available width
Please check the "ITR" into which your TEXTGRID is positioned. This ITR must also be set to 100%. The sizing rules are: if you use "absolute sizing" (i.e. you specify pixel values) then the sizing is "from the bottom to the top". If you use "percentage sizing" then sizing is "from the top to the bottom" - i.e. the top levels have to set the area which the percentage definition referenced to.

16. Aug 2002 - Question: TEXTGRID control is set to 100% width. If there are too many columns then it exceeds the window - though HSCROLL is definied to be true.
The ITR definition above the TEXTGRID must be set to "FIXLAOUT=true". This tells HTML to keep internally to the column definitions - if the column really fits or not. The TEXTGRID itself is positioned into a column; if this is fiexed then the TEXTGRID begins to scroll horizontally in the way you desire.

15. Aug 2002 - Question: My TEXTGRID control behaves slow with a high number of items - is there anything I can do?
There are two options: the first is to stick with the TEXTGRID control and use the INDEXCHANGEPROP-attribute. With this property you can explicitly tell the TEXTGRID that it needs not to render itself unless the property changes. This means that the TEXTGRID only redraws itself if you tell to do so.
The other option is to switch to the TEXTGRIDSSS control (TEXTGRIDSSS2 in Release 1.4). SSS stands for server side scrolling. In this scenario the grid in the browser client only knows about the just visible items - if there are 20 lines to be displayed then it just knows about these 20 lines. Scrolling up and down now means that items are fetched from the server accordingly. The speed of rendering as consequence is completely independent from the number of objects to be displayed in a grid. As consequence the TEXTGRIDSSS(2) controls is the one which is "most scalable" - having the disadvantage of course that scrolling does mean a round trip to the server.

14. Aug 2002 - Question: How can I upload files from the client to the server?
With release 1.4 there is a new control FILEUPLOAD available which makes this very easy. The file is selected on client side and copied to the server. From there you can acess via normal file IO.

14. Aug 2002 - Question: How can I place normal URL-links into my layout?
Use the IHTML control. With this control you can embed any HTML code which is dynamically created on server side into your page.

14. Aug 2002 - Question: What are the major advantages using the Casabac technology?
This is the answer of a downloader who had a closer look:

...Thanks!

14. Aug 2002 - Problem: Layout Painter and Layout Manager behave "strange" in pre-release 1.4
There's a nice bug in IE 5.5 which is the reason behind - it is solved with IE 6.0... We have found a workaround for IE 5.5 which is available in 14_build20020815. 

14. Aug 2002 - Problem: Scripting Errors when using the SUBCASAPAGE control (Release 1.4)
Please make sure that the page which you embed via this control really is a Casabac page - not "just" a normal HTML page. If you want to embed "normal" HTML pages then please use the SUBPAGE control.

13. Aug 2002 - Question: How can I align text in e.g. TEXTOUT control?
You can do so by using the TEXTOUTSTYLE-attribute. This attribute allows you to pass direct CSS-style manipulations to the control. For right-aligning text you can e.g. define "text-align: right" as value. Nearly every control provides for a corresponding STYLE-attribute. 

12.Aug 2002 - Question: Is there a way to implement adapter JAVA classes in a more generic way on the server side?
Yes, there is: an adapter class on the one hand can provide for the right set-/get-methods and on the other may support an interface IDynamicAccess. This interface contains some methods in which the property access is done generically, e.g. a property is set by the method setPropertyValue(String propertyName, Object value). Your adapter classes can use both options simultanously, i.e. some of your properties may be provided for by explicit set-/get-methods others may be provided for by the implementation of the IDynamicAccess interface.
With the use of this interface you are able to implement generic adapters for certain environments. Typical example: a generic database table maintenance in which the set of fields which are available depend from the table which is currently maintained.

Question: What is the technology on serve side?
The server side processing bases on a Casabac runtime environment which is completely written in Java. It plugs into the http-protocol by internally serving as servlet within a servlet engine. Tomcat is used as standard delivery environment but any other is possible of course, too.

Licensing: What does "active user" really mean?
An "active user" is one who is logged on to the server.
Example: the server is used as GUI server in front of a business application. The business application itself has 200 named users, i.e. users who hold a userid inside the business system. 60% of the named users are actually logged on via the GUI server. The number of active users is 120.

Question: Is this really only HTML with JavaScript in the front?
Yes, it is! There is no other technology used on client side - no ActiveX, no Java-applets.

Question: I want to open up a word document inside my page. How to do?
You either must have Word or the Word Viewer installed on your client. In this case you can use the "SUBPAGE" control to open up a URL inside your page. Just define as URL the word document - the browser will load word/ word viewer automatically. That's the same with Excel, Acrobat Reader (pdf), AutoCAD Volo Viewer, etc. etc.
(I do not open up the debate if this is a good thing or an evil thing - everyone knows that this is quite platform dependent. So I keep quiet!)

Question: Can I use my own Tomcat installation?
Yes, you can, but of course must configure Tomcat accordingly. The installation documentation tells you what you have to do.

Probem: (Very) slow responses, already checked Proxy settings
The typical response on clicks when going through the demo scenarios should be "immediately". Problems with slow responses typically occur if your Proxy settings of the browser are not correctly set up. If you already checked this:
We in one case experienced slow responses - and also found the reason for it: in the servlet processing the http-request is passed as request object. The request object offers the method "getRemoteHost" which enables you to find out where the message comes from. This message takes a lot of time in some cases - we currently do not why. There is a patch out for release 1.1A - which avoids that the method is called with every request. It is now called only one time anymore-  the first time you logon from a browser. The patch is avilable via the normal download address.

Question: Can I use Casabac Pages with Netscape?
...not yet! The nice message is: in its current releases Netscape (Mozilla) and Microsoft IE are much closer comparing the way they implement DOM. But nevertheless: there are still some differences which we haven't sorted out yet. We are working on this.

Question: Can I add own Controls/ Tags to enhance Casabac Controls/Tags?
YES, that's the concept. It is very simple to create own controls - you of course should have some HTML and JavaScript knowledge. The specification of the control integration API is available on request.

Problem: Popups are empty
You do not use Internet Explorer >= 5.5.