<?xml version="1.0" encoding="UTF-8"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.


The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common
Development and Distribution License("CDDL") (collectively, the
"License"). You may not use this file except in compliance with the
License. You can obtain a copy of the License at
http://www.netbeans.org/cddl-gplv2.html
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
specific language governing permissions and limitations under the
License.  When distributing the software, include this License Header
Notice in each file and include the License file at
nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
particular file as subject to the "Classpath" exception as provided
by Oracle in the GPL Version 2 section of the License file that
accompanied this code. If applicable, add the following below the
License Header, with the fields enclosed by brackets [] replaced by
your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"

Contributor(s):

    The Original Software is NetBeans. The Initial Developer of the Original
    Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
    Microsystems, Inc. All Rights Reserved.

If you wish your version of this file to be governed by only the CDDL
or only the GPL Version 2, indicate your decision by adding
"[Contributor] elects to include this software in this distribution
under the [CDDL or GPL Version 2] license." If you do not indicate a
single choice of license, a recipient has the option to distribute
your version of this file under either the CDDL, the GPL Version 2 or
to extend the choice of license to its licensees as provided above.
However, if you add GPL Version 2 code and therefore, elected the GPL
Version 2 license, then the option applies only if the new code is
made subject to such option by the copyright holder.
    -->
<?xml-stylesheet type="text/xml" href="../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../nbbuild/javadoctools/apichanges.dtd">

