Piccolo2D 1.3.1 Release Notes
Fixed and verified issues:
| Issue 163 | PSwing doesn't draw dynamic JComponent properly |
| Issue 173 | Slow repaint of PSwing components when zooming (from 1.2 to 1.3) |
| Issue 185 | Memory leak - PActivityScheduler keeps processed activities in reference |
| Issue 187 | general shapes are not filled correctly under SWT |
| Issue 188 | wrong line width when drawing general shapes under SWT |
| Issue 195 | testPSwingDelegatesPaintingToItsComponent(edu.umd.cs.piccolox.pswing.PSwingTest) fails on release-1.3 branch |
| Issue 197 | Maven site does not run reports from the command line with maven 3 |
| Issue 203 | Missing maven profile for Windows x86_64 |
| Issue 206 | SWTGraphics2D keeps invalid caches |
| Issue 212 | 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 , Issue 28 , Issue 29 , Issue 38 , Issue 44 , Issue 51 , Issue 52 , Issue 98 , Issue 104 , Issue 108 , Issue 109 , Issue 126 , Issue 128 , Issue 146 .
SWT support was refactored from extras into its own module and SWT examples were refactored from examples into their own module. See Issue 68 , Issue 125 , Issue 126 , Issue 143 , Issue 145 .
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 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 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
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;