Newer
Older
piccolo2d.java / ReleaseNotes.txt
=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
	*added 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;