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
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ņš <valdis.vitolins(a)odo.lv>
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 <zhihua25(a)gmail.com>
> 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
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users