Skip to content

Latest commit

 

History

History
566 lines (429 loc) · 25 KB

ReleaseNotes.md

File metadata and controls

566 lines (429 loc) · 25 KB

Piccolo2D 3.0 Release Notes


Major changes:

The minimum JDK version is now 1.6.

JDK 1.6-only modules jdk16 and jdk16-examples have been merged to core and examples respectively.

Piccolo2D.Java version 3.0 is not binary compatible with version 1.3.x or version 2.x.

Fixed and verified issues:

Issue 166 (on Google Code) Refactor PNode.moveToBack() and related
Issue 190 (on Google Code) Move to version 1.6 as minimum JDK requirement for piccolo-core
Issue 252 (on Google Code) Merge build-related changes from trunk to branches/3.0-spike

Piccolo2D 2.0 Release Notes


Major changes:

The root package name for Piccolo2D.Java is now org.piccolo2d to match the project domain name.

The minimum JDK version is now 1.5.

JDK 1.6-only code has been added to new modules jdk16 and jdk16-examples.

Piccolo2D.Java version 2.0 is not binary compatible with version 1.3.x.

Fixed and verified issues:

Issue 33 (on Google Code) PSwing components not visible in testing frameworks
Issue 37 (on Google Code) change namespaces to piccolo2d,
Issue 86 (on Google Code) inconsistencies of position method in PNode
Issue 135 (on Google Code) Constants are not constant in the core.
Issue 136 (on Google Code) PNotificationCenter is a singleton but isn't declared as final
Issue 152 (on Google Code) Refactor PPath to use Path2D on JDK 1.6+
Issue 153 (on Google Code) PArea, a wrapper for java.awt.geom.Area to allow Constructive Area Geometry (CAG) operations
Issue 172 (on Google Code) Add getRoot method to POffscreenCanvas
Issue 177 (on Google Code) When deleting a selected node using the keyboard DEL a selection change is not fired
Issue 180 (on Google Code) Drawing tears when dragging or resizing path nodes
Issue 186 (on Google Code) Create a new package org.piccolo2d.examples.bugs or .issues
Issue 236 (on Google Code) Add zoom event handler that responds to mouse wheel events
Issue 251 (on Google Code) Merge build-related changes from release-1.3 branch to trunk

Piccolo2D 1.3.2 Release Notes


Fixed and verified issues:

Issue 134 (on Google Code) PTransformActivity can throw null pointer exception
Issue 207 (on Google Code) Horizontal scrolling causes an exception
Issue 208 (on Google Code) Merge maven reporting plugin versions to parent pom
Issue 211 (on Google Code) Consider using Sonatype oss-parent-7.pom as the parent of parent/pom.xml
Issue 224 (on Google Code) Update maven-site-plugin version to 3.0, remove maven-3 profile
Issue 229 (on Google Code) Consider updating maven-checkstyle-plugin to version 2.8
Issue 230 (on Google Code) Add link to Autocad DXF File Viewer on applications page
Issue 231 (on Google Code) Mistake in java doc comment
Issue 235 (on Google Code) PSwingEventHandler doesn't dispatch events to nodes at extreme scales
Issue 242 (on Google Code) Typo in API docs
Issue 250 (on Google Code) Update junit dependency version to 4.11

Piccolo2D 1.3.1 Release Notes


Fixed and verified issues:

Issue 163 (on Google Code) PSwing doesn't draw dynamic JComponent properly
Issue 173 (on Google Code) Slow repaint of PSwing components when zooming (from 1.2 to 1.3)
Issue 185 (on Google Code) Memory leak - PActivityScheduler keeps processed activities in reference
Issue 187 (on Google Code) general shapes are not filled correctly under SWT
Issue 188 (on Google Code) wrong line width when drawing general shapes under SWT
Issue 195 (on Google Code) testPSwingDelegatesPaintingToItsComponent(edu.umd.cs.piccolox.pswing.PSwingTest) fails on release-1.3 branch
Issue 197 (on Google Code) Maven site does not run reports from the command line with maven 3
Issue 203 (on Google Code) Missing maven profile for Windows x86_64
Issue 206 (on Google Code) SWTGraphics2D keeps invalid caches
Issue 212 (on Google Code) Update maven-gpg-plugin dependency version to 1.2

