Re: Refection vs Code Generation

Kevin Duffey <[email protected]>
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
Question, when you "extend" swixml, is it done via xml
declaring the extending classes, or is it
programatically done at runtime before/after the
swixml engine is started and loads xml uis?

--- Lutz Neumann <[email protected]> wrote:
> Yes as Kate said, background="WHITE" works for sure,
> background="Color.WHITE" does not (by the way -
> background="xxx, xxx,
> xxx" works also.)
> Because SwixML includes the Color class as a
> constant provider, all
> predefined colors will work this way.
> Have a look at PrimitiveConverter.java to see all
> included providers.
> 
> If you have special needs you can always register a
> new provider like:
> 
>    
> PrimitiveConverter.addConstantProvider(Font.class);
> 
> .. and use PLAIN, BOLD, ITALIC, ...
> 
> If you want to use system colors (as I do), try the
> following:
> 
> import javax.swing.*;
> 
> import org.jdom.Attribute;
> import org.swixml.Localizer;
> import org.swixml.converters.ColorConverter;
> 
> /**
>  * Extends SwixMLs ColorConverter to use system
> colors.
>  * 
>  * @author Lutz Neumann
>  */
> public class ExtColorConverter extends
> ColorConverter
>     {
>     public Object convert(Class type, Attribute
> attr, Localizer localizer)
>         {
>         if (attr.getValue().startsWith("UIColor."))
>             {
>             return
> UIManager.getColor(attr.getValue().substring(8));
>             }
>         if (attr.getValue().startsWith("Color."))
>            
> attr.setValue(attr.getValue().substring(6));
>         return super.convert(type, attr, localizer);
>         }
>     }
> 
> Register it with:
> 
>        
> ConverterLibrary.getInstance().register(Color.class,
> new ExtColorConverter());
> 
> Now you can use
> foreground="UIColor.activeCaptionText",
> background="UIColor.Button.background", etc. - even
> "Color.WHITE"
> works ;-).
> 
> Hope this helps,
> 
> -Lutz
> 
> 
> 
> > I agree about extending attributes needing to be
> more obvious. I think 
> > this is mostly a documentation issue although I
> haven't actually tried it.
> 
> > The biggest problem with things like new 
> Color(xxx, xxx, xxx) as an 
> > attribute value is that there are just too many
> possibilities that 
> > people would want  and too little time to code
> them all. I think the 
> > best approach is to do the main ones (see below)
> and just really 
> > document how to extend it. Plus get this all the
> things like this into a 
> > plug-in archictecture (old discussion see
> archives) so that we can all 
> > contribute our little bits to the whole.
> 
> > While Color.WHITE may not work I *think* that
> WHITE does. I think all 
> > the Color.xxx have been implemented.  But, it's
> been a while since I 
> > tried that I just remember it working and not
> having to specify hex vals.
> 
> > -Kate
> 
> 
> _______________________________________________
> Forum mailing list
> [email protected]
>
http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com


__________________________________
Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.
http://taxes.yahoo.com/filing.html
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.