[1_4-pre] *************** CODE DESIGN *************** - [todo] (Java 1.5) use Enum instead of the so-hassle-prone constant interface design pattern *************** FORMATER/PARSER *************** - [bug] parsing old LaTeX's picture-env files does not work (e.g. TeXcad) (not reproducible) - [bug] "shadow" flag not taken into account when exporting to PsTricks (not reproducible) - [bug] "F2" sometimes does not work when one wants to edit a text element - [todo] simplify FormatterFactory architecture (esp. createFormatter) so as to make it easier for developpers to build their own content-type w/o having to bother at length with obscure implementation details. This may imply : * creating an AbstractFormatterFactory, with e.g. abstract methods like createParallelogramFormatter, createEllipseFormatter,... * enforcing the need for subclasser to implement a default ElementNotSupportedFormatter * fetching the comment-string (e.g. "%" or "//") from the factory, in order to properly comment the JPIC-XML prolog - [feature] include PostScript formatter ; - [feature] support for EPIC format (that is, w/o EEPIC macros). - [feature] Pstricks : add \psstyle - [feature] implement opaque and transparent dashes in LaTeX or eepic mode, as well as dotted style. - [feature] modularize (aka plug-ins) formaters and parsers. Load installed ContentType dynamically (need own classloader); The point will be to allow users to write their own plug-in to provide a support for their own graphic elements, formatter (m4, picTeX,...), etc... ************* * MODEL ************* - [todo] Drawing and EditorKit : add a "copyListeners(Drawing src)" and ibid. in EditorKit, so that plugging a new kit/drawing from PECanvas doesn't raise the need for registered listeners to do a re-registration. - [feature] PicAttributeSet : add "equals()" method (useful for BSH) ; maybe also in AbstractElement. - [feature] init PicAttributeSet from an XML file - [todo] overstrike colour - [todo] gradient paint (need using Graphics2D.clip()) - [feature] PicGroup : add EditPointConstraint "ROTATE" to perform a rotation when calling setPoint() ; ibid. with SHEARING. - [feature] "Modify Group" mode ; add Element to group ; remove Element from group. - [refactor] create a Drawing interface on top of the current implementation of Drawing (change it to DefaultDrawing) - [feature] add static and dynamic geometric transformations. ***************** * VIEW + TOOLKIT ***************** - [feature] DockableAttributesCustomizer : in order to gray out panels or widgets which are irrelevant with the content-type of the currently active canvas, add a isSupportedAttribute(PicAttributeName) method to the ContentType interface, from where on each panels would know what field should be grayed out, if any. - [todo] multi-curves : implement support of GlobalEditPointConstraints (see mail from Vincent) - [todo] improve "shearing" transforms. Currently implemented in BSH macro only. - [todo] PicGroup : add EditPointConstraint's to manage rescaling of groups containing PicCircle's => SIMILITUDE, SCALING, SHEARING,... as well as an exception mechanism (TransformationNotSupportedException) allowing the caller to adapt its behaviour if rescaling the group is to be constrained to e.g. a similitude. - [feature] add "cutter" tool allowing to cut any shape (this would necessarily transform it into a MultiCurve) - [feature] (re)introduce the "shortened display" for texts which are too long. - [feature] View.repaint and getContainer : add the possibility for a View to have more than one hosting container (aka multi-view). - [feature] add \\pscustom-like Element ; probably requires creating a EnhancedGeneralPath supporting arcs as well as bezier curves (see Batik project) ***** * GUI ***** - [bug] rounded bracket: incorrect default values - [bug] PicGroup's action : toggle highlighting does not work when selHandler mode = GLOBAL_MODE ; should gray action in this case. - [todo] PEDrawingBoard : status bar : mouseCoord should have a fixed size - [todo] improve ergonomics of DockableToolBar : too many buttons, should implement buttons that can raise a popup menu allowing too choose aka "sub-button". - [feature] add a "copy/paste attributeSet" tool. - [feature] change JViewPort's layout so that the drawing board is center justified instead of left justified. - [feature] create a jPicEdt PNG icon (KDE/Win9x/...) - [feature] add kbd shortcuts documentation in help file (e.g. Ctrl+F6 for switching between internal frames) - [feature] could someone localize the on-line help file ? - [feature] Create a lightweight version of PECanvas and EditorKit for displaying drawings only (i.e. w/o editing capabilities but zoom) ; this could be adapted from jpicedt.test.*; ================================================= Guidelines : please use following keywords only : - [bug] : known-bug. Please add BUG ID from sourceforge bug-tracker if available. - [todo] : code needs improvement in order to obtain better functionning (e.g. UI performance, ...) - [refactor] : code needs refactoring in order to improve either human-readability or future extension capability. - [underway] : work is underway, works ok, but need improvement. - [feature] : user or developper requested feature. Developper may add her/his own name as soon as she/he started undertaking corresponding task.