Piccolo2D 1.3 Release Notes


Major changes:

Piccolo2D.Java now builds with Apache Maven instead of Apache Ant. See Issue 6 (on Google Code), Issue 28 (on Google Code), Issue 29 (on Google Code), Issue 38 (on Google Code), Issue 44 (on Google Code), Issue 51 (on Google Code), Issue 52 (on Google Code), Issue 98 (on Google Code), Issue 104 (on Google Code), Issue 108 (on Google Code), Issue 109 (on Google Code), Issue 126 (on Google Code), Issue 128 (on Google Code), Issue 146 (on Google Code).

SWT support was refactored from extras into its own module and SWT examples were refactored from examples into their own module. See Issue 68 (on Google Code), Issue 125 (on Google Code), Issue 126 (on Google Code), Issue 143 (on Google Code), Issue 145 (on Google Code).

Many Checkstyle, PMD, and FindBugs errors and warnings have been fixed. Unit test line coverage has been increased to 48%.

Fixed and verified issues:

Query: Milestone:1.3,status=Verified

API changes to core:

  • edu.umd.cs.piccolo.PCamera: Method 'public void repaintFromLayer(edu.umd.cs.piccolo.util.PBounds, edu.umd.cs.piccolo.PNode)' has been deprecated
  • edu.umd.cs.piccolo.PCamera: Method 'public void repaintFromLayer(edu.umd.cs.piccolo.util.PBounds, edu.umd.cs.piccolo.PLayer)' has been added
  • edu.umd.cs.piccolo.PCanvas: Added public field INTERACTING_CHANGED_NOTIFICATION
  • edu.umd.cs.piccolo.PCanvas: Added public field PROPERTY_INTERACTING
  • edu.umd.cs.piccolo.PCanvas: Method 'public int getAnimatingRenderQuality()' has been added
  • edu.umd.cs.piccolo.PCanvas: Method 'public int getDefaultRenderQuality()' has been added
  • edu.umd.cs.piccolo.PCanvas: Method 'public edu.umd.cs.piccolo.event.PInputEventListener.md getInputEventListeners()' has been added
  • edu.umd.cs.piccolo.PCanvas: Method 'public int getInteractingRenderQuality()' has been added
  • edu.umd.cs.piccolo.PCanvas: Method 'public int getNormalRenderQuality()' has been added
  • edu.umd.cs.piccolo.PCanvas: Method 'public void printAll(java.awt.Graphics)' has been added
  • edu.umd.cs.piccolo.PNode: Added public field FILL_STRATEGY_ASPECT_COVER
  • edu.umd.cs.piccolo.PNode: Added public field FILL_STRATEGY_ASPECT_FIT
  • edu.umd.cs.piccolo.PNode: Added public field FILL_STRATEGY_EXACT_FIT
  • edu.umd.cs.piccolo.PNode: Method 'public PNode(java.lang.String)' has been added
  • edu.umd.cs.piccolo.PNode: Method 'public edu.umd.cs.piccolo.activities.PActivity animateToRelativePosition(java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Rectangle2D, int)' has been added
  • edu.umd.cs.piccolo.PNode: Method 'public edu.umd.cs.piccolo.event.PInputEventListener.md getInputEventListeners()' has been added
  • edu.umd.cs.piccolo.PNode: Method 'public java.lang.String getName()' has been added
  • edu.umd.cs.piccolo.PNode: Method 'protected java.lang.String paramString()' has been deprecated
  • edu.umd.cs.piccolo.PNode: Method 'public void position(java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Rectangle2D, int)' has been deprecated
  • edu.umd.cs.piccolo.PNode: Method 'public void setName(java.lang.String)' has been added
  • edu.umd.cs.piccolo.PNode: Method 'public java.awt.Image toImage(java.awt.image.BufferedImage, java.awt.Paint, int)' has been added
  • edu.umd.cs.piccolo.PNode: Method 'public java.lang.String toString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.POffscreenCanvas: Class edu.umd.cs.piccolo.POffscreenCanvas added
  • edu.umd.cs.piccolo.PRoot: Added public field PROPERTY_CODE_INTERACTING_CHANGED
  • edu.umd.cs.piccolo.PRoot: Added public field PROPERTY_INTERACTING_CHANGED
  • edu.umd.cs.piccolo.PRoot: Method 'public boolean getInteracting()' has been added
  • edu.umd.cs.piccolo.PRoot: Method 'public void setInteracting(boolean)' has been added
  • edu.umd.cs.piccolo.activities.PActivity: Method 'protected java.lang.String paramString()' has been deprecated
  • edu.umd.cs.piccolo.activities.PActivity: Method 'public java.lang.String toString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.activities.PActivityScheduler: Added java.io.Serializable to the set of implemented interfaces
  • edu.umd.cs.piccolo.activities.PColorActivity: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.activities.PInterpolatingActivity: Method 'public PInterpolatingActivity(long)' has been added
  • edu.umd.cs.piccolo.activities.PInterpolatingActivity: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.activities.PTransformActivity: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.event.PBasicInputEventHandler: Method 'protected java.lang.String paramString()' has been deprecated
  • edu.umd.cs.piccolo.event.PBasicInputEventHandler: Method 'public java.lang.String toString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.event.PDragEventHandler: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.event.PDragSequenceEventHandler: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.event.PPanEventHandler: Method 'public double getMaxAutoPanSpeed()' has been added
  • edu.umd.cs.piccolo.event.PPanEventHandler: Method 'public double getMinAutoPanSpeed()' has been added
  • edu.umd.cs.piccolo.event.PPanEventHandler: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.event.PZoomEventHandler: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.nodes.PHtmlView: Class edu.umd.cs.piccolo.nodes.PHtmlView added
  • edu.umd.cs.piccolo.nodes.PImage: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.nodes.PPath: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.nodes.PText: Added public field DEFAULT_HORIZONTAL_ALIGNMENT
  • edu.umd.cs.piccolo.nodes.PText: Added public field DEFAULT_TEXT
  • edu.umd.cs.piccolo.nodes.PText: Added public field DEFAULT_TEXT_PAINT
  • edu.umd.cs.piccolo.nodes.PText: Added public field PROPERTY_CODE_TEXT_PAINT
  • edu.umd.cs.piccolo.nodes.PText: Added public field PROPERTY_TEXT_PAINT
  • edu.umd.cs.piccolo.nodes.PText: Method 'public float getHorizontalAlignment()' has been added
  • edu.umd.cs.piccolo.nodes.PText: Method 'public float getJustification()' has been deprecated
  • edu.umd.cs.piccolo.nodes.PText: Method 'protected void paintGreek(edu.umd.cs.piccolo.util.PPaintContext)' has been added
  • edu.umd.cs.piccolo.nodes.PText: Method 'protected void paintText(edu.umd.cs.piccolo.util.PPaintContext)' has been added
  • edu.umd.cs.piccolo.nodes.PText: Method 'protected java.lang.String paramString()' has been removed, but an inherited definition exists.
  • edu.umd.cs.piccolo.nodes.PText: Method 'public void setHorizontalAlignment(float)' has been added
  • edu.umd.cs.piccolo.nodes.PText: Method 'public void setJustification(float)' has been deprecated
  • edu.umd.cs.piccolo.util.PAffineTransform: Method 'public java.awt.geom.Point2D inverseTransform(java.awt.geom.Point2D, java.awt.geom.Point2D)' has been added
  • edu.umd.cs.piccolo.util.PAffineTransformException: Class edu.umd.cs.piccolo.util.PAffineTransformException added
  • edu.umd.cs.piccolo.util.PPaintContext: Method 'public void popCamera(edu.umd.cs.piccolo.PCamera)' has been deprecated
  • edu.umd.cs.piccolo.util.PPaintContext: Method 'public void popCamera()' has been added

