Swing pluggable application framework to use Swixml

[email protected]
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
Hi all,

This would be my first post to this group. I'll give a
brief background of what we are working on and more
detail of how we would like to try to use Swixml if
possible, with a few questions that hopefully some on
the list can answer.

I have been developing a generic plugin engine similar
to the eclipse engine, only smaller in scope and
features, although still a very capable and powerful
engine. In a nutshell, it allows any application, gui
or not, to add a very small 50K (presently) jar that
gives the application immediate pluggable
capabilities. The engine supports dynamic
load/unload/reload of plugins at runtime, automatic
dependency resolution at load time of each plugin,
works on the premise of extension points and
extensions like Eclipse only not as robust (no xml
schema support, but dynamic xml is supported), adds an
event/listener automatic configuration, and each
plugin can be an exploded directory or in its own
plugin archive file complete with embeddable libraries
that do not have to be unzipped to be used. You can
add specific plugin class types to be allowed loaded,
specify different file extensions for plugin archive
files, multiple URL locations to find plugins at and
(eventually) auto-watch locations for updates. The
engine is highly configurable, has an embeded xml pull
parser and presently the size is 54K (with debug
info).

Now to the usage with Swixml. I am also very
interested in providing a highly reusable Swing UI
framework built around my plugin engine, so that any
developer using it can quickly add plugins that extend
existing extension points and get immediate reuse of
several components as well as the UI framework which
will provide menuitem/toolbar button integration,
hopefully a "perspective" paradigm where by a button
can be configured to "switch" views/editors on screen,
and if all goes well, a tabbable drag/drop window
hierarchy where by every window is derived from our
internal window types so they can easily be
dragged/dropped onto one another to form a tabbable
layout like Eclipse IDE does. This also allows the app
to use MDI or SDI at will.

Presently I have a "core" UI plugin that provides
menuitem/toolbar button integration so that any plugin
can provide a bit of dynamic xml that specifies the
menu name, the path, the Action class in the plugin to
handle clicks, etc. This works great, but it means I
have a lot of work to render the UI still.

What I was hoping is somehow to use Swixml in a manner
to render the UI. What I need the ability to do is
provide my "proxy" event listener that is added to ALL
menu items and toolbar buttons so that when first
clicked my special proxy code is able to figure out
the plugin that provided the menuitem or toolbar
button, grab its action listener class, create it
(thus creating the plugin at that time) and then
forward the event on to the plugin's action listener
class. More so, it then "replaces" the proxy listener
at that time with the now created plugin listener
class. From then on all clicks go directly to the
plugin handling it.

My thought is wrapping the swixml.jar and each plugin 
would then provide a second .xml file for Swixml.
Somehow my swixml plugin wrapper has to take the
provided swixml xml for each plugin, pass that to
swixml to render the UI but "intercept" the handler
class passed to swixml and ALWAYS pass it's own proxy
actionlistener.

Is this sort of thing possible, and if so, can you
provide some example code perhaps on how in code I
would set the action listene class of a menu item or
toolbar button?


Lastly, my UI framework is to provide a number of
components, such as a new file chooser dialog, wizard
component, help system (JavaHelp), preference dialog
and other widgets (outlook style task bar, status bar,
etc). Is there a way that swixml allows integration of
components to be used such that defining them within
swixml xml files is possible?

Thanks.

__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.