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;