Re: Re: SwiXML robustitude
Wolf Paulus <[email protected]> Fri, 14 Jan 2005 10:43:15 -0800
| Newsgroups | gmane.comp.embedded.carlsbad-cubes |
|---|---|
| Message-ID | <[email protected]> |
Hi Chuck, Good suggestions you are making here. Allowing to register Actions etc. would also help to decouple and enable to have Actions implemented elsewhere but as inner classes. I will keep this idea in the top 10 of things to do for the next distribution. Wolf -- Wolf Paulus [email protected] C a r l s b a d C u b e s Dedicated to Excellence On Jan 14, 2005, at 7:51 AM, Chuck Dillon wrote: > Frank Meissner wrote: >>>> >>>>> Q5) How well does it support GUI glue functionality? ... Can >>>>> object A reference object B in the XML? >>>> >>>> This is not a builitin facility in swixml. You may try to solve >>>> this through >>>> custom converters, but I'm not sure whether this is possible... >>> >>> Unfortunate, it would be a powerful feature. >> But not that easy to implement if the requirements are somewhat >> advanced. E.g. I had the problem I wanted to disable a button if the >> number of lines is less than one. This is not that trivial >> (describable in XML) but perhaps it's out of your intended scope... > > Let me preface the following comments with admitting I'm basing them > on limited information about SwiXML. I've been looking at the samples > and browsing the JavaDoc. But since I can't find any detail > functional description of it's capabilities I'm assuming what's in the > samples is what there is. > > From the samples it appears the XML references Java Objects by name > using tags like "id" and "action". This direct reference by name is a > useful feature but if it is the only way to bind the XML to the code > it is too limiting IMHO. It forces me to mirrow the GUI structure > with Java code which has marginal utility. What is needed is an > indirect way of referencing objects so that I don't need Java code > that shadows the GUI structure. I want to be able to build the > majority of my action code so that it can be applied to the GUI by > indirect reference so that my business logic is as agnostic as > possible about the GUI. > > What I'm suggesting is that the engine needs an indirect way to > revolve what tags like "id" and "action" are referring to. I envision > the SwingEngine class (or something within) to have a methods like: > - registerActionClass(String nameToBeUsedInXML,Class class) > - registerActionInstance(String nameToBeUsedInXML,AbstractAction > action) > - registerDataObject(String nameToBeUsedInXML,Object object) > Then I can create an action class or instance or a data object, > register it and use it whereever I want in the GUI. I'm not seeing > this kind of capability. Is it there? > > Another powerful feature would be a means of specifying data to be > passed to actions in the XML. The API could, for example, include an > extension of ActionEvent that carries a payload of data defined in > XML. It could be as simple as a Properties object. > > In the Java code I do: > engine.registerActionClass("changefg",ForegroundChanger.getClass()); > engine.registerDataObject("blue",Color.blue); > In the XML I specify a button: > <solelabel Foreground="green">Some Label</label> > <button enabled="true" Action="changefg(somelabel,blue)"/> > > The action declares that an instance of "changefg" class should be > created and a reference to the "somelabel" label and the "blue" data > object should be passed to it via a SwiXMLActionEvent, or some such. > > The above wouldn't be difficult to implement. What's needed is a few > hashes, a definition of the precedence of each possible class of > things that can be referenced and logic to do the lookups in order of > precedence. The event could simply hold a Properties object or a hash > containing the objects declared in the XML and what they resolved to. > > It's also useful to allow declaration of multiple action handlers. > > One last, extrememly useful, feature would be to add Swing object > create time actions... > <button enabled="true" Action="whatever" Create="registerAsAThingy"/> > The Create attribute is like Action except that it gets "fired" > immediately after the button is created. What this does is saves the > applications code from having to lookup a bunch of GUI objects by > name. It reduces the direct litereal String references in the Java > code and can save a lot of code. > > >>> >>> How does SwiXML support things like radio button groups without such >>> a utility? >> Groups of radio buttons *are* supported. There is no magic (or, at >> least, not much ;)) ... > > So in XML I can declare a container with CheckBoxes in it. And IN XML > I can declare a ButtonGroup and the CheckBoxes I want it to control. > As separate XML declarations? IOW, in the ButtonGroup declaration I > can reference the CheckBox objects declared elsewhere in XML? > > Thanks for the information. Sorry if all of the above is already > there and I'm just missing it. > > -- ced > >> Frank > > > -- > Chuck Dillon > Senior Software Engineer > NimbleGen Systems Inc. > > > _______________________________________________ > Forum mailing list > [email protected] > http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com