Developers and contributors:

Ben Bederson
Stephen Chin
Aaron Clamage
Lance Good
Michael L Heuer
Allain Lalonde
Chris Malley
jesse
Alexander Kurtakov
Marcus Rohrmoser
Sam Reid


# Piccolo2D 1.2.1 Release Notes

Note: The Piccolo2D project has changed hosting to Google Code at: http://code.google.com/p/piccolo2d/

piccolo/src

PPickPath

  • Fixed incorrect comment on nextPickedNode method

piccolo/extras

  • Added PSwing support for embedding Swing components (experimental)
  • Added package level javadoc comments

Specific PSwing fixes:

  • PSwingEventHandler: Applied patch from Maarten Billemont that fixes the issue by not applying the camera's transform to input events when the node is not a descendant of a PLayer object.
  • PSwing: Sam Reid - API improvement (so that PSwing can be constructed without the destination PSwingCanvas as constructor arg). Old constructor is deprecated for compatibility with existing code.
  • PSwingCanvas: Sam Reid - minor change to facilitate adding/removal of pswing from canvas.

PFrame

  • Fixed bug in PFrame where canvas size didn't follow containing PFrame size

PNavigationEventHandler

  • Made PNavigationEventHandler.directCameraViewToFocus set the focus to the specified focus node

