Hi Asiri,
On Thu, Apr 2, 2009 at 9:10 AM, Asiri Rathnayake <asiri.rathnayake(a)gmail.com
wrote:
Hello Devs,
I have been working on implementing document splitting functionality in
office importer for last two weeks. Currently it's working nicely but
before
it can be integrated into our main source tree there are few things we need
to agree upon.
1. New UI of the office importer application.
2. Design of the splitting functionality.
Apart from above two topics, I need a good suit of tests as well (working
on
it).
== Current UI ==
Screenshot:
http://i41.tinypic.com/2h4i1s9.jpg
As you can see, there are new options for appending content into an
existing
page plus performing the split operation. Since I'm not a HCI expert I'm
pretty sure some of the aspects of this UI need to be changed. So your feed
back is very important on this :)
Laurent is scheduled to work on this during the course of the project. I
think he'll get back to you on the topic.
Guillaume
== Current Design ==
UML Diagram:
http://i42.tinypic.com/345bxhw.png
There are two things I need to discuss with this design.
1) I'm using WikiDocument objects to buffer / collect XDOM fragments that
represent newly split documents. This allows me to associate names,
parents,
titles etc. with corresponding XDOM structures so that after the split
operation I can save them as wiki pages. As you can see, WikiDocument is
kind of a model object that should be replaced when the new model component
is available. Still, I'm not sure if the idea of WikiDocument should be
avoided even at this point.
2) DocumentSplitter is not a component interface. I had to do this because
HeadingLevelDocumentSplitter has internal state and I couldn't think of a
way to make it a component. However I can make it a component by
abstracting
out the split criterion from the document splitter as described in next
(alternative) design.
== Alternative Design ==
UML Diagram:
http://i39.tinypic.com/28k24w4.png
Here I have abstracted out the split criterion from the document splitter.
The DefaultDocumentSplitter will recurse through the main XDOM asking
SplitCriterion and NamingCriterion to take care of the splitting operation.
I think this design is more reusable than the first design. WDYT?
If you have any comments regarding these topics, please let me know.
Thanks.
- Asiri
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Guillaume Lerouge
Product Manager - XWiki
Skype ID : wikibc
http://guillaumelerouge.com/