mn... I think it works for me. Thanks for your advice. P.S. They implement class, why not inheritance? 2014/1/7 Valdis Vītoliņš <[email protected]>
If you add different objects from several classes to XWiki document, common problem is that for document representation sheet of first found class is used. Therefore for composite objects you need to add XWiki.DocumentSheetBinding object which points to sheet document, with content like this (not tested!): {{velocity}} #set($obj1=$doc.getObject('Space.Obj1Class')) #set($obj2=$doc.getObject('Space.Obj2Class')) ... #if($obj1) #set($class1=obj1.xWikiClass) #foreach($prop in $class1.properties) |$prop.prettyName|$doc.display($prop.getName($obj1)) #end #end ... #if($obj2) ....
Look at http://extensions.xwiki.org/xwiki/bin/view/Extension/Sheet+Module for more. Note that you can save all these objects in specific template.
Valdis
hi,
Thanks for your answer. Currently I am using a set of classes to represent my data, for display part they just need to directly show the properties. If I use composit, for the common part I need to identify if it's common, and there will be some "if-else" in each of the subclasses.
I just wandering if we can have some auto-load, so that I don't need to use "if-else" everywhere, and it will be easy to maintain, just like the inherited class.
2014/1/5 Valdis Vītoliņš <[email protected]> If you mean these classes defined in class editor defined in .../xwiki/bin/view/XWiki/XWikiClasses AFAIK these doesn't support extension.
So, you need to use composition instead. Add object with type of the common class, and for few other documents add another object with type of "extended" class.
You will need to adjust class sheet object to display fields of other tyepe of objects also (look at http://extensions.xwiki.org/xwiki/bin/view/Extension/Sheet +Module )
Valdis
> hi, > > the Class I mean is XClass, which is used in Wiki pages. > > thanks, > B.R./ZZH > > > 2014/1/5 Zhihua Zheng <[email protected]> > > > hi all, > > > > I have couple of classes they are similar, most of them are the same, but > > some small parts are different. So that I want to use a arch that there is > > a common class holds all the common properties, and the real classes are > > inherited from the common. > > But how to achieve that? > > > > thanks! > >
> _______________________________________________ > users mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users