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> System <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.