PFixedWidthStroke

  • Added fix to PFixedWidthStroke to make dashes also fixed to go along with the width.

LineShape

  • Fixed bug in intersects - accessed X instead of Y. Contributed by Sebastian Graca

Piccolo 1.2 Release Notes


piccolo/src

  • changed eclipse project compiler settings to not display serization warnings.

PNode

  • animate methods will now run immediatly if started with zero duration.
  • added check for set Scale when Scale is 0
  • added animateTransformToBounds method
  • Replaced client properties with a mutable attribute set
  • Replaced addClientProperty with addAttribute
  • Replaced removeClientProperty with removeAttribute
  • added getClientProperites
  • added convenience methods for accessing primitive typed attributes
  • deprecated outdated client property methods
  • added propertyChangeParentMask to decide if property change events should be forwarded to parent
  • added property codes for each property event
  • changed property change event fire code to forward events up the node tree when needed
  • added scene graph delegate calls for node bounds invalidated, paint invalidated

PCamera

  • added check for empty bounds case in animateViewToCenterBounds

PPickPath

  • added CURRENT_PICK_PATH static variable

PImage

  • fixed but when seizing with null image

PPath

  • fixed case of setting bounds of vertical or horizontal lines.

PInputEvent

  • added getModifiersEx accessor

PActivity

  • Added new terminate method that allow you to specify the terminate behavior.

PInterpolatingActivity

  • in activityFinished now set final target value before calling activity finished on delegate.

piccolo/examples

  • added NodeLinkExample
  • added ChartLabelExample
  • added GraphEditorExample
  • added HierarchyZoomExample
  • added InterfaceFrame
  • added UserInteraction
  • added SpecialEffects
  • changed layout of example runner to use two columns

piccolo/extras

  • added PCacheCamera
  • added PCacheCanvas
  • added PApplet
  • added PSWTZBoundsHandle
  • added PSWTHandle
  • added PSWTSelectionEventHandler
  • added PSWTStickyHandleManager
  • fixed picking of PFixedWidthStrokes
  • added getConsumer() method to PFixedWidthStroke's FillAdapter for jdk 1.5 compatibility.
  • many enhancements to PStyledText
  • added PApplet class

PSelectionEventHandler

  • fixed coord system bug in updateMarquee
  • fixed bug in computeMarqueeSelection where collection was modified as it continued to be iterated

PBoundsHandle

  • marked handleCursorHandler variable as transient

PHandle

  • marked handleDragger variable as transient

PFrame

  • added isFullScreenMode accessor

