### Piccolo2D Java: New Example Classes (1.0) Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds new example classes to the examples directory for version 1.0, including AngleNodeExample, CenterExample, PulseExample, StickyHandleExample, TooltipExample, and swtexamples. ```Java // Examples: // AngleNodeExample.java // CenterExample.java // PulseExample.java // StickyHandleExample.java // TooltipExample.java // swtexamples/ // ... ``` -------------------------------- ### Piccolo2D Java: New Example Classes Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds several new example classes to the examples directory, including BirdsEyeViewExample, CompositeExample, GridExample, GroupExample, NodeCacheExample, PiccoloPresentation, and PositionPathActivityExample. ```Java // Examples: // BirdsEyeViewExample.java // CompositeExample.java // GridExample.java // GroupExample.java // NodeCacheExample.java // PiccoloPresentation.java // PositionPathActivityExample.java // ... ``` -------------------------------- ### Run Piccolo2D Examples JAR Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/Readme.txt This command executes the runnable JAR for Piccolo2D examples, which includes dependencies. Replace '{version}' with the actual version number. ```Shell java -jar examples/target/piccolo2d-examples-{version}-jar-with-dependencies.jar ``` -------------------------------- ### Piccolo 2D: Example Additions Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds several new examples to illustrate various functionalities of Piccolo 2D, including clipping, internal lenses, panning, scrolling, selection, and text editing. ```Java /** * added clip example * added internal lens example * added panToExample to illustrate Pcameras 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. */ // These are examples demonstrating specific features like: // - Clipping paths // - Using lenses for magnification or distortion // - Animating camera view to bounds // - Implementing scrolling behavior // - Handling object selection // - Editing text directly on the canvas using PStyledTextEventHandler ``` -------------------------------- ### New Examples in Piccolo 1.2 Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry lists the new examples added to the piccolo/examples directory in Piccolo version 1.2, including NodeLinkExample, ChartLabelExample, GraphEditorExample, HierarchyZoomExample, InterfaceFrame, UserInteraction, and SpecialEffects. ```Java 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 ``` -------------------------------- ### Refactor edu.umd.cs.piccolo.pswingexamples and ...swtexamples Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This refactoring task aims to reorganize the example modules. Specifically, the `pswingexamples` and `swtexamples` packages will be moved to new, dedicated modules: `examples.pswing` and `examples.swt` respectively. ```bash # Conceptual command to move directories and update references # mv src/main/java/edu/umd/cs/piccolo/pswingexamples src/main/java/examples/pswing # mv src/main/java/edu/umd/cs/piccolo/swtexamples src/main/java/examples/swt # Update build files (e.g., pom.xml) and import statements. ``` -------------------------------- ### Refactor SWT Support and Examples Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet describes the refactoring of SWT (Standard Widget Toolkit) support and examples into separate modules. This organizational change aims to improve modularity and maintainability for SWT-specific features. ```Java SWT support was refactored from extras into its own module and SWT examples were refactored from examples into their own module. See Issues 68, 125, 126, 143, 145. 187 general shapes are not filled correctly under SWT 188 wrong line width when drawing general shapes under SWT 206 SWTGraphics2D keeps invalid caches ``` -------------------------------- ### Build Piccolo2D Modules with Maven Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/Readme.txt This command builds all the Piccolo2D modules using Apache Maven. Ensure Maven is installed and in your system's PATH. ```Shell mvn install ``` -------------------------------- ### Create New Package for Issues/Bugs Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry indicates the creation of a new package to organize bug-related examples or issues. This improves project structure and makes it easier to track and address specific problems. ```Java 186 Create a new package org.piccolo2d.examples.bugs or .issues ``` -------------------------------- ### Add Auto Pan Speed Methods to PPanEventHandler in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet shows the addition of methods to PPanEventHandler for getting the minimum and maximum auto pan speeds, used for controlling panning behavior. ```Java 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 ``` -------------------------------- ### Prepare SwingLayoutNode for Distribution Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This task involves preparing the `SwingLayoutNode` component for distribution. This likely includes ensuring it is correctly packaged, tested, and documented for external use. ```java // Conceptual code for SwingLayoutNode // import edu.umd.cs.piccolo.*; // import edu.umd.cs.piccolo.nodes.*; // import javax.swing.*; // public class SwingLayoutNode extends PNode { // private JComponent component; // // public SwingLayoutNode(JComponent component) { // this.component = component; // // Add component as a Swing node representation // } // // // ... methods for layout and integration ... // } ``` -------------------------------- ### Piccolo2D Java: PApplet Initialization Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds an initialize method to PApplet that is called on the event dispatch thread, and a beforeInitialize method called on the constructor thread. This ensures proper initialization order for GUI components. ```Java public class PApplet { // ... public void initialize() { // Called on event dispatch thread } // Called on constructor thread public void beforeInitialize() { // ... } // ... } ``` -------------------------------- ### Piccolo 2D: PActivity Enhancements Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Details improvements to `PActivity` and related classes. Includes adding `PColorActivity`, clarifying variable and method names in `PActivity`, replacing start/end runnables with `PActivityDelegate`, and adding interpolation modes and looping to `PInterpolatingActivity`. ```Java /** * 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 * added different interpolation modes to PInterpolatingActivity * added the ability to loop to PInterpolatingActivity */ // Example usage (conceptual): // PActivity activity = new PColorActivity(...); // PActivityDelegate delegate = new PActivityDelegate(...); // PInterpolatingActivity interpolatingActivity = new PInterpolatingActivity(...); // interpolatingActivity.setLoop(true); ``` -------------------------------- ### Piccolo2D Java: PPath Creation and Bounds Management Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Introduces a createLine method to PPath and modifies internalUpdateBounds to manage path bounds. Also updates read and write methods to use PUtil for path data handling. ```Java public class PPath { // ... public static PPath createLine(double x1, double y1, double x2, double y2) { // ... } // internalUpdateBounds now manages path bounds private void internalUpdateBounds() { // ... } // read and write use PUtil methods public void read(PInput in) { PUtil.readPath(this, in); } public void write(POutput out) { PUtil.writePath(this, out); } // ... } ``` -------------------------------- ### Piccolo2D Java: PPathActivity and PPositionPathActivity Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds PPathActivity and PPositionPathActivity to the extras package, likely for animating nodes along paths. ```Java public class PPathActivity extends PActivity { // ... } public class PPositionPathActivity extends PPathActivity { // ... } ``` -------------------------------- ### Address Build Plugin Issues Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry addresses specific issues related to build plugins, such as the surefire plugin failing on certain Java versions. Resolving these ensures the build process is stable and reliable. ```Java 273 Unit tests fail due to surefire plugin issue with Debian/Ubuntu Java8 ``` -------------------------------- ### Migrate Build System to Maven Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry details the significant shift from Apache Ant to Apache Maven for the project's build system. This migration impacts project structure, dependency management, and build processes. ```Java Piccolo2D.Java now builds with Apache Maven instead of Apache Ant. See Issues 6, 28, 29, 38, 44, 51, 52, 98, 104, 108, 109, 126, 128, 146. 6 Migrate ant build to maven2 ``` -------------------------------- ### Piccolo2D Java: PInterpolatingActivity Methods Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds a terminate method and a new constructor with a startime parameter to PInterpolatingActivity for better control over activity lifecycles. ```Java public class PInterpolatingActivity { // ... public void terminate() { /* ... */ } public PInterpolatingActivity(long startTime) { /* ... */ } // ... } ``` -------------------------------- ### Piccolo 2D: PPaintContext Graphics2D Handling Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Ensures `PPaintContext` can be created with a `Graphics2D` object that has a null clip, improving flexibility in rendering scenarios where clipping might not be initially defined. ```Java /** * fixed PPaintContext so that it can be created with a Graphics2D that has a null clip */ // Example usage (conceptual): // Graphics2D g2d = ...; // PPaintContext paintContext = new PPaintContext(g2d); // Works even if g2d.getClip() is null. ``` -------------------------------- ### Deprecate and Add PCamera repaintFromLayer Methods Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This section highlights API changes in the `PCamera` class. The `repaintFromLayer` method with a `PBounds` and `PNode` parameter has been deprecated, and a new version accepting `PBounds` and `PLayer` has been added. ```java /** * @deprecated Use repaintFromLayer(PBounds, PLayer) instead. */ @Deprecated public void repaintFromLayer(PBounds bounds, PNode node) { // Implementation details... } public void repaintFromLayer(PBounds bounds, PLayer layer) { // New implementation details... } ``` -------------------------------- ### Piccolo2D Java: PStyledText Enhancements Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt PStyledText now supports drawing underlines and strikethroughs, enhancing its text styling capabilities. ```Java public class PStyledText extends PText { // ... // Methods for drawing underlines and strikethroughs added // ... } ``` -------------------------------- ### Piccolo2D Java: PStyledText Insets Support Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt PStyledText has improved support for insets, allowing for better control over text padding and layout. ```Java public class PStyledText extends PText { // ... // Improved support for insets // ... } ``` -------------------------------- ### Piccolo2D Java: PNode Full Pick Method Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Modified the fullPick method in PNode to check if PPickPath accepts the node, improving the picking logic. ```Java public class PNode { // ... public PPickPath fullPick(PPoint localPoint) { // ... if (pickPath.acceptsNode(this)) { // ... } // ... } // ... } ``` -------------------------------- ### New Extras Components in Piccolo 1.2 Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet lists the new components added to the piccolo/extras directory in Piccolo version 1.2, including PCacheCamera, PCacheCanvas, PApplet, PSWTZBoundsHandle, PSWTHandle, and PSWTSelectionEventHandler. ```Java piccolo/extras * added PCacheCamera * added PCacheCanvas * added PApplet * added PSWTZBoundsHandle * added PSWTHandle * added PSWTSelectionEventHandler ``` -------------------------------- ### Add Constructor and Methods to PNode in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet shows the addition of a new constructor and several methods to the PNode class, including animation, input event handling, naming, and image conversion. ```Java 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 '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 ``` -------------------------------- ### Piccolo2D Java: PStyledText Enhancements Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Includes numerous enhancements to PStyledText, improving its text rendering and styling capabilities. ```Java public class PStyledText extends PText { // ... // Numerous enhancements to PStyledText // ... } ``` -------------------------------- ### Add Methods to PCanvas in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet details the new methods added to the PCanvas class, including methods for retrieving render quality settings and input event listeners, as well as a print method. ```Java 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 ``` -------------------------------- ### Piccolo2D Java: SWT Rendering Support Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds preliminary support for SWT (Standard Widget Toolkit) rendering within Piccolo, indicating compatibility with the Eclipse platform. ```Java // Preliminary support for SWT rendering // See www.eclipse.org // ... ``` -------------------------------- ### Piccolo2D Java: PFrame Security Exception Handling Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Includes a catch for security exceptions thrown by setDefaultCloseOperation in PFrame, improving robustness. ```Java public class PFrame extends JFrame { // ... public PFrame() { try { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } catch (SecurityException e) { // Handle security exception System.err.println("Security exception setting default close operation: " + e.getMessage()); } // ... } // ... } ``` -------------------------------- ### Piccolo2D Java: PComposite and PLine Additions Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds PComposite for grouping nodes and PLine for drawing lines to the extras package. ```Java public class PComposite extends PNode { // ... } public class PLine extends PPath { // ... } ``` -------------------------------- ### Piccolo2D Java: PUtil Path Serialization Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Provides utility methods in PUtil for reading and writing path data, simplifying the serialization and deserialization process for PPath objects. ```Java public class PUtil { // ... public static void readPath(PPath path, PInput in) { /* ... */ } public static void writePath(PPath path, POutput out) { /* ... */ } // ... } ``` -------------------------------- ### Piccolo2D Java: PInputEvent Methods Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds new methods to PInputEvent for retrieving key information (getKeyChar, getKeyLocation), identifying action keys (isActionKey), checking focus events (isFocusEvent), and determining mouse button states (isLeftMouseButton, isMiddleMouseButton, isRightMouseButton). ```Java public class PInputEvent { // ... public char getKeyChar() { /* ... */ } public int getKeyLocation() { /* ... */ } public boolean isActionKey() { /* ... */ } public boolean isFocusEvent() { /* ... */ } public boolean isLeftMouseButton() { /* ... */ } public boolean isMiddleMouseButton() { /* ... */ } public boolean isRightMouseButton() { /* ... */ } // ... } ``` -------------------------------- ### Piccolo 2D: PCamera View Animation Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Demonstrates methods for animating the camera's view in Piccolo 2D. Includes `animateViewToBounds` for centering the view and `animateViewToIncludeBounds` for ensuring specific bounds are visible. ```Java /** * Renamed centerView to animateViewToBounds * added animateViewToIncludeBounds */ // Example usage (conceptual): // PCamera camera = ...; // camera.animateViewToBounds(new PRectangle(x, y, width, height)); // camera.animateViewToIncludeBounds(new PRectangle(x, y, width, height)); ``` -------------------------------- ### Update Project Domain Namespace Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet highlights a significant change where the root package name for Piccolo2D.Java was updated to org.piccolo2d to align with the project's domain name. This improves consistency and branding. ```Java The root package name for Piccolo2D.Java is now org.piccolo2d to match the project domain name. 37 change namespaces to piccolo2d, ``` -------------------------------- ### Add Constructor to PInterpolatingActivity in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet shows the addition of a new constructor to the PInterpolatingActivity class, likely for initializing interpolation activities with a duration. ```Java edu.umd.cs.piccolo.activities.PInterpolatingActivity: Method 'public PInterpolatingActivity(long)' has been added ``` -------------------------------- ### Add Maven Profile for Windows x86_64 Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet notes the addition of a missing Maven profile specifically for Windows x86_64 systems. This ensures build compatibility across different operating systems. ```Java 203 Missing maven profile for Windows x86_64 ``` -------------------------------- ### Piccolo 2D: PComponent and PCanvas Abstraction Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Introduces `PComponent` as an abstraction of `PCanvas`. This change facilitates the integration of Piccolo 2D with the SWT (Standard Widget Toolkit) framework. ```Java /** * added PComponent, and abstraction of PCanvas. This is so that piccolo can be used with SWT. */ // Example usage (conceptual): // PComponent component = new PComponent(swtCanvas); // // PComponent allows Piccolo to work with SWT canvases. ``` -------------------------------- ### Piccolo2D Java: PNode Enhancements Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds several new methods to PNode for bounds manipulation, node ordering, and animation, including getGlobalBounds, moveInFrontOf, moveInBackOf, animateToColor, and centerFullBoundsOnPoint. Also includes methods for managing node visibility and dimensions. ```Java public class PNode { // ... public PBounds getGlobalBounds() { /* ... */ } public void moveInFrontOf(PNode child) { /* ... */ } public void moveInBackOf(PNode child) { /* ... */ } public void animateToColor(Color color, long duration) { /* ... */ } public void centerFullBoundsOnPoint(double x, double y) { /* ... */ } public void setWidth(double width) { /* ... */ } public void setHeight(double height) { /* ... */ } public void setX(double x) { /* ... */ } public void setY(double y) { /* ... */ } // ... } ``` -------------------------------- ### Piccolo 2D: Input Event Enhancements Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds support for `MouseWheelEvent` and introduces min/max scale constraints to `PZoomEventHandler` for better user interaction control. ```Java /** * added MouseWheelEvent support * added min/max scale constraints ot PZoomEventHandler */ // Example usage (conceptual): // PZoomEventHandler zoomHandler = ...; // zoomHandler.setMinScale(0.5); // zoomHandler.setMaxScale(5.0); ``` -------------------------------- ### Piccolo2D Java: PNode Locator Class Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Introduces a PNodeLocator class, likely for more specific node-finding or positioning logic. ```Java public class PNodeLocator { // ... // Methods for locating nodes // ... } ``` -------------------------------- ### Piccolo 2D: PImage Loading Optimization Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Optimizes image loading in `PImage` by avoiding the use of `MediaTracker` for `BufferedImage` instances, potentially improving loading times and reducing dependencies. ```Java /** * don't use media tracker to load images in PImage if the image is a BufferedImage */ // Example usage (conceptual): // BufferedImage image = ...; // PImage pImage = new PImage(image); // Uses optimized loading for BufferedImage. ``` -------------------------------- ### Piccolo2D Java: PPickPath Node Acceptance Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds an acceptsNode method to PPickPath, enabling checks for whether a node is accepted during the picking process. ```Java public class PPickPath { // ... public boolean acceptsNode(PNode node) { // ... } public PNode nextPickedNode() { // ... } // ... } ``` -------------------------------- ### Piccolo 2D: Extras Package Additions Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Introduces new classes in the `piccolo/extras` package, including `PSelectionEventHandler`, `PStyledTextEventHandler`, `PClip`, `PLens`, and `PStyledText`, along with scroll-supporting classes for Swing integration. ```Java /** * 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. */ // Key additions for enhanced functionality: // - PSelectionEventHandler: For managing object selection. // - PStyledTextEventHandler & PStyledText: For in-place text editing. // - PClip: For clipping functionalities. // - PLens: For visual effects like magnification. // - Swing-specific scrolling utilities. ``` -------------------------------- ### Add Fill Strategy Fields to PNode in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet highlights the addition of public fields related to fill strategies in the PNode class, used for controlling how content is scaled and fitted. ```Java 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 ``` -------------------------------- ### Configure Checkstyle Maven Plugin for Source Code Conventions Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This task focuses on configuring the Checkstyle Maven plugin to enforce specific source code conventions within the project. This ensures code consistency and adherence to project standards. ```xml org.apache.maven.plugins maven-checkstyle-plugin 3.1.1 checkstyle.xml warning ``` -------------------------------- ### Fix Maven Site Reports Issue Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry addresses an issue where the Maven site does not run reports from the command line with Maven 3. This fix ensures that documentation generation works correctly with Maven 3. ```Java 197 Maven site does not run reports from the command line with maven 3 ``` -------------------------------- ### Include Piccolo2D Extras Dependency in Maven Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/Readme.txt This snippet demonstrates how to include both the Piccolo2D core and extras classes as a dependency in your Maven project's pom.xml. ```XML org.piccolo2d piccolo2d-extras 3.0.1 ``` -------------------------------- ### Add POffscreenCanvas and PHtmlView Classes in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet notes the addition of two new classes to the Piccolo2D library: POffscreenCanvas for offscreen rendering and PHtmlView for displaying HTML content. ```Java edu.umd.cs.piccolo.POffscreenCanvas: Class edu.umd.cs.piccolo.POffscreenCanvas added edu.umd.cs.piccolo.nodes.PHtmlView: Class edu.umd.cs.piccolo.nodes.PHtmlView added ``` -------------------------------- ### Piccolo 2D: PUtil Activity Constants Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Defines default constants for activity scheduling in PUtil. `DEFAULT_ACTIVITY_STEP_RATE` and `ACTIVITY_SCHEDULER_FRAME_DELAY` are introduced to configure activity execution timing. ```Java /** * added DEFAULT_ACTIVITY_STEP_RATE = 20; * added ACTIVITY_SCHEDULER_FRAME_DELAY = 10; */ // Example usage (conceptual): // int stepRate = PUtil.DEFAULT_ACTIVITY_STEP_RATE; // int frameDelay = PUtil.ACTIVITY_SCHEDULER_FRAME_DELAY; ``` -------------------------------- ### Piccolo2D Java: PFixedWidthStrokes Picking Fix Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Fixes an issue related to the picking of PFixedWidthStrokes. ```Java public class PFixedWidthStrokes { // ... // Fixed picking of PFixedWidthStrokes // ... } ``` -------------------------------- ### Fix PPath Methods Missing in Later Versions Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry addresses the issue of missing PPath methods (setPathToRectangle, createPolyline) in versions 2 and later. This indicates a need to restore or reimplement these functionalities for backward compatibility or feature completeness. ```Java 259 PPath.setPathToRectangle method(s) are missing from versions 2 and later 263 PPath.createPolyline method are missing from versions 2 and later ``` -------------------------------- ### Piccolo2D Java: PNode Opacity Check Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Introduces an isOpaque method to PNode, likely to determine if the node is fully opaque and can potentially optimize rendering. ```Java public class PNode { // ... public boolean isOpaque() { // ... } // ... } ``` -------------------------------- ### Piccolo2D Java: PPaintContext Render Quality Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds a getRenderQuality method to PPaintContext, allowing retrieval of the current rendering quality settings. ```Java public class PPaintContext { // ... public int getRenderQuality() { // ... } // ... } ``` -------------------------------- ### Piccolo2D Java: PFixedStrokes Compatibility Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds a getConsumer() method to PFixedWidthStroke's FillAdapter for JDK 1.5 compatibility. ```Java public class PFixedWidthStroke { // ... public static class FillAdapter { // ... public Object getConsumer() { // ... } // ... } // ... } ``` -------------------------------- ### Piccolo 2D: PNode Transformation and Properties Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Details changes in PNode related to transformations and property management. Includes renaming of translation methods, optimization of transform variable creation, and methods for accessing client properties. ```Java /** * 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() */ // Example usage (conceptual): // PNode node = ...; // node.offset(dx, dy); // Iterator keys = node.getClientPropertyKeysIterator(); // node.rotateInPlace(angle); // node.removeFromParent(); ``` -------------------------------- ### Add Meta Tag to Website Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet mentions the addition of an og:image meta tag to the website's HTML pages. This is a common practice for improving social media sharing and SEO. ```Java 266 add og:image meta tag to website's html pages. ``` -------------------------------- ### Use UMLGraph 5.1 in Build Process Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This task specifies the use of UMLGraph version 5.1 within the build process. UMLGraph is a tool for generating UML diagrams from Java code, likely used for documentation or analysis. ```xml org.apache.maven.plugins maven-antrun-plugin 1.8 generate-uml-diagrams site run org.umlgraph umlgraph 5.1 ``` -------------------------------- ### Improve Code Quality with Checkstyle, PMD, FindBugs Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry highlights the extensive fixing of errors and warnings identified by code analysis tools like Checkstyle, PMD, and FindBugs. It also mentions an increase in unit test line coverage, indicating a focus on code quality and robustness. ```Java Many Checkstyle, PMD, and FindBugs errors and warnings have been fixed. Unit test line coverage has been increased to 48%. ``` -------------------------------- ### Piccolo2D Java: PBoundsHandle Cursor Management Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt PBoundsHandle has improved management of the cursor, and the handleCursorHandler variable is now marked as transient. ```Java public class PBoundsHandle extends PHandle { // ... private transient CursorHandler handleCursorHandler; // Improved cursor management // ... } ``` -------------------------------- ### Piccolo2D Java: PInputEventHandler Focus Management Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Introduces methods to PInputEventHandler for managing focus events, including acceptsFocusEvents, getAcceptsFocusEvents, and setAcceptsFocusEvents. This allows components to control whether they receive keyboard focus. ```Java public class PInputEventHandler { // ... public boolean acceptsFocusEvents() { /* ... */ } public boolean getAcceptsFocusEvents() { /* ... */ } public void setAcceptsFocusEvents(boolean accepts) { /* ... */ } // ... } ``` -------------------------------- ### Add OSGi Manifest to Build Jars Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This task involves adding OSGi (Open Service Gateway initiative) manifest information to the JAR files produced by the build process. This enables the project's components to be deployed and managed within an OSGi framework. ```xml org.apache.felix maven-bundle-plugin 5.0.0 true ${project.artifactId} ${project.version} edu.umd.cs.piccolo.* ``` -------------------------------- ### Enhance PNotificationCenter Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry points out a design issue with PNotificationCenter, noting that it's a singleton but not declared as final. This suggests a potential improvement for ensuring its singleton status. ```Java 136 PNotificationCenter is a singleton but isn't declared as final ``` -------------------------------- ### PSwing Support in Piccolo2D 1.2.1 Extras Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This entry describes the addition of PSwing support, including experimental features for embedding Swing components, and specific fixes and API improvements for PSwing and PSwingCanvas contributed by Sam Reid. ```Java 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. ``` -------------------------------- ### Piccolo2D Java: PCamera View Animation Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds the animateViewToPanToBounds method to PCamera, allowing for smooth animated transitions to specified bounds. Also includes methods for managing view constraints. ```Java public class PCamera { // ... public void animateViewToPanToBounds(PBounds bounds, long duration) { /* ... */ } public Object getViewConstraint() { /* ... */ } // ... } ``` -------------------------------- ### Enhance PNode Capabilities Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This section details enhancements to the PNode class, including providing access to property change listeners and addressing inconsistencies in positioning methods. These updates improve the introspection and reliability of node management. ```Java 262 Provide access to getPropertyChangeListeners from PNode 86 inconsistencies of position method in PNode 166 Refactor PNode.moveToBack() and related ``` -------------------------------- ### Add Integration with Processing Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This feature request aims to integrate Piccolo2D with the Processing development environment. This would allow users to leverage Piccolo2D's capabilities within the Processing framework. ```java // Example of how one might initialize Piccolo2D within Processing (conceptual) // import edu.umd.cs.piccolo.*; // import edu.umd.cs.piccolo.nodes.*; // import edu.umd.cs.piccolo.event.*; // PCanvas canvas; // void setup() { // size(800, 600); // canvas = new PCanvas(this); // PShapeNode shapeNode = new PShapeNode(createShape()); // canvas.getLayer().addChild(shapeNode); // } ``` -------------------------------- ### Add Checkstyle Configuration for Maven Build Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet details the process of integrating Checkstyle into the Maven build to enforce coding conventions. It involves configuring the Checkstyle Maven plugin to report on source code quality. ```xml org.apache.maven.plugins maven-checkstyle-plugin 3.1.1 checkstyle.xml UTF-8 true warning true checkstyle validate check ``` -------------------------------- ### Piccolo 2D: PCanvas Animation Quality and Event Handling Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Describes updates to PCanvas, including animating render quality based on activity return values and ensuring mouse press events are matched with mouse release events to prevent inconsistencies in Swing. ```Java /** * 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. */ // Example usage (conceptual): // PCanvas canvas = ...; // // Canvas now animates render quality and ensures proper mouse event pairing. ``` -------------------------------- ### Piccolo2D Java: PNotification and PNotificationCenter Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds PNotification and PNotificationCenter classes to the extras package for implementing a notification system. ```Java public class PNotification { // ... } public class PNotificationCenter { // ... } ``` -------------------------------- ### Update Project Metadata and Dependencies Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet covers updates to project metadata due to migration to Github and general updates to build dependency and plugin versions. These are routine maintenance tasks to keep the project current. ```Java Project metadata have been updated due to migration to Github. Build dependency versions and plugin versions have been updated. ``` -------------------------------- ### Piccolo2D Java: PText Properties Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds new properties to PText for controlling text rendering, including greek threshold, text paint, and justification. ```Java public class PText extends PNode { // ... public double getGreekThreshold() { /* ... */ } public void setGreekThreshold(double threshold) { /* ... */ } public Paint getTextPaint() { /* ... */ } public void setTextPaint(Paint paint) { /* ... */ } public int getJustification() { /* ... */ } public void setJustification(int justification) { /* ... */ } // ... } ``` -------------------------------- ### Include Piccolo2D Core Dependency in Maven Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/Readme.txt This snippet shows how to add the Piccolo2D core classes as a dependency to your Maven project's pom.xml file. ```XML org.piccolo2d piccolo2d-core 3.0.1 ``` -------------------------------- ### Piccolo 2D: PDebug Memory and Frame Rate Options Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds new options to PDebug for monitoring memory usage and controlling the frame rate at which debug results are calculated, aiding in performance analysis. ```Java /** * added options to debugMemoryUse and set the frame rate at which debug results are calculated. */ // Example usage (conceptual): // PDebug.debugMemoryUse(true); // PDebug.setDebugFrameRate(30); ``` -------------------------------- ### Piccolo 2D: PNode Bounds Handling Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Modifies `PNode.setBounds` behavior: setting bounds with zero width or height now resets the bounds to an empty state. Also includes a fix for `PNode.rotate` and the addition of a `print` method. ```Java /** * PNode setBounds with zero width or height will reset the bounds to empty * fixed PNode.rotate * added print method to PNode */ // Example usage (conceptual): // PNode node = ...; // node.setBounds(x, y, 0, 0); // Resets bounds to empty // node.print(); ``` -------------------------------- ### Piccolo2D Java: PBounds Delta Calculation Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds a deltaRequiredToCenter method to PBounds, which calculates the necessary adjustment to center the bounds. ```Java public class PBounds { // ... public double deltaRequiredToCenter() { // ... } // ... } ``` -------------------------------- ### PNode Enhancements in Piccolo 1.2 Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet summarizes the significant updates to the PNode class in Piccolo version 1.2. It includes changes to animate methods, scale handling, the introduction of animateTransformToBounds, replacement of client properties with attribute sets, and enhancements to property change event handling. ```Java 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 ``` -------------------------------- ### Add Interacting Properties to PRoot in Java Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet shows the addition of public fields and methods related to the 'interacting' state in the PRoot class, used for managing user interaction. ```Java 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 ``` -------------------------------- ### Piccolo2D Java: PFrame Full Screen Mode Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds an isFullScreenMode accessor to PFrame, allowing checks for the full-screen display status. ```Java public class PFrame extends JFrame { // ... public boolean isFullScreenMode() { // ... } // ... } ``` -------------------------------- ### PText Enhancements in Piccolo2D 1.2.1 Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt This snippet details the additions and modifications to the PText class in Piccolo2D version 1.2.1. It includes new public fields for default and property text paint, new methods for horizontal alignment, and changes to justification and painting methods. ```Java 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 ``` -------------------------------- ### Piccolo2D Java: PHandle Default Attributes Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt PHandle now includes default color and shape attributes, simplifying its customization and usage. ```Java public class PHandle extends PNode { // ... // Default color and shape attributes are now available // ... } ``` -------------------------------- ### Piccolo2D Java: PInputManager Event Order Fix Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Fixes a bug in PInputManager concerning the order in which mouse entered and mouse moved events were delivered. ```Java public class PInputManager { // ... // Fixed bug in the order that mouse entered and mouse moved events were delivered. // ... } ``` -------------------------------- ### Piccolo2D Java: PNodeCache Addition Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds PNodeCache to the extras package for efficient management and retrieval of PNode objects. ```Java public class PNodeCache { // ... // Functionality for caching PNode objects // ... } ``` -------------------------------- ### Piccolo2D Java: PNode Removal Methods Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Removed the moveToBack(PNode child) and moveToFront(PNode child) methods from PNode, suggesting a change in how child node ordering is managed. ```Java public class PNode { // ... // Removed: public void moveToBack(PNode child); // Removed: public void moveToFront(PNode child); // ... } ``` -------------------------------- ### Piccolo 2D: PText Size Constraints Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds methods to PText for controlling text size constraints. `setConstrainWidthToTextWidth()` and `setConstrainHeightToTextHeight()` allow the text bounding box to adapt to the text content. ```Java /** * added setConstrainWidthToTextWidth() * added setConstrainHeightToTextHeight() */ // Example usage (conceptual): // PText text = ...; // text.setConstrainWidthToTextWidth(true); // text.setConstrainHeightToTextHeight(true); ``` -------------------------------- ### Piccolo2D Java: POcclusionDetection (Experimental) Source: https://github.com/piccolo2d/piccolo2d.java/blob/master/ReleaseNotes.txt Adds experimental POcclusionDetection class to the extras package for detecting visual occlusion between nodes. ```Java public class POcclusionDetection { // ... // Experimental occlusion detection logic // ... } ```