<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<?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>

    <!-- First, a list of API names you may use: -->
    <apidefs>
        <apidef name="ui">Autoupdate UI API</apidef>
    </apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->

    <changes>
        <change id="PluginManager.installPlugins">
            <api name="ui"/>
            <summary>PluginManager.install</summary>
            <version major="1" minor="35"/>
            <date day="13" month="2" year="2013"/>
            <author login="phejl"/>
            <compatibility addition="yes" binary="compatible" deletion="no"
                deprecation="no" semantic="compatible" source="compatible"
            />
            <description>
                <p>
                <code>PluginManager</code> ands its
                <a href="@TOP@/org/netbeans/modules/autoupdate/ui/api/PluginManager.html#installSingle-java.lang.String-java.lang.String-java.lang.Object...-">installSingle</a>
                and <a href="@TOP@/org/netbeans/modules/autoupdate/ui/api/PluginManager.html#install-java.util.Set-java.lang.Object...-">install</a>
                shows standard UI for easy installation of single plugin based
                on codenamebase.
                </p>
            </description>
            <class package="org.netbeans.modules.autoupdate.ui.api" name="PluginManager"/>
            <issue number="196538"/>
        </change>
        <change id="PluginManager.openInstallWizard">
            <api name="ui"/>
            <summary>PluginManager.openInstallWizard</summary>
            <version major="1" minor="21"/>
            <date day="15" month="2" year="2011"/>
            <author login="jtulach"/>   
            <compatibility addition="yes" binary="compatible" deletion="no"
                deprecation="yes" semantic="compatible" source="compatible"  
            />
            <description>
                <p>
                <code>PluginManager</code> ands its 
                <a href="@TOP@/org/netbeans/modules/autoupdate/ui/api/PluginManager.html#openInstallWizard-org.netbeans.api.autoupdate.OperationContainer-">openInstallWizard</a>
                shows standard UI for installing of selected modules.
                </p>
            </description>
            <class package="org.netbeans.modules.autoupdate.ui.api" name="PluginManager"/>
            <issue number="194518"/>
        </change>
    </changes>

    <!-- Now the surrounding HTML text and document structure: -->

    <htmlcontents>
<!--

                            NO NO NO NO NO!

         ==============>    DO NOT EDIT ME!  <==============

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE projects/projectapi/apichanges.xml

-->
    <head>
      <title>Change History for the Autoupdate UI API</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
    </head>
    <body>

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

<h1>Introduction</h1>

<p>This document lists changes made to the <a href="@org-netbeans-modules-autoupdate-ui@/index.html">Autoupdate UI API</a>.</p>

<!-- The actual lists of changes, as summaries and details: -->
      <hr/>
      <standard-changelists module-code-name="org.netbeans.modules.autoupdate.ui"/>

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

    </body>
  </htmlcontents>

</apichanges>