PApplet

  • added initialize method that's called on event dispatch thread
  • added beforeInitilize method called on constructor thread

Piccolo 1.1 Release Notes


Changed from Mozilla to BSD style license.

piccolo/src

PInterpolatingActivity

  • added terminate method
  • added new constructor with startime parameter method

PBasicInputEventHandler

  • added keyboardFocusGained event method
  • added keyboardFocusLost event method

PDragSequenceEventHandler

  • added getDragActivity method

PInputEvent

  • added getKeyChar method
  • added getKeyLocation method
  • added isActionKey method
  • added isFocusEvent method
  • added isLeftMouseButton method
  • added isMiddleMouseButton method
  • added isMouseEnteredOrMouseExited method
  • added isRightMouseButton method

PInputEventHandler

  • added acceptsFocusEvents method
  • added getAcceptsFocusEvents method
  • added setAcceptsFocusEvents method

PPanEventHandler

  • changed unit of autopan speed to pixels per second

PImage

  • removed accelerated property and related setters, getters, and constructors. (no longer needed in later versions of java)

PPath

  • added createLine method
  • changed to internalUpdateBounds to manage path bounds
  • changed read and write to use methods in PUtil to read and write path data

PText

  • added greek threshold property
  • added textPaint property
  • added justification property

PCamera

  • added animateViewToPanToBounds method
  • added getViewConstraint method

PCanvas

  • added notification when interaction quality changes
  • added setPanEventHandler method
  • added setZoomEventHandler method

PInputManager

  • fixed bug in the order that mouse entered and mouse moved events were delivered.

PNode

  • added getGlobalBounds method
  • added moveInFrontOf method
  • added moveInBackOf method
  • added occuded property
  • added animateToColor method
  • added centerFullBoundsOnPoint method
  • added findIntersectingNodes method
  • added getXOffset method
  • added getYOffset method
  • added internalUpdateBounds method
  • added isOpaque method
  • added setHeight method
  • added setWidth method
  • added setX method
  • added setY method
  • removed moveToBack(PNode child) method
  • removed moveToFront(PNode child) method
  • changed setBounds to send internalUpdateBounds message.
  • changed indexOfChild to check for case of null child
  • changed fullPick method to check of PPickPath accepts this node

PBounds

  • added delataRequiredToCenter method

PDebug

  • added debugPaintCalls mode

PPaintContext

  • added getRenderQuality

PPickPath

  • added acceptsNode method
  • added nextPickedNode method

PUtil

  • added readPath method
  • added writePath method

piccolo/examples

  • added BirdsEyeViewExample class
  • added CompositeExample class
  • added GridExample class
  • added GroupExample class
  • added NodeCacheExample class
  • added PiccoloPresentation class
  • added PositionPathActivityExample class

piccolo/extras

  • added PPathActivity class
  • added PPositionPathActivity class
  • added PNotification class
  • added PNotificationCenter class
  • added PComposite class
  • added PLine class
  • added PNodeCache class
  • added experimental POcclusionDetection class
  • PStyledText added drawing of underlines and strikethroughs
  • PFrame added beforeInitialize method
  • PHandle added default color and shape attributes
  • PSelectionEventHandler numerous changes
  • PScrollPane and PViewPort numerous changes
  • PClip fixed bounds repaint bug

Piccolo 1.0 Release Notes


piccolo/examples

  • added AngleNodeExample
  • added CenterExample
  • added PulseExample
  • added StickyHandleExample
  • added TooltipExample
  • added swtexamples

piccolo/extras

  • catch security exception thrown by setDefaultCloseOperation in PFrame.
  • added decorateSelectedNode() methods to PSelectionEventHandler
  • improved the way that PBoundsHandle manages the cursor
  • changed PHandle and PBoundsHandle implementations so that it doesn't assume that it's manipulating its parent.
  • added better support for insets to PStyledText
  • changed PLocator class so that its locate methods don't take a node parameter.
  • added a PNodeLocator class
  • added preliminary support for SWT (see www.eclipse.org) piccolo rendering

