Frequently Asked Questions
General question
-
What is Swingweb?
Swingweb is an implementation of AWT toolkit that enables AWT/Swing application to operate inside
a web container and presented as a web application to the web browser, purely in HTML/CSS/javascript/ajax.
There's no code conversion required for the swing application to run in the Swingweb
environment.
- What are the goals of Swingweb?
The main goals of Swingweb are to:
- allow the use of swing UI model for web application development
- save development cost by merging the development process of swing desktop application and web application
- enable rapid development using existing GUI editors for web application development
- promote true component-based platform to maximize code reuse
- What components are supported by Swingweb?
Swingweb supports most AWT and Swing components in jdk (you can check out
the list). Hypothetically Swingweb should also
support SWT components too through the SWTSwing runtime by chrriis
(http://sourceforge.net/projects/swtswing), but it hasn't really tested with SWTSwing yet.
- What component layouts are supported by Swingweb?
Practically any standard layout in the jdk and even
the custom layout written by anyone. This is because
Swingweb uses the sizes and positions of the components
as laid out by the application layout manager to calculate the
required table-based representation. So for any layout
that works in swing, it will work on the web.
- How compatible is Swingweb with different
browsers?
The compatibility lies in the
component template set (a collection of templates for
components) implementation. For HTML/javascript, the default component
template set in Swingweb distribution ("common"
template set) is tested mainly against mozilla,
mozilla-firefox and IE6. The hope, for future, is to
have developers to develop different base component
template set that utilize different advanced features
in different browser platforms. As for Ajax, Swinbweb uses GWT (Google Web Toolkit)
which should support as many platforms as GWT
- Is it easy to change the html that is used to
render a particular component to the
browser?
The architecture of Swingweb is
purposely geared for web application development.
Each component is rendered through a jxp template
that contains html/java code that produces the final
output to the browser. You can configure any
component to be rendered by a template that you wrote
to customize how a component will look like in the
browser.
- How different is Swingweb Vs MVC framework like
jsp, struts, jsf
The main difference is
Swingweb application is inherently stateful. Most
of the framework like jsp, structs are stateless
and try to achieve statefulness in a hard way.
But Swingweb application, like a desktop
application is inherently stateful. The advantage is it
will be easier to develop and the application model
becomes more manageable
- What are the other similar platform and how does
Swingweb compare to them?
There are quite a
bit of similar platforms. The primary similar platforms (which uses swing
component model) are
- WebOnSwing
- an opensource project by Fernando Petrola (seems discontinued)
- WebCream
- commercial product since 1999
And some other similar platforms that uses proprietary component model:
- Echo Web Application Framework
- Millstone
- W4
- Can Swingweb application be integrated within
existing web pages?
The input and rendering
of an application is totally controlled by java code
(SwingWebAppManager) so it is possible to integrated
Swingweb application inside any site pages that
support java (e.g. embed swing application inside
your jsp page)
- What version of JDK does Swingweb support?
Swingweb supports jdk 1.4 and jdk 1.5. Older version of jdk is not tested.
- How scalable is Swingweb platform?
There's no official benchmark yet. But Swingweb tries to improve
the scalability by using several techniques including
lightweight component peers, threadless event queue and lightweight repaintmanager
to increase performance and scalability.