Hi all,
Ok, I have the UI plugin ready to go with using
swixml.jar, an extension point for plugins to extend
to get "basic" swixml usage and all is building and
running.
So a few things I would like to say regarding my
framework, then some questions.
First, I want the ability for an app to decide, via a
config file or some othe means (not yet decided) if it
is an MDI or SDI app. Because swixml has the ability
to generate applet or swing code, I am hoping to see
the ui framework I am working on to do both as well,
so if this is possible in some manner, the application
should be able to specify this as well.
When the appshell main() is called, it should be able
to read a "core" swixml xml file to build the
"initial" layout, based on mdi/sdi, applet/swing, and
so forth. The "core" layout is application definable
via the swixml xml file, allowing each application
using my framework to decide how they wish the app to
look, as well as the core plugins to provide with it.
Now here is where I am getting a little stuck. I need
each plugin to be able to specify things like menu
items, toolbar buttons, windows, etc. Is it possible
to give swixml a "snippet" of xml so that it can
render it within the already existing UI it has built?
If not, if I have something like:
<frame id="frame" title="Swixml - Action Sample"
size="360,200">
<menubar id="mb">
<menu id="mu_file" text="File">
<menuitem text="New" icon="icons/user.gif"
mnemonic="VK_N" Action="newAction" />
<menuitem text="Open" icon="icons/open.gif"
mnemonic="VK_O" Action="openAction" />
<menuitem id="mi_save" text="Save"
icon="icons/save.gif" mnemonic="VK_S"
ActionCommand="AC_SAVE" />
</menu>
</menubar>
</frame>
So, let's assume the application provides its xml that
it passes on to swixml to render. It adds action
listeners, etc at some points. Now, plugin A wants to
add a menu item to menu File, item = "Open". Does it
also need to provide the full xml like above? Or can
it simply provide something like <menuitem id=../> and
the swixml will know that it already has built a
frame, a menubar and knows to use it? Does swixml keep
track of the UI it's built.. it must if it can
programatically add action listeners and such after
its rendered the UI.
So, in a nutshell, I need to figure out how each
plugin can add "small" pieces to the UI puzzle at
runtime, as each plugin might be loaded long after the
application has started.
Also, I want to "control" the window creation within
the scope of the application by using swixml. That is
to say, my swixml plugin will get first crack at ALL
plugins that wish to add UI elements by way of swixml
xml files. I don't wish to parse them myself, but I do
wish to avoid duplicate creations, such as if two
plugins both have <menubar ..> tags, I obviously don't
want two of the same menubars if they reference the
same menubar. More so, I would like to possibly
control the menubar in such a way that plugins might
use <menubar..> and no matter what they enter, once
the first menubar is created, that's it, no more can
be added.
Incidentally, how does swixml parse the xml? My plugin
engine uses xmlpull which is extremely fast and very
small, and thus my plugin engine is only 50K in size.
With swixml being about 50K I am guessing it too uses
xmlpull?
Thanks. Look forward to resolving these issues and
more soon!
__________________________________
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.