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 |
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 |
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 |
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.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%.
Query: Milestone:1.3,status=Verified
- 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
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/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
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/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
- 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;