[[BackLinksMenu]] [[TicketQuery(summary=PAGE_STRUCTURE_DISPLAYING_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == The page structure palette shows a tree of all the objects on current page. == Task requirements == * Create a Page Structure palette in the Pages tab, which is in the left flap. * Create a tree, according to the following requirements: * The root node of the displayed tree should be the current page. * Children nodes: * Non grouped frames (display the name, for example "Frame A") * Top-level groups * Groups are represented as a tree of frames and subgroups. * Children of frames are their resources. * Children are arranged by their Z-order, starting from highest (front-most). * For this revision it is not required the tree to allow editing. * When the user selects something on the page it is selected in that tree and vice versa. //TODO: also in the resource palette, but we should change the way items are selected * When the user switches to another page/book, the palette is automatically updated. * In next revisions nodes should have icons - for page, text, image, video, group, etc. * The tree should allow expanding/collapsing of subtrees. * TODO: things to consider ?????? * templates - in Sophie 1 they are represented too, but in Sophie 2 they are different * chaining (how to display it?) * links, timelines, ... == Task result == The result of this task is source code. == Implementation idea == * Create a new {{{PanelPalette}}}. * Use Swing's JTree control. == Related == == How to demo == * Open the page structure palette. * Insert a new text frame and show it in the tree. * Insert a new image frame and show it in the tree. = Design = * Class {{{PageStructurePalette}}} * extends {{{PanelPalette}}} * in {{{org.sophie2.main.app.layout.left.pages}}} = Implementation = ^(Implementation results should be described and linked here (from the wiki or the repository))^ = Testing = = Comments = ^(Write comments for this or later revisions here.)