<apichanges>

    <apidefs>
        <apidef name="general">Visual Library API</apidef>
    </apidefs>

    <changes>

        <change>
            <api name="general"/>
            <summary>The library API becomes stable</summary>
            <version major="2" minor="0"/>
            <date day="8" month="3" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                The library API becomes stable.
            </description>
            <package name="org.netbeans.api.visual" link="no"/>
            <issue number="95110"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Cut-distance can be specified for Triangle anchor shape</summary>
            <version major="2" minor="0"/>
            <date day="9" month="3" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                AnchorShapeFactory.createTriangleAnchorShape factory method now takes cut-distance parameter.
            </description>
            <class package="org.netbeans.api.visual.anchor" name="AnchorShapeFactory" link="yes"/>
            <issue number="91613"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Renaming non-standard names - FillLayout and SerialLayout</summary>
            <version major="2" minor="0"/>
            <date day="9" month="3" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                FillLayout class has been renamed to OverlayLayout. SerialLayout class has been renamed to FlowLayout.
		        At the same time their factory methods has bee renamed too.
		        LayoutFactory.createFillLayout method renamed to LayoutFactory.createOverlayLayout.
		        LayoutFactory.createHorizontalLayout method renamed to LayoutFactory.createHorizontalFlowLayout.
		        LayoutFactory.createVerticalLayout method renamed to LayoutFactory.createVerticalFlowLayout.
		        The original methods are deprecated now and are going to be removed for 6.0 Milestone 9. The new methods has been added.
                Also BorderLayout.createFancyDashedBorder method is going to be removed for 6.0 Milestone 9.
                Use BorderLayout.createDashedBorder(...,true) method instead.
		        Note that the LayouFactory.SerialAlignment enum name is not changed.
            </description>
            <class package="org.netbeans.api.visual.layout" name="LayoutFactory" link="yes"/>
            <issue number="97562"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Move deprecated classes out from the public API - ListWidget and ListItemWidget</summary>
            <version major="2" minor="0"/>
            <date day="9" month="3" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
        		ListWidget and ListItemWidget are not in final shape and are deprecated. Therefore they have been moved out from the public-API packages.
                Now they are copied in the org.netbeans.modules.visual.experimental.widget.general package.
                The original classes are still deprecated and going to be removed for 6.0 Milestone 9.
                Note that if you want to use the experimental widgets (outside of the public-API packages), you have to set an implementation dependency
                on org.netbeans.api.visual module. Please, do not use implemementation dependency for anything except this.
            </description>
            <package name="org.netbeans.api.visual.widget.general" link="yes"/>
            <issue number="97564"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Added ActionFactory.createActionMapAction methods</summary>
            <version major="2" minor="0"/>
            <date day="13" month="3" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Added an action whith is using ActionMap and InputMap for handling key-presses and a popup menu.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="97563"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Added LabelWidget.orientation property</summary>
            <version major="2" minor="1"/>
            <date day="3" month="4" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Added support for rendering vertical labels.
            </description>
            <class package="org.netbeans.api.visual.widget" name="LabelWidget" link="yes"/>
            <issue number="98641"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Widget.paintBorder method introduced</summary>
            <version major="2" minor="1"/>
            <date day="3" month="4" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Widget.paintBorder method introduced.
            </description>
            <class package="org.netbeans.api.visual.widget" name="Widget" link="yes"/>
            <issue number="98307"/>
        </change>

        <change>
            <api name="general"/>
            <summary>AnimatorListener added</summary>
            <version major="2" minor="2"/>
            <date day="10" month="4" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                AnimatorListener interface has been added. It allows listening to important events of Animator interface implementation.
                Built-in animators are accessible using getters on SceneAnimator class.
            </description>
            <class package="org.netbeans.api.visual.animator" name="AnimatorListener" link="yes"/>
            <issue number="99048"/>
        </change>

        <change>
            <api name="general"/>
            <summary>ConnectionWidgetCollisionsCollection added</summary>
            <version major="2" minor="2"/>
            <date day="10" month="4" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                New ConnectionWidgetCollisionsCollection interface added.
                It allows to obtain a context of currently routed ConnectionWidget.
                It can be used using RouterFactory.createOrthogonalSearchRouter factory method.
            </description>
            <class package="org.netbeans.api.visual.router" name="ConnectionWidgetCollisionsCollector" link="yes"/>
            <issue number="99054"/>
        </change>

        <change id="animatedimagewidget">
            <api name="general"/>
            <summary>ImageWidget handles animated images</summary>
            <version major="2" minor="3"/>
            <date day="4" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Now ImageWidget uses ImageObserver to track changes and animations of image.
                Do not use Utilities.loadImage method for loading animated images since it produces static images only - use Toolkit.createImage instead.
            </description>
            <class package="org.netbeans.api.visual.widget" name="ImageWidget" link="yes"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Mouse dragging event processing improved</summary>
            <version major="2" minor="3"/>
            <date day="5" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Mouse dragging event processing improved. MoveAction and others are now smoothly scrolling a view.
            </description>
            <issue number="101523"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Additional ActionFactory.createExtendedConnectAction with modifiers parameter added</summary>
            <version major="2" minor="3"/>
            <date day="5" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                An additional ActionFactory.createExtendedConnectAction method was added.
                It allows to speficied a combination of MouseEvent.*_DOWN modifiers that triggers invocation of the action.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="103289"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Widget.getCursorAt method introduced, ConnectionWidget.controlPointsCursor property added</summary>
            <version major="2" minor="3"/>
            <date day="5" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Now the mouse cursor is changed also based on its local location in a widget.
		        Therefore ConnectionWidget has controlPointsCursor property which defines a cursor for mouse over control points.
            </description>
            <package name="org.netbeans.api.visual.widget" link="yes"/>
            <issue number="104662"/>
        </change>

        <change>
            <api name="general"/>
            <summary>ActionFactory.createMouseCenteredZoomAction method introduced</summary>
            <version major="2" minor="3"/>
            <date day="5" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                ActionFactory.createMouseCenteredZoomAction method introduced.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="104718"/>
        </change>

        <change>
            <api name="general"/>
            <summary>AnchorShapeFactory.createArrowAnchorShape method introduced</summary>
            <version major="2" minor="4"/>
            <date day="8" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                AnchorShapeFactory.createArrowAnchorShape method introduced.
            </description>
            <class package="org.netbeans.api.visual.anchor" name="AnchorShapeFactory" link="yes"/>
            <issue number="105499"/>
        </change>

        <change>
            <api name="general"/>
            <summary>GraphLayoutFactory.createTreeGraphLayout added</summary>
            <version major="2" minor="4"/>
            <date day="8" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                TreeGraphLayout added.
            </description>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutFactory" link="yes"/>
            <issue number="105278"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Zoom actions are using Ctrl key modifier of invocation</summary>
            <version major="2" minor="4"/>
            <date day="8" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility semantic="incompatible" modification="yes"/>
            <description>
                All built-in zoom actions are using modifiers from Scene.getInputBindings().getZoomActionModifiers() method.
		Default value has been changed from nothing to Ctrl key which backward-incompatible change affecting all users.
		A part of the change InputBindings class has been introduces and assigned to a Scene.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="104976"/>
        </change>

        <change>
            <api name="general"/>
            <summary>VerticalFlowLayout and HorizontalFlowLayout calculates with weights</summary>
            <version major="2" minor="4"/>
            <date day="8" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                When a widget is using VerticalFlowLayout or HorizontalFlowLayout and a child widget has a Number constraint assigned,
                then the Number value represent a radio in with the remaining gap in the widget is split and added to particular child widget.
		See test.layout.WeightFlowLayoutTest for example.
            </description>
            <class package="org.netbeans.api.visual.layout" name="LayoutFactory" link="yes"/>
            <issue number="105390"/>
        </change>

        <change>
            <api name="general"/>
            <summary>ConnectionWidget.controlPointCutDistance property introduced to render smoother corners of the path</summary>
            <version major="2" minor="5"/>
            <date day="25" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                ConnectionWidget.controlPointCutDistance property allows you to specify a distance where the path should be cut
                at each control point.
		See test.widget.ConnectionWidgetCutDistanceTest for example.
            </description>
            <class package="org.netbeans.api.visual.widget" name="ConnectionWidget" link="yes"/>
            <issue number="106508"/>
        </change>

        <change>
            <api name="general"/>
            <summary>VMDColorScheme introduced</summary>
            <version major="2" minor="5"/>
            <date day="25" month="6" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                VMDColorScheme abstract class has been introduced to define a UI of VMD widget.
                There are two predefined schemes available in VMDFactory class. Use them as a paratemer in widget constructors.
            </description>
            <class package="org.netbeans.api.visual.vmd" name="VMDColorScheme" link="yes"/>
            <issue number="105929"/>
        </change>

        <change>
            <api name="general"/>
            <summary>BorderSupport.getSwingBorder method introduced</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                BorderSupport.getSwingBorder method introduced to acquired a Swing border from a library border.
            </description>
            <class package="org.netbeans.api.visual.border" name="BorderSupport" link="yes"/>
            <issue number="103456"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Widget.getDependencies method added</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Widget.getDependencies method is added
            </description>
            <class package="org.netbeans.api.visual.widget" name="Widget" link="yes"/>
            <issue number="107446"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Popup menu action could be invoked by Shift+F10 key</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Popup menu action (created by ActionFactory.createPopupMenuAction method) could be invoked by an user using Shift+F10 key.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="108783"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Widget implements javax.accessibility.Accessible interface</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                The Widget implements javax.accessibility.Accessible interface.
            </description>
            <class package="org.netbeans.api.visual.widget" name="Widget" link="yes"/>
            <issue number="109023"/>
        </change>

        <change>
            <api name="general"/>
            <summary>ActionMapAction is not handling mouse events to show popup menu</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility semantic="incompatible" deletion="yes"/>
            <description>
                ActionMapAction (created by ActionFactory.createActionMapAction method) is not handling mouse events to show popup menu.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="110146"/>
        </change>

        <change>
            <api name="general"/>
            <summary>CycleFocusAction is using Shift+Tab keystroke for focus-to-previous action</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility semantic="incompatible" modification="yes"/>
            <description>
                CycleFocusAction (created using ActionFactory.createCycleFocusAction method) is using Shift+Tab keystroke for focus-to-previous action.
                Previously it was Ctrl+Tab keystroke.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="110389"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Accesibility support improved</summary>
            <version major="2" minor="6"/>
            <date day="1" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility semantic="incompatible" modification="yes"/>
            <description>
                The old logic of resolving accessible context was wrong and was replaced be a logic which by default creates a tree structure
                of Accessible object that copies the structure of widgets in a scene.
            </description>
            <class package="org.netbeans.api.visual.widget" name="Widget" link="yes"/>
            <issue number="108856"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Accurate LabelWidget rendering using glyph vector</summary>
            <version major="2" minor="7"/>
            <date day="10" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                LabelWidget now has useGlyphVector property. If true then the text in a LabelWidget is converted into glyph-vector (a shape)
		that is rendered. This allows accurate rendering independently on zoom-factor of a scene.
                Note that the glyph-vector rendering is slower than regular rendering.
            </description>
            <class package="org.netbeans.api.visual.widget" name="LabelWidget" link="yes"/>
            <issue number="98762"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Widget.validate(Graphics2D) method added to support off-screen rendering</summary>
            <version major="2" minor="7"/>
            <date day="10" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Scene.validate(Graphics2D) method has been added. It allows to validate a scene without having a main scene view created and shown on screen.
                See test.view.OffscreenRenderingTest example for usage.
            </description>
            <class package="org.netbeans.api.visual.widget" name="Widget" link="yes"/>
            <issue number="104474"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Added support to checking AlignWith-actions with client areas</summary>
            <version major="2" minor="7"/>
            <date day="10" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                AlignWithMoveAction and AlignWithResizeAction allow checking client area of widget (widget boundary without border insets).
                There are 4 new methods in ActionFactory class introduces to allow specifying outerBounds parameter.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="105285"/>
        </change>

        <change>
            <api name="general"/>
            <summary>WheelPanAction introduced</summary>
            <version major="2" minor="7"/>
            <date day="10" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                WheelPanAction has been added to allow vertical and horizontal scrolling of a scene view using mouse wheel.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <issue number="107774"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Bird view support added</summary>
            <version major="2" minor="7"/>
            <date day="10" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Bird view is a window that is always under your mouse-cursor and shows the scene with a specified zoom factor.
                A bird view can be created using Scene.createBirdView method. To enable bird view you need to call the BirdViewController.show method on returned controller instance.
            </description>
            <class package="org.netbeans.api.visual.widget" name="Scene" link="yes"/>
            <issue number="108510"/>
        </change>

        <change>
            <api name="general"/>
            <summary>GraphLayouSupport.setTreeGraphLayoutProperties method introduced</summary>
            <version major="2" minor="7"/>
            <date day="10" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                The GraphLayouSupport.setTreeGraphLayoutProperties method allows change properties of tree graph layout i.e. originX, originY, verticalGap, horizontalGap, vertical.
            </description>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutSupport" link="yes"/>
            <issue number="111339"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Anchor.notifyRevalidate method</summary>
            <version major="2" minor="8"/>
            <date day="21" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                Missing Anchor.notifyRevalidate method has been added. Now the Anchor should receive all necessary notification.
                It is used by VMDNodeAnchor too.
            </description>
            <class package="org.netbeans.api.visual.anchor" name="Anchor" link="yes"/>
            <issue number="111987"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Routing policy support for ConnectionWidget</summary>
            <version major="2" minor="9"/>
            <date day="31" month="8" year="2007"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                ConnectionWidget allows to specify routing policy. The policy defines behaviour of path routing in ConnectionWidget.
                There are 4 values: Always-route, Update-end-points-only, Disable-routing-until-end-point-is-moved, Disable-routing.
                AddRemoveControlPointAction and MoveControlPointAction has new factory methods for automatic assignment of routing policy.
            </description>
            <class package="org.netbeans.api.visual.widget" name="ConnectionWidget" link="yes"/>
            <issue number="113573"/>
        </change>
                <change>
            <api name="general"/>
            <summary>Add scene export feature.</summary>
            <version major="2" minor="10"/>
            <date day="26" month="2" year="2008"/>
            <author login="krichards"/>
            <compatibility addition="yes"/>
            <description>
                Added a convenience class, SceneExporter, to allow users to export a Scene to any of a defined set of formats. This 
                export class would also contain functionality to return to polygonal points for each widget that is a child of the 
                layers on the scene.
            </description>
            <package name="org.netbeans.api.visual.export" link="yes"/>
            <issue number="128387"/>
        </change>
        <change>
            <api name="general"/>
            <summary>Add scene printing feature.</summary>
            <version major="2" minor="10"/>
            <date day="26" month="2" year="2008"/>
            <author login="krichards"/>
            <compatibility addition="yes"/>
            <description>
                Added a convenience class (within a separate 
                package) to allow users to print a Scene according to standard constraints.
            </description>
            <package name="org.netbeans.api.visual.print" link="yes"/>
            <issue number="128388"/>
        </change>
        <change id="GraphLayoutFactory.createOrthogonalGraphLayout">
            <api name="general"/>
            <summary>GraphLayoutFactory.createOrthogonalGraphLayout added</summary>
            <version major="2" minor="12"/>
            <date day="12" month="3" year="2008"/>
            <author login="krichard"/>
            <compatibility addition="yes"/>
            <description>
                OrthogonalGraphLayout added.
            </description>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutFactory" link="yes"/>
            <issue number="129948"/>
        </change>
        <change id="GraphLayoutFactory.createHierarchicalGraphLayout">
            <api name="general"/>
            <summary>GraphLayoutFactory.createHierarchicalGraphLayout added</summary>
            <version major="2" minor="12"/>
            <date day="12" month="3" year="2008"/>
            <author login="krichard"/>
            <compatibility addition="yes"/>
            <description>
                HierarchicalGraphLayout added.
            </description>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutFactory" link="yes"/>
            <issue number="129948"/>
        </change>
        <change id="ConnectionWidgetLayout-constraints">
            <api name="general"/>
            <summary>New Connection Widget Layout Constraints Introduced</summary>
            <version major="2" minor="13"/>
            <date day="22" month="4" year="2008"/>
            <author login="tspiva"/>
            <compatibility addition="yes"/>
            <description>
                ConnectionWidgetLayout constraints specify where a child component should be 
                placed in releationship to the connection widget.  However simply stating left, 
                right is not enough when nodes can be moved.  The new constraints specify which
                connection end instead of left, right top, and bottom.
            </description>
            <class package="org.netbeans.api.visual.layout" name="LayoutFactory" link="yes"/>
            <issue number="128348"/>
        </change>
        <change id="attachable-AnchorShape">
            <api name="general"/>
            <summary>New Attachable AnchorShape.</summary>
            <version major="2" minor="13"/>
            <date day="22" month="4" year="2008"/>
            <author login="tspiva"/>
            <compatibility addition="yes"/>
            <description>
                The new anchor shape can wrap an existing anchor shape and provide
                a new cut distance.  One example of when an attachable anchor 
                shape would be used is when a label on a connection widget is
                to be placed between the anchor shape, and the related widget.
            </description>
            <class package="org.netbeans.api.visual.anchor" name="AnchorShapeFactory" link="yes"/>
            <class package="org.netbeans.api.visual.anchor" name="AnchorShapeLocationResolver" link="yes"/>
            <issue number="128348"/>
        </change>
        <change id="ResourceTable">
            <api name="general"/>
            <summary>New Resource Table.</summary>
            <version major="2" minor="14"/>
            <date day="29" month="4" year="2008"/>
            <author login="tspiva"/>
            <compatibility addition="yes"/>
            <description>
                The resource table will allow for a central location for
                properties like font, color and paint objects. The resource 
                table will help enforce an applications look and feel. When a 
                property is updated in the resource table, all interested
                widgets will be notified of the change. The notification allows 
                widgets to update when a resource property changes.
            </description>
            <class package="org.netbeans.api.visual.widget" name="ResourceTable" link="yes"/>
            <class package="org.netbeans.api.visual.widget" name="Widget" link="yes"/>
            <class package="org.netbeans.api.visual.border" name="BorderFactory" link="yes"/>
            <class package="org.netbeans.api.visual.widget" name="Scene" link="yes"/>
            <issue number="128348"/>
        </change>
        <change id="GraphLayoutFactory.createHierarchicalGraphLayout2">
            <api name="general"/>
            <summary>GraphLayoutFactory.createHierarchicalGraphLayout added two additional
            calls to allow configuration of inverted and layout spacing.</summary>
            <version major="2" minor="15"/>
            <date day="24" month="6" year="2008"/>
            <author login="krichard"/>
            <compatibility addition="yes"/>
            <description>
                There are certain graphs which demand that the hierarchical layout 
                be inverted (target above source). One such graph would be a UML 
                class diagram. For this reason I propose adding a static call to 
                the GraphLayoutFactory to allow for an "inverted" flag to be provided. 
                The default behavior sets inverted to false.
                
                Another call to be added the the GraphLayoutFactory would include 
                "inverted", "horizontal spacing", and "layer spacing" (vertical). 
                The default all remain the same.
            </description>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutFactory" link="yes"/>
            <issue number="138104"/>
        </change>
        <change>
            <api name="general"/>
            <summary>Added interface that extends EditorController for ability to query for invocation type</summary>
            <version major="2" minor="16"/>
            <date day="25" month="8" year="2008"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                 <a href="@TOP@/org/netbeans/api/visual/action/InplaceEditorProvider.TypedEditorController.html"><code>InplaceEditorProvider.TypedEditorController</code></a>
                contains <code>getEditorInvocationType()</code> which returns <a href="@TOP@/org/netbeans/api/visual/action/InplaceEditorProvider.EditorInvocationType.html">invocation type</a>  
                (<code>MOUSE</code>, <code>KEY</code>, <code>CODE</code>).
            </description>
            <class package="org.netbeans.api.visual.action" name="InplaceEditorProvider" link="yes"/>
            <issue number="144123"/>
        </change>
        <change>
            <api name="general"/>
            <summary>Support for contiguous selection action added (factory method+provider+event)</summary>
            <version major="2" minor="17"/>
            <date day="7" month="9" year="2008"/>
            <author login="dkaspar"/>
            <compatibility addition="yes"/>
            <description>
                <a href="@TOP@/org/netbeans/api/visual/action/ActionFactory.html#createContiguousSelectAction(org.netbeans.api.visual.action.ContiguousSelectProvider)">
                    <code>ActionFactory.createContiguousSelectAction</code></a> creates contiguous selection action.
                <a href="@TOP@/org/netbeans/api/visual/action/ContiguousSelectProvider.html"><code>ContiguousSelectProvider</code></a>
                provides logic for selection action. 
                <a href="@TOP@/org/netbeans/api/visual/action/ContiguousSelectEvent.html"><code>ContiguousSelectEvent</code></a>
                is an event for <code>ContiguousSelectProvider</code>.
            </description>
            <class package="org.netbeans.api.visual.action" name="ActionFactory" link="yes"/>
            <class package="org.netbeans.api.visual.action" name="ContiguousSelectProvider" link="yes"/>
            <class package="org.netbeans.api.visual.action" name="ContiguousSelectEvent" link="yes"/>
            <issue number="144139"/>
        </change>
        <change>
            <api name="general"/>
            <summary>Enhancement of the old layout and adding the possibility of minimizing the gaps between nodes.</summary>
            <version major="2" minor="25"/>
            <date day="17" month="5" year="2010"/>
            <author login="ep-nb"/>
            <compatibility addition="yes"/>
            <description>
                The old layout was improved in a way that nodes in a subtree are vertically aligned by the center of the super nodes. Also the possibility of overlapping in the old layout was removed by adding an approach based on the envelope of the (sub)trees.
                The second improvement was done by adding the possibility of minimizing the gaps between nodes. If a tree was very wide, the old layout used a lot of space. To prevent this the new algorithm with the possibility of minimization of gaps is based on the envelope. Therefore subtrees move as close together as possible. 
            </description>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutFactory" link="yes"/>
            <class package="org.netbeans.api.visual.graph.layout" name="GraphLayoutSupport" link="yes"/>
            <issue number="178705"/>
        </change>
        <change>
            <api name="general"/>
            <summary>Widget Implements Lookup.Provider</summary>
            <version major="2" minor="36"/>
            <date day="29" month="11" year="2012"/>
            <author login="jhavlin"/>
            <compatibility addition="yes"/>
            <description>
                Class <code>Widget</code> implements interface
                <code>Lookup.Provider</code>. It already contains method
                <code>getLookup()</code>.
            </description>
            <class package="org.netbeans.api.visual.widget" name="Widget"/>
            <issue number="216581"/>
        </change>

        <change>
            <api name="general"/>
            <summary>Pan action allows change of invoking mouse button</summary>
            <version major="2" minor="40"/>
            <date day="24" month="7" year="2013"/>
            <author login="mantlik"/>
            <compatibility addition="yes"/>
            <description>
                Built-in pan action is using button from <code>Scene.getInputBindings().getPanActionButton()</code> method.
		Default value remains <code>MouseEvent.BUTTON2</code>, i.e. mouse wheel, which is compatible with the previous
                implementation.
            </description>
            <class package="org.netbeans.api.visual.laf" name="InputBindings" link="yes"/>
            <issue number="233296"/>
        </change>

    </changes>

    <htmlcontents>
    <head>
      <title>Change History for the Visual Library API</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
    </head>
    <body>

<p class="overviewlink"><a href="@TOP@/overview-summary.html">Overview</a></p>

<h1>Introduction</h1>

<p>This document lists changes made to the <a href="@TOP@/overview-summary.html">Visual Library API</a>.
Please, ask on the users@graph.netbeans.org mailing list if you have any question about the details of a change,
or are wondering how to convert existing code to be compatible.</p>

      <hr/>
      <standard-changelists module-code-name="org.netbeans.api.visual"/>

      <hr/><p>@FOOTER@</p>

    </body>
  </htmlcontents>

</apichanges>