piccolo/src

  • added toString() debug methods throughout the framework
  • added static final keys for property change names throughout the framework. Keys are defined in the classes that fire the events.
  • added PComponent, and abstraction of PCanvas. This is so that piccolo can be used with SWT.
  • added PColorActivity
  • changed var names and method names in PActivity, hopefully will make the class clearer.
  • removed PActivities starte and ended runnables, replaced with PActivityDelegate
  • modified PActivityScheduler to allow for some control over the order that activities run in.
  • added different interpolation modes to PInterpolatingActivity
  • added the ability to loop to PInterpolatingActivity
  • added MouseWheelEvent support
  • added min/max scale constraints ot PZoomEventHandler
  • PNode setBounds with zero width or height will reset the bounds to empty
  • fixed PNode.rotate
  • added print method to PNode
  • ported Jazz's ZTransformGroup.postion() method to PNode
  • don't use media tracker to load images in PImage if the image is a BufferedImage
  • fixed PAffineTransform.getRotation() method
  • fixed PPaintContext so that it can be created with a Graphics2D that has a null clip

Piccolo 1.0-beta2 Release Notes


  • Removed Piccolo abstract rendered and OpenGL support code, instead we are planning to use a new library, Agile2D. Agile2D provides its own OpenGL implementation of the java.awt.Graphics2D class.

piccolo/examples

  • added clip example
  • added internal lens example
  • added panToExample to illustrate Pcamera’s animateViewToIncludeBounds method
  • added scrolling example
  • added selection example
  • added text example to show how to use PStyledTextEventHandler to edit text directly on the piccolo canvas.

piccolo/extras

  • added PSelectionEventHandler
  • added PStyledTextEventHandler
  • added PClip
  • added PLens
  • added PStyledText, used together with PStyledTextEvent handler to edit text on the piccolo canvas.
  • added a number of scroll supported classes in the extras swing package.

piccolo/src

PCamera

  • renamed centerView to animateViewToBounds
  • added animateViewToIncludeBounds

PNode

  • renamed translateRelativeToParent() to offset()
  • transform var is only created when needed, otherwise it's now left as null
  • added getClientPropertyKeysIterator()
  • added rotateInPlace()
  • renamed getTranslation() to getOffset()
  • renamed setTranslation() to setOffset()
  • renamed translateRelativeToParent() to offset()
  • renamed deltete() to removeFromParent()

PInputManager

  • added tracking for individual mouse button pressed. This way if you press down on a node with button1 that node will stay as mouse focus as long as button1 is pressed, event if button2 is repeatedly pressed and released.

PCanvas

  • added animating render quality, this quality is used if any of the scheduled activities return true when sent the message isAnimation().
  • added checks to make sure that every mouse press gets matched with a mouse released, something to does not always happen in swing.

PCamera

  • added some view constraint options. These are used to constrain the cameras view to the bounds of the layers that the camera is viewing.
  • renamed centerView() to animateViewToBounds()
  • added animateViewToIncludeBounds()

PInputEvent

  • removed consume() replaced with setHandled(). Previously consuming an event would completely stop it from getting dispatched to anyone else. Set handled is a weaker command, the event continues to get dispatched to other event handlers but they are expected to ignore it unless they are trying to do something special.

PImage

  • changed the default so that images are NOT accelerated.

PPath

  • removed getStrokeWidth(), Strokes are now just dealt with as shapes that are created by stroke.createStrokedShape(path).

PText

  • added setConstrainWidthToTextWidth()
  • added setConstrainHeightToTextHeight()

PAffineTransform

  • renamed setTranslation to setOffset()

PBounds

  • dded deltaRequiredToContain()

PDebug

  • added options to debugMemoryUse and set the frame rate at which debug results are calculated.

PPaintContext

  • removed drawing methods, and abstract renderer in general. Instead all drawing should be done directly with the Graphics2D object.

PUtil

  • added DEFAULT_ACTIVITY_STEP_RATE = 20;
  • added ACTIVITY_SCHEDULER_FRAME_DELAY = 10;