Difference between revisions of "IntelligentGroup"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Added reference to myself. Added category Impress.)
(Extended the Implementation->Live preview part.)
Line 23: Line 23:
 
*'''IG specific toolbar'''.
 
*'''IG specific toolbar'''.
 
*'''Task pane controls'''.
 
*'''Task pane controls'''.
**Style selection.
+
*:Style selection.
**Color selection.
+
*:Color selection.
**Layout selection.
+
*:Layout selection.
 
*'''Text edit pane'''.  It has to support hierarchical bullet text.  Can probably be based on the SVX outliner.  This is a top level dialog like the navigator that may be partially or completely outside the Impress application window.
 
*'''Text edit pane'''.  It has to support hierarchical bullet text.  Can probably be based on the SVX outliner.  This is a top level dialog like the navigator that may be partially or completely outside the Impress application window.
 
*'''Group frame'''.  This frame shows the outer boundary of the currently edited intelligent group.  Display of the frame can be done via the new smart tag functionality.  See the MotionPathTag in sd/source/ui/animations/motionpathtag.cxx for an example.   
 
*'''Group frame'''.  This frame shows the outer boundary of the currently edited intelligent group.  Display of the frame can be done via the new smart tag functionality.  See the MotionPathTag in sd/source/ui/animations/motionpathtag.cxx for an example.   
Line 31: Line 31:
 
*'''Import of and export''' to PowerPoint XML format.
 
*'''Import of and export''' to PowerPoint XML format.
 
*'''Shape interaction''': listen and react to changes of geometry and selection of intelligent group shape and the shapes that belong to it.
 
*'''Shape interaction''': listen and react to changes of geometry and selection of intelligent group shape and the shapes that belong to it.
**Geometry changes trigger re-layouting.
+
*:Geometry changes trigger re-layouting.
**Selection changes trigger display of frame, text edit window, all associated toolbars and other controls.
+
*:Selection changes trigger display of frame, text edit window, all associated toolbars and other controls.
*'''Live preview''' of styles, colors, layouts.  There are different possible techniques:
+
*'''Live preview''' of styles, colors, layouts.  Typically triggered by mouse over events, live preview shows, after a short delay, how a style (or color theme, or layout) would like when applied to the currently slected intelligent group or shape that belongs to one.  There are different techniques to do that:
**Use undo to restore temporarily assigned styles.
+
**Use undo to restore temporarily assigned styles: Enter an undo list action, then apply the style (or color or layout) and finally leave the list.  Execute the list undo action to revoke the changes. 
 +
**:Pro: this either works and has to be fixed if it does not (undo just has to work).
 +
**:Contra: Simultaneous changes (however unlikely) may bring undo actions out of sync.
 
**Clone the shapes, hide the original, apply style to cloned copies.  Restore old style by destroying the cloned shapes and displaying the originals.
 
**Clone the shapes, hide the original, apply style to cloned copies.  Restore old style by destroying the cloned shapes and displaying the originals.
**Represent styles as collection of property values.  While these are assigned to the shapes of an IG, remember the old values.  Restore old styles by setting the properties of the affected shapes to the stored old values. (this is what the extension is doing)
+
**:Pro: clean concept.
 +
**:Contra: cloning is said to be not very robust.
 +
**Represent styles as collections of property values.  Set the new values but remember their old ones.  Restore old styles by setting the properties of the affected shapes to the stored old values.
 +
**:Pro: simple to implement.
 +
**:Contra: setting properties to new values and back to original values may not be enough to restore previous appearance of shapes (can that really happen?).
  
 
==Team and Contact==
 
==Team and Contact==

Revision as of 13:08, 26 September 2008

Introduction

Intelligent Group(currently as working title), IG for short, aims to provide elegant graphics to illustrate user's content.

Status

The new feature is in early design phase.

Specification

Wish List

  • IntelligentGroup in Insert menu
    • A dialog that contains all kinds of graphics will pop up after hitting IntelligentGroup. Basically it is classified into seven sorts(list, process, cycle, hierarchy, relationship, matrix, pyramid). After any graphic is inserted it can provided an edit box beside it. Within the edit box user may input text he/she wants to express. At the same time the graphic ought to show the text. Additionally if user wants to add items of text that are beyond the scope of original graphics pressing ENTER once can extend the graphics by one. And user also can adapt the text by using ALT to make it in the same graphic or not.
  • IntelligentGroup Tools menu visible according to the context
    • When user finishes inserting a graphic the menu bar will extend by adding IntelligentGroup Tools which has two parts: Design and Format. Making use of them user can make any changes to the previous graphic. Design item includes “Create Graphic”, “layouts”, “IntelligentGroup Styles” and “Reset”. Format item includes “Shapes”, “Shape Styles”, “WorldArt Styles”, “Arrange” and “Size”. Meanwhile, animations can be also applied to these graphics.
  • Converting text into graphics
    • It can be a tool within tool bar. When user edits text in the edit area he/she may choose this tool to convert the text into the desired graphics. It is supposed to trigger a pop-up dialog which involves available graphics for user. It may put the text into the corresponding items of graphics automatically according to paragraph or bullets and numbering. Maybe it can only be used in Impress. For instance, input text in a slide and then select one sort of graphics in the list box to convert the text to graphics automatically.

Implementation

It is supposed to be implemented with UNO APIs.

Here is a list of the different parts that have to be taken care of.

  • Intelligent group wizard.
  • IG specific toolbar.
  • Task pane controls.
    Style selection.
    Color selection.
    Layout selection.
  • Text edit pane. It has to support hierarchical bullet text. Can probably be based on the SVX outliner. This is a top level dialog like the navigator that may be partially or completely outside the Impress application window.
  • Group frame. This frame shows the outer boundary of the currently edited intelligent group. Display of the frame can be done via the new smart tag functionality. See the MotionPathTag in sd/source/ui/animations/motionpathtag.cxx for an example.
  • Loading and saving in ODF format. This involves a change of the file format.
  • Import of and export to PowerPoint XML format.
  • Shape interaction: listen and react to changes of geometry and selection of intelligent group shape and the shapes that belong to it.
    Geometry changes trigger re-layouting.
    Selection changes trigger display of frame, text edit window, all associated toolbars and other controls.
  • Live preview of styles, colors, layouts. Typically triggered by mouse over events, live preview shows, after a short delay, how a style (or color theme, or layout) would like when applied to the currently slected intelligent group or shape that belongs to one. There are different techniques to do that:
    • Use undo to restore temporarily assigned styles: Enter an undo list action, then apply the style (or color or layout) and finally leave the list. Execute the list undo action to revoke the changes.
      Pro: this either works and has to be fixed if it does not (undo just has to work).
      Contra: Simultaneous changes (however unlikely) may bring undo actions out of sync.
    • Clone the shapes, hide the original, apply style to cloned copies. Restore old style by destroying the cloned shapes and displaying the originals.
      Pro: clean concept.
      Contra: cloning is said to be not very robust.
    • Represent styles as collections of property values. Set the new values but remember their old ones. Restore old styles by setting the properties of the affected shapes to the stored old values.
      Pro: simple to implement.
      Contra: setting properties to new values and back to original values may not be enough to restore previous appearance of shapes (can that really happen?).

Team and Contact

Mail to Liang Weike
Mail to Liu Jianli
Andre Fischer

ToDo

  • General Design

Submissions

Personal tools