Tobago 1.5 has a lot of changes compared to Tobago 1.0.
The good news: Most of these changes are made internally in Tobago. If you use Tobago, you don't have to change too much.
The amount of things you have to change in your application depends on how do you use it. On the Tobago Tag Library are very few changes made. On the Tobago Java Classes and the Themes are more changes. Here you can see which changes has been made.
There are also @Deprecated
annotations in the code and some logging warning when using deprecated
code via the Deprecation logging category. Before migrating you should check your application about that.
For the migration phase you may add the tobago-deprecation.jar as dependency to your project. It contains
classes that has been moved (e. g. to the new internal
package) or removed. So you can resolve any
migration steps step by step. It is not recommended to use the tobago-deprecation.jar for production.
The new internal
package contains classes that should not be used directly in an application. This
classes may change in minor revisions without announcement. Classes in the renderkit
package a
handled in the same manner.
The main changes in the tag library are
<tc:menuCheckbox>
<tx:menuCheckbox>
<tc:menuItem>
<tc:menuCommand>
<tc:message>
<tc:messages>
In <tc:sheet>
the default for rows
has been changed from
100 to 0, which means "unlimited".
For JSP and the tx:
library all id
attributes have to be renamed to
fieldId
. This is to adjust the JSP library to the Facelet library.
The tree tag <tc:tree>
has changed comprehensive. Please check the
documentation and demo examples.
The type
attribute of commands has been removed. It is no longer needed, when using
action
, onclick
or link
.
On of the basic changes in Tobago 1.5 is the reimplementation of the layout manager. The usage if it, has only
been changed a bit. The most important is that the constraints will be set with the
<tc:gridLayoutConstraint>
tag. The
<tc:cell>
tag is deprecated now. Spans can be set directly into the
component with the <tc:gridLayoutConstraint>
tag.
The keyword "fixed" has been renamed to "auto".
Some of the UIComponent classes has been renamed or restructured, to get a consistent naming schema. The used
UIComponents where generated and have super classes with an "Abstract" as prefix. All getters and setters are
generated in the UIComponent classes. The following code will not work in 1.5
uiComponent.getAttributes().remove("attributeName")
. Please set the value to null.
old name: org.apache.myfaces.tobago.component.UISelectOne
new name: org.apache.myfaces.tobago.internal.component.AbstractUISelectOneBase
UITab is now a naming container, so you may have to change ids of AJAX calls in your application.
The class org.apache.myfaces.tobago.OnComponentCreated
is moved to
org.apache.myfaces.tobago.component.OnComponentCreated
.
The class org.apache.myfaces.tobago.component.ComponentUtil
is moved to
org.apache.myfaces.tobago.util.ComponentUtils
.
The class org.apache.myfaces.tobago.renderkit.RenderUtil
is moved to
org.apache.myfaces.tobago.renderkit.util.RenderUtils
.
The class org.apache.myfaces.tobago.renderkit.html.HtmlRendererUtil
is renamed to
org.apache.myfaces.tobago.renderkit.html.util.HtmlRendererUtils
.
Note: This effects your application only, when you've written your own theme, or using this classes in a separate style file.
The basic changes in CSS are:
The CSS class name schema has been revised. See the JavaDoc of the Classes
class to check the
naming schema.
tobago-[tagName]-default
tobago-[tagName]
tobago-[tagName]-error
tobago-[tagName]-markup-error
tobago-[tagName]-required
tobago-[tagName]-markup-required
tobago-[tagName]-readonly
tobago-[tagName]-markup-readonly
tobago-[tagName]-disabled
tobago-[tagName]-markup-disabled
tree-junction
tobago-treeNode-junction
tree-*
tobago-treeNode-*
tobago-input-picker
tobago-datePicker-icon
tobago-popup-iframe
tobago-popup-ie6bugfix
tobago-textArea-*
tobago-textarea-*
tobago-progress-color1-*
tobago-progress-value-*
The class tobago-progress-color2-*
is deleted.
The JavaScript API has been refactored. Most application do not use the Tobago JavaScript API directly. But if it does, you have to apply some changes.
The most important things, is the additional first parameter on the submitting functions to compute the position of the action element.
If you are using submitAction()
in the old code, you have to add the action element or just
null
. If you are using submitAction2()
in the old code, you have to rename it to
submitAction()
.
added first parameter and put all parameters after the second to an options map
submitAction()
renamed
submitAction2()
submitAction()
added first parameter
openPopupWithAction()
renamed
openPopupWithAction2()
openPopupWithAction()
added first parameter
reloadComponent()
renamed
reloadComponent2()
reloadComponent()
added first parameter
Updater.update()
renamed
Updater.update2()
Updater.update()
added first parameter
Sheet.reloadWithAction()
renamed
Sheet.reloadWithAction2()
Sheet.reloadWithAction()
added first parameter
TabGroup.reloadWithAction()
renamed
TabGroup.reloadWithAction2()
TabGroup.reloadWithAction()
To define an own theme, please use now a file tobago-config.xml
instead of
tobago-theme.xml
.
The content of tobago-theme.xml
is a subset of the tobago-config.xml
, you have only to
change the root node.
Please use the
The renderers must now declared inside the faces-config.xml
.
For the Tobago classes, this will be generated at compile time from annotations like in e. g.
org.apache.myfaces.tobago.internal.taglib.component.BoxTagDeclaration
.