On Feb 20, 2009, at 1:35 PM, Dan Miron wrote:
Guys, this is what I'm thinking of after
reading your proposals:
- the macro to look like {{icon name="smile" /}}, thus having a
mapping
between the name parameter and the image file
- having a base set of icons from the silk icon set
- allowing plugging in other icon sets, too
+1
So, there you have a sketch on how the macro
would look like:
class IconMacro implements Macro {
List<Block> execute(IconMacroParameters parameters) {
Map resources = getResourcesMap();
return new ImageBlock(resources.get(parameters.getName()));
}
I'd rather use a IconResourceSet component.
You create one implementation called SilkIconResourceSet and register
it with a "silk" hint.
Shouldn't the implementation rather be DefaultSkinIconResourceSet and we
configure the path and extension for silk in the component description ?
I don't see what can be specific to silk here.
Jerome
You make IconMacro impelment Initializable, Composable and in
initialize() you lookup all components implementing IconResourceSet
and you build your map with them.
-Vincent
Map getResourcesMap() {
// uses IconResourceDiscoverer to dinamically build the icon set
and the mapping between names / icon URLs
}
}
class AbstractIconResource {
public abstract Map<String, URL> getResourcesMap();
}
class DefaultIconResource extends AbstractIconResource {
// gets the the default icon set from silk
// .....................
}
//singleton class
class IconResourceDiscoverer {
public Map<String, URL> loadIcons() {
foreach (Class c which extends AbstractIconResource) {
c.getResourcesMap();
}
return all the grabbed resources;
}
}
- optionally, we can put the IconResourceDiscoverer and the
DefaultIconResource in a component if we're going to need using
icons in
other features too.
- if we want to take care of the ambiguities (e.g. multiple icons with
the same name located in different icon sets) we can add an optional
parameter to the macro called "iconSet" or how else you prefer which
to
allow explicitly specifying the icon set (the default one being Silk)
Please tell me what you think, 'cause i'm keen on starting working
on it
:-)
Tnx,
Dan
Thanks
-Vincent
http://xwiki.com
http://xwiki.org
http://massol.net
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs