You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ar...@apache.org on 2012/01/27 02:29:58 UTC

svn commit: r1236486 [17/43] - in /incubator/ooo/devtools/netbeansintegration: ./ build/ build/public-package-jars/ javahelp/ javahelp/org/ javahelp/org/openoffice/ javahelp/org/openoffice/extensions/ javahelp/org/openoffice/extensions/docs/ javahelp/o...

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VerifyData.java
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VerifyData.java?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VerifyData.java (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VerifyData.java Fri Jan 27 01:29:33 2012
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: VerifyData.java,v $
+ *
+ *  $Revision: 1.2 $
+ *
+ *  last change: $Author: sg $ $Date: 2009/07/06 14:51:28 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+package org.openoffice.extensions.projecttemplates.actions.panel;
+
+import java.awt.Image;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import org.openide.util.ImageUtilities;
+import org.openide.util.NbBundle;
+
+/**
+ *
+ * @author sg128468
+ */
+public class VerifyData {
+
+    private static VerifyData theVerifyer;
+
+    public static VerifyData getVerifyer() {
+        if (theVerifyer == null) {
+            theVerifyer = new VerifyData();
+        }
+        return theVerifyer;
+    }
+
+    private final int NO_ERROR = 0;
+    private final int WARNING = 1;
+    private final int ERROR = 2;
+    
+    private String mErrorMessage;
+    private int mErrorLevel;
+    
+    
+    private VerifyData() {
+    }
+    
+    private void reset() {
+        mErrorLevel = NO_ERROR;
+        mErrorMessage = "";
+    }
+    
+    /**
+     * verify the data from the data handler: verifies all but localized 
+     * and UI stuff
+     * @param m_Handler the data handler
+     * @return true if data is ok.
+     */
+    public boolean verifyData(DataHandler m_Handler) {
+        reset();
+        boolean result = true;
+        String identifier = m_Handler.getIdentifier();
+        if (identifier != null && identifier.length() > 0 && identifier.indexOf('.') == -1) {
+            result = false;
+            mErrorLevel = WARNING;
+            mErrorMessage = NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.Identifier");
+        }
+        String version = m_Handler.getVersion();
+        // regexp matches numbers followed by a dot followed by numbers
+        final String regexp = "\\d+(\\.\\d+)*";
+        if (version!= null && version.length() > 0 && !version.matches(regexp)) {
+            result = false;
+            mErrorLevel = WARNING;
+            mErrorMessage = NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.Version");
+        }
+        String depVersion = m_Handler.getDependencyNumber();
+        if (depVersion!= null && depVersion.length() > 0 && !depVersion.matches(regexp)) { // same regexp as before
+            result = false;
+            mErrorLevel = WARNING;
+            mErrorMessage = NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.DepVersion");
+        }
+        return result;
+    }
+    
+    /**
+     * verify the localized data and UI stuff from the data handler
+     * @param m_Handler the data handler
+     * @return true if data is ok.
+     */
+    public boolean verifyLocalizedData(DataHandler m_Handler) {
+        reset();
+
+        GenericDescriptionProperty<String> displayData = m_Handler.getDisplayData();
+        GenericDescriptionProperty<String> descriptionData = m_Handler.getDescriptionData();
+        GenericDescriptionProperty<String> licenseFiles = m_Handler.getLicenseFiles();
+        GenericDescriptionProperty<String[]> publisherData = m_Handler.getPublisherData();
+        String[] displayLocales = displayData.getAllLocales();
+        String[] descriptionLocales = descriptionData.getAllLocales();
+        String[] licenseLocales = licenseFiles.getAllLocales();
+        String[] publisherLocales = publisherData.getAllLocales();
+        // get most locales
+        String[] localeList = getBiggestLocaleArray(displayLocales, descriptionLocales, publisherLocales, licenseLocales);
+        for (int i = 0; i < localeList.length; i++) {
+            String locale = localeList[i];
+            // at least one entry must be there
+            if (displayLocales != null && displayLocales.length > 0) {
+                if (displayData.getPropertyForLocale(locale) == null) {
+                    mErrorLevel = WARNING;
+                    buildErrorMessage(NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.DisplayName"), locale);
+                    return false; // fast exit
+                }
+            }
+            if (descriptionLocales != null && descriptionLocales.length > 0) {
+                if (descriptionData.getPropertyForLocale(locale) == null) {
+                    mErrorLevel = WARNING;
+                    buildErrorMessage(NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.Description"), locale);
+                    return false; // fast exit
+                }
+            }
+            if (licenseLocales != null && licenseLocales.length > 0) {
+                if (licenseFiles.getPropertyForLocale(locale) == null) {
+                    mErrorLevel = WARNING;
+                    buildErrorMessage(NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.License"), locale);
+                    return false; // fast exit
+                }
+            }
+            if (publisherLocales != null && publisherLocales.length > 0) {
+                if (publisherData.getPropertyForLocale(locale) == null) {
+                    mErrorLevel = WARNING;
+                    buildErrorMessage(NbBundle.getMessage(VerifyData.class, "VerifyData.ErrorMessage.DisplayName"), locale);
+                    return false; // fast exit
+                }
+                else { // realyy needed? test it!
+                    
+                }
+            }
+        }
+        return true;
+    }
+
+    private void buildErrorMessage(String message, String locale) {
+        mErrorMessage = message.replace("$1", locale);
+    }
+    
+    private String[] getBiggestLocaleArray(String[] locale1, String[] locale2, String[] locale3, String[] locale4) {
+        String[] returnLocale = new String[0];
+        if (locale1 != null && returnLocale.length < locale1.length) {
+            returnLocale = locale1;
+        }
+        if (locale2 != null && returnLocale.length < locale2.length) {
+            returnLocale = locale2;
+        }
+        if (locale3 != null && returnLocale.length < locale3.length) {
+            returnLocale = locale3;
+        }
+        if (locale4 != null && returnLocale.length < locale4.length) {
+            returnLocale = locale4;
+        }
+        return returnLocale;
+    }
+    
+    public boolean allIsOK() {
+        return mErrorLevel == NO_ERROR;
+    }
+    
+    public String getErrorMessage() {
+        if (!allIsOK()) {
+            return mErrorMessage;
+        }
+        return "";
+    }
+    
+    public Icon getErrorIcon() {
+        String icon = "org/openoffice/extensions/projecttemplates/component/icons/error.png"; // NOI18N
+        ImageIcon imageIcon = null;
+        Image img = null;
+        switch(mErrorLevel) {
+            case ERROR:
+                img = ImageUtilities.loadImage(icon);
+                imageIcon = new ImageIcon(img);
+                break;
+            case WARNING:
+                img = ImageUtilities.loadImage(icon);
+                imageIcon = new ImageIcon(img);
+                break;
+            default:
+                // icon stays null in this case
+        }
+        return imageIcon;
+    }
+}

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.form
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.form?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.form (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.form Fri Jan 27 01:29:33 2012
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.4" maxVersion="1.6" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Group type="103" groupAlignment="1" max="-2" attributes="0">
+                  <Component id="jUpdate" alignment="0" max="32767" attributes="1"/>
+                  <Component id="jDepName" alignment="0" max="32767" attributes="1"/>
+                  <Component id="jDepValue" alignment="0" max="32767" attributes="1"/>
+                  <Component id="jVersionLabel" alignment="0" max="32767" attributes="1"/>
+                  <Component id="jIdentifierLabel" alignment="0" pref="109" max="32767" attributes="1"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jScrollPane1" pref="279" max="32767" attributes="0"/>
+                  <Component id="jTextFieldDepName" pref="279" max="32767" attributes="0"/>
+                  <Component id="jTextFieldDepValue" pref="279" max="32767" attributes="0"/>
+                  <Component id="jTextFieldVersion" pref="279" max="32767" attributes="0"/>
+                  <Component id="jTextFieldIdentifier" alignment="0" pref="279" max="32767" attributes="0"/>
+              </Group>
+          </Group>
+          <Component id="jErrorLabel" alignment="0" pref="411" max="32767" attributes="0"/>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jIdentifierLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jTextFieldIdentifier" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jVersionLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jTextFieldVersion" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jDepValue" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jTextFieldDepValue" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="jDepName" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jTextFieldDepName" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jUpdate" min="-2" max="-2" attributes="0"/>
+                  <Component id="jScrollPane1" min="-2" pref="110" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace pref="74" max="32767" attributes="0"/>
+              <Component id="jErrorLabel" min="-2" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="jIdentifierLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="jTextFieldIdentifier"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/actions/panel/Bundle.properties" key="VersionPanel.jIdentifierLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jVersionLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="jTextFieldVersion"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/actions/panel/Bundle.properties" key="VersionPanel.jVersionLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jDepValue">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="jTextFieldDepValue"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/actions/panel/Bundle.properties" key="VersionPanel.jDepValue.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jDepName">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="jTextFieldDepName"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/actions/panel/Bundle.properties" key="VersionPanel.jDepName.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jUpdate">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="jEditorPaneUpdateURL"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/actions/panel/Bundle.properties" key="VersionPanel.jUpdate.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+    </Component>
+    <Component class="javax.swing.JTextField" name="jTextFieldIdentifier">
+    </Component>
+    <Component class="javax.swing.JTextField" name="jTextFieldVersion">
+    </Component>
+    <Component class="javax.swing.JTextField" name="jTextFieldDepValue">
+    </Component>
+    <Component class="javax.swing.JTextField" name="jTextFieldDepName">
+      <Properties>
+        <Property name="editable" type="boolean" value="false"/>
+      </Properties>
+    </Component>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JEditorPane" name="jEditorPaneUpdateURL">
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JLabel" name="jErrorLabel">
+      <Properties>
+        <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+          <Color blue="0" green="0" red="ff" type="rgb"/>
+        </Property>
+      </Properties>
+    </Component>
+  </SubComponents>
+</Form>

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.java
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.java?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.java (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/actions/panel/VersionPanel.java Fri Jan 27 01:29:33 2012
@@ -0,0 +1,266 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: VersionPanel.java,v $
+ *
+ *  $Revision: 1.4 $
+ *
+ *  last change: $Author: sg $ $Date: 2009/10/26 08:01:12 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+package org.openoffice.extensions.projecttemplates.actions.panel;
+
+import java.util.StringTokenizer;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.text.Document;
+import org.openide.util.HelpCtx;
+
+/**
+ *
+ * @author  sg128468
+ */
+public class VersionPanel extends javax.swing.JPanel implements DocumentListener, HelpCtx.Provider {
+    
+    private static final String OPEN_OFFICE_NAME = "OpenOffice.org "; // NOI18N
+    
+    private DataHandler m_Handler;
+//    private FileObject m_projDir;
+
+    /** Creates new form VersionPanel */
+    public VersionPanel(DataHandler handler) {
+        m_Handler = handler;
+//        m_projDir = projDir;
+        initComponents();
+        loadData();
+        jTextFieldVersion.getDocument().addDocumentListener(this);
+        jTextFieldIdentifier.getDocument().addDocumentListener(this);
+        jTextFieldDepValue.getDocument().addDocumentListener(this);
+        jEditorPaneUpdateURL.getDocument().addDocumentListener(this);
+    }
+
+    /** This method is called from within the constructor to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     */
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        jIdentifierLabel = new javax.swing.JLabel();
+        jVersionLabel = new javax.swing.JLabel();
+        jDepValue = new javax.swing.JLabel();
+        jDepName = new javax.swing.JLabel();
+        jUpdate = new javax.swing.JLabel();
+        jTextFieldIdentifier = new javax.swing.JTextField();
+        jTextFieldVersion = new javax.swing.JTextField();
+        jTextFieldDepValue = new javax.swing.JTextField();
+        jTextFieldDepName = new javax.swing.JTextField();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        jEditorPaneUpdateURL = new javax.swing.JEditorPane();
+        jErrorLabel = new javax.swing.JLabel();
+
+        jIdentifierLabel.setLabelFor(jTextFieldIdentifier);
+        org.openide.awt.Mnemonics.setLocalizedText(jIdentifierLabel, org.openide.util.NbBundle.getMessage(VersionPanel.class, "VersionPanel.jIdentifierLabel.text")); // NOI18N
+
+        jVersionLabel.setLabelFor(jTextFieldVersion);
+        org.openide.awt.Mnemonics.setLocalizedText(jVersionLabel, org.openide.util.NbBundle.getMessage(VersionPanel.class, "VersionPanel.jVersionLabel.text")); // NOI18N
+
+        jDepValue.setLabelFor(jTextFieldDepValue);
+        org.openide.awt.Mnemonics.setLocalizedText(jDepValue, org.openide.util.NbBundle.getMessage(VersionPanel.class, "VersionPanel.jDepValue.text")); // NOI18N
+
+        jDepName.setLabelFor(jTextFieldDepName);
+        jDepName.setText(org.openide.util.NbBundle.getMessage(VersionPanel.class, "VersionPanel.jDepName.text")); // NOI18N
+
+        jUpdate.setLabelFor(jEditorPaneUpdateURL);
+        org.openide.awt.Mnemonics.setLocalizedText(jUpdate, org.openide.util.NbBundle.getMessage(VersionPanel.class, "VersionPanel.jUpdate.text")); // NOI18N
+
+        jTextFieldDepName.setEditable(false);
+
+        jScrollPane1.setViewportView(jEditorPaneUpdateURL);
+
+        jErrorLabel.setForeground(new java.awt.Color(255, 0, 0));
+
+        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
+        this.setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(layout.createSequentialGroup()
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jUpdate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jDepName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jDepValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jVersionLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .add(org.jdesktop.layout.GroupLayout.LEADING, jIdentifierLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 109, Short.MAX_VALUE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
+                    .add(jTextFieldDepName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
+                    .add(jTextFieldDepValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
+                    .add(jTextFieldVersion, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
+                    .add(jTextFieldIdentifier, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)))
+            .add(jErrorLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 411, Short.MAX_VALUE)
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+            .add(layout.createSequentialGroup()
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jIdentifierLabel)
+                    .add(jTextFieldIdentifier, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jVersionLabel)
+                    .add(jTextFieldVersion, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jDepValue)
+                    .add(jTextFieldDepValue, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+                    .add(jDepName)
+                    .add(jTextFieldDepName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+                    .add(jUpdate)
+                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 110, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 74, Short.MAX_VALUE)
+                .add(jErrorLabel))
+        );
+    }// </editor-fold>//GEN-END:initComponents
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JLabel jDepName;
+    private javax.swing.JLabel jDepValue;
+    private javax.swing.JEditorPane jEditorPaneUpdateURL;
+    private javax.swing.JLabel jErrorLabel;
+    private javax.swing.JLabel jIdentifierLabel;
+    private javax.swing.JScrollPane jScrollPane1;
+    private javax.swing.JTextField jTextFieldDepName;
+    private javax.swing.JTextField jTextFieldDepValue;
+    private javax.swing.JTextField jTextFieldIdentifier;
+    private javax.swing.JTextField jTextFieldVersion;
+    private javax.swing.JLabel jUpdate;
+    private javax.swing.JLabel jVersionLabel;
+    // End of variables declaration//GEN-END:variables
+
+    
+    
+    /**
+     * Initial data in fields
+     */
+    private void loadData() {
+        String extensionID = m_Handler.getIdentifier();
+        if (extensionID != null) {
+            jTextFieldIdentifier.setText(extensionID);
+        }
+        
+        String versionNumber = m_Handler.getVersion();
+        if (versionNumber != null) {
+            jTextFieldVersion.setText(versionNumber);
+        }
+        
+        String depName = m_Handler.getDependencyName();
+        if (depName != null) {
+            jTextFieldDepName.setText(depName);
+        }
+        
+        String depValue = m_Handler.getDependencyNumber();
+        if (depValue != null) {
+            jTextFieldDepValue.setText(depValue);
+        }
+        
+        String[] updateURLs = m_Handler.getUpdateURLs();
+        if (updateURLs != null && updateURLs.length > 0) {
+            String string = "";
+            for (int i = 0; i < updateURLs.length; i++) {
+                string.concat(updateURLs[i]).concat("\n"); // NOI18N
+            }
+            jEditorPaneUpdateURL.setText(string);
+        }
+    }
+
+    public HelpCtx getHelpCtx() {
+        return new HelpCtx("org.openoffice.extensions.actions.version.properties");
+    }
+    
+    /**
+     * Update the texts and settings for this panel
+     * @param document The document of the field that has been changed
+     */
+    private void updateTexts(Document document) {
+        if (document.equals(jTextFieldVersion.getDocument())) {
+            String version = jTextFieldVersion.getText();
+            m_Handler.setVersion(version);
+        }
+        if (document.equals(jTextFieldIdentifier.getDocument())) {
+            String identifier = jTextFieldIdentifier.getText();
+            m_Handler.setIdentifier(identifier);
+        }
+        if (document.equals(jTextFieldDepValue.getDocument())) {
+            String depValue = jTextFieldDepValue.getText();
+            String depName = OPEN_OFFICE_NAME.concat(depValue);
+            m_Handler.setDependencyNumber(depValue);
+            m_Handler.setDependencyName(depName);
+            jTextFieldDepName.setText(depName);
+        }
+        if (document.equals(jEditorPaneUpdateURL.getDocument())) {
+            String text = jEditorPaneUpdateURL.getText();
+            StringTokenizer tk = new StringTokenizer(text, "\n");
+            String[] urls = new String[tk.countTokens()];
+            int index = 0;
+            while (tk.hasMoreTokens()) {
+                urls[index++] = tk.nextToken();
+            }
+            m_Handler.setUpdateURLs(urls);
+        }
+        VerifyData verifyer = VerifyData.getVerifyer();
+        if (!verifyer.verifyData(m_Handler)) {
+            String message = verifyer.getErrorMessage();
+            jErrorLabel.setText(message);
+            jErrorLabel.setIcon(verifyer.getErrorIcon());
+        }
+        else {
+            jErrorLabel.setText("");
+            jErrorLabel.setIcon(null);
+        }
+
+    }
+
+    public void insertUpdate(DocumentEvent e) {
+        updateTexts(e.getDocument());
+    }
+
+    public void removeUpdate(DocumentEvent e) {
+        updateTexts(e.getDocument());
+    }
+
+    public void changedUpdate(DocumentEvent e) {
+        updateTexts(e.getDocument());
+    }
+
+}

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnActions.java
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnActions.java?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnActions.java (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnActions.java Fri Jan 27 01:29:33 2012
@@ -0,0 +1,371 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: AddOnActions.java,v $
+ *
+ *  $Revision: 1.8 $
+ *
+ *  last change: $Author: sg $ $Date: 2007/08/15 13:45:14 $
+ *
+ *  The Contents of this file are made available subject to
+ *  the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ *    GNU Lesser General Public License Version 2.1
+ *    =============================================
+ *    Copyright 2005 by Sun Microsystems, Inc.
+ *    901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License version 2.1, as published by the Free Software Foundation.
+ *
+ *    This library is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *    Lesser General Public License for more details.
+ *
+ *    You should have received a copy of the GNU Lesser General Public
+ *    License along with this library; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *    MA  02111-1307  USA
+ *
+ ************************************************************************/
+
+package org.openoffice.extensions.projecttemplates.addon;
+
+import java.beans.PropertyVetoException;
+import java.util.Iterator;
+import java.util.Vector;
+import org.openide.explorer.ExplorerManager;
+import org.openide.nodes.Node;
+import org.openoffice.extensions.projecttemplates.addon.datamodel.AddOn;
+import org.openoffice.extensions.projecttemplates.addon.datamodel.Command;
+import org.openoffice.extensions.projecttemplates.addon.datamodel.SeparatorElement;
+import org.openoffice.extensions.projecttemplates.addon.datamodel.SubMenuElement;
+import org.openoffice.extensions.projecttemplates.addon.datamodel.node.AddOnChildren;
+import org.openoffice.extensions.projecttemplates.addon.datamodel.node.AddOnNode;
+import org.openoffice.extensions.projecttemplates.calcaddin.LanguageHandlingDialog;
+import org.openoffice.extensions.util.LogWriter;
+import org.openoffice.extensions.util.datamodel.NbNodeObject;
+import org.openoffice.extensions.util.datamodel.actions.BaseAction;
+import org.openoffice.extensions.util.datamodel.actions.LanguageAction;
+import org.openoffice.extensions.util.datamodel.properties.LocalizedOpenOfficeOrgProperty;
+
+/**
+ *
+ * @author sg128468
+ */
+public class AddOnActions implements BaseAction, LanguageAction {
+    
+    private ExplorerManager manager;
+    private ActionPanel panel;
+    private Vector<Command> deletedCommands;
+
+    /** Creates a new instance of AddOnActions */
+    public AddOnActions(ExplorerManager manager, 
+            ActionPanel panel) {
+        this.manager = manager;
+        this.panel = panel;
+        this.deletedCommands = new Vector<Command>();
+    }
+
+    public Vector<Command> getDeletedCommands() {
+        return deletedCommands;
+    }
+    
+    public void addCommandAction() {
+        NbNodeObject selectedObject = getSelectedObject();
+        Node node = manager.getRootContext();
+        if (node != null) {
+            // get the data object
+            NbNodeObject nodeObject = (NbNodeObject)
+                    node.getLookup().lookup(NbNodeObject.class);
+            AddOn addon = (AddOn)nodeObject;
+            // add function
+            addon.addCommand(selectedObject);
+
+            // update UI
+            AddOnChildren children = (AddOnChildren)node.getChildren();
+            children.update();
+            panel.fireChangeEvent(); // Notify that the panel changed
+            selectNextNode();
+        }
+    }
+
+    public SubMenuElement addMenuAction() {
+        NbNodeObject selectedObject = getSelectedObject();
+        Node node = getNextMenuNode();
+        if (node != null) {
+            // get the data object "AddIn"
+            NbNodeObject nodeObject = (NbNodeObject)node.getLookup().lookup(NbNodeObject.class);
+            AddOn addon = (AddOn)nodeObject;
+            // add function
+            SubMenuElement subMenu = addon.addMenuElement(selectedObject);
+
+            // update UI
+            AddOnChildren children = (AddOnChildren)node.getChildren();
+            children.update();
+            panel.fireChangeEvent(); // Notify that the panel changed
+            return subMenu;
+        }
+        return null;
+    }
+
+    public SeparatorElement addSeparatorAction() {
+        NbNodeObject selectedObject = getSelectedObject();
+        Node node = getNextMenuNode();
+        if (node != null) {
+            // get the data object "AddIn"
+            NbNodeObject nodeObject = (NbNodeObject)node.getLookup().lookup(NbNodeObject.class);
+            AddOn addon = (AddOn)nodeObject;
+            // add function
+            SeparatorElement sep = addon.addSeparatorElement(selectedObject);
+
+            // update UI
+            AddOnChildren children = (AddOnChildren)node.getChildren();
+            children.update();
+            panel.fireChangeEvent(); // Notify that the panel changed
+            return sep;
+        }
+        return null;
+    }
+
+    public void deleteAction() {
+        NbNodeObject nodeObject = getSelectedObject();
+        if (nodeObject != null) {
+            if (nodeObject instanceof Command) {
+                Command f = (Command)nodeObject;
+                AddOn addon = (AddOn)nodeObject.getParent();
+                addon.removeCommand(f);
+            }
+            else if (nodeObject instanceof AddOn) {
+                SubMenuElement m = (SubMenuElement)nodeObject;
+                // keep the deleted commands in deleted vector for restoring
+                NbNodeObject[] subCommands = m.getAllCommands();
+                for (int i = 0; i < subCommands.length; i++) {
+                    this.deletedCommands.add((Command)subCommands[i]);
+                }
+                AddOn addon = (AddOn)nodeObject.getParent();
+                addon.removeMenuElement(m);
+            }
+            else if (nodeObject instanceof SeparatorElement) {
+                SeparatorElement se = (SeparatorElement)nodeObject;
+                AddOn addon = (AddOn)nodeObject.getParent();
+                addon.removeSeparatorElement(se);
+            }
+            else {
+                return; // return and do not update UI unnecessarily
+            }
+            // update UI
+            AddOnChildren children = (AddOnChildren)
+                    manager.getSelectedNodes()[0].getParentNode().getChildren(); 
+            children.update(); // updates nodes
+            panel.fireChangeEvent();
+        }
+    }
+
+    public void moveUp() {
+        Node[] selectedNodes = manager.getSelectedNodes();
+        NbNodeObject object = getSelectedObject();
+        if (object != null) {
+            NbNodeObject parent = object.getParent();
+            AddOn addon = (AddOn)parent;
+            addon.moveUp(object);
+            // update UI
+            Node parentNode = selectedNodes[0].getParentNode();
+            AddOnChildren children = (AddOnChildren)parentNode.getChildren();
+            children.update(); // updates nodes
+            panel.fireChangeEvent();
+        }
+        try {
+            manager.setSelectedNodes(selectedNodes);
+        } catch (PropertyVetoException ex) {
+            LogWriter.getLogWriter().printStackTrace(ex);
+        }
+    }
+    
+    public void moveDown() {
+        Node[] selectedNodes = manager.getSelectedNodes();
+        NbNodeObject object = getSelectedObject();
+        if (object != null) {
+            NbNodeObject parent = object.getParent();
+            AddOn addon = (AddOn)parent;
+            addon.moveDown(object);
+            // update UI
+            AddOnChildren children = (AddOnChildren)
+                    manager.getSelectedNodes()[0].getParentNode().getChildren(); 
+            children.update(); // updates nodes
+            panel.fireChangeEvent();
+        }
+        try {
+            manager.setSelectedNodes(selectedNodes);
+        } catch (PropertyVetoException ex) {
+            LogWriter.getLogWriter().printStackTrace(ex);
+        }
+    }
+    
+    public void toggleVisibility() {
+        Node[] selected = manager.getSelectedNodes();
+        if (selected == null || selected.length == 0) {
+            return; // nothing to do
+        }
+        Node selectedNode = selected[0]; // single tree selection
+        Node parent = selectedNode.getParentNode();
+        NbNodeObject object = (NbNodeObject)selectedNode.getLookup().lookup(NbNodeObject.class);
+
+        // if not a command selected, delete the stuff!
+        if (object.getType() != NbNodeObject.FUNCTION_TYPE) {
+            this.deleteAction();
+            return;
+        }
+        Command f = (Command)object;
+        AddOn addon = (AddOn)f.getParent();
+        deletedCommands.add(f);
+        addon.removeCommand(f);
+        // update UI
+        AddOnChildren children = (AddOnChildren)parent.getChildren(); 
+        children.update(); // updates nodes
+        panel.fireChangeEvent();
+    }
+
+    public void restoreCommands() {
+        Node rootNode = manager.getRootContext();
+        AddOn addOn = (AddOn)rootNode.getLookup().lookup(NbNodeObject.class);
+        AddOn subMenu = null;
+        NbNodeObject[] subMenus = addOn.getAllSubObjects();
+        if (subMenus != null && subMenus.length != 0)
+            subMenu = (AddOn)subMenus[0];
+        else 
+            subMenu = addOn;
+        for (Iterator<Command> it = deletedCommands.iterator(); it.hasNext(); ) {
+            Command com = it.next();
+            subMenu.insertCommand(com);
+        }
+        deletedCommands.clear();
+        // update UI
+        AddOnChildren children = (AddOnChildren)
+                    rootNode.getChildren().getNodes()[0].getChildren(); 
+        children.update(); // updates nodes
+        panel.fireChangeEvent();
+    }
+    
+    public void restoreCommand(Command com) {
+        Node[] selected = manager.getSelectedNodes();
+        Node selectedNode = null;
+        if (selected == null || selected.length == 0) { // all commands removed
+            selected = manager.getRootContext().getChildren().getNodes();
+            if (selected != null && selected.length > 0) { // nothing selected: take top menu
+                selectedNode = selected[0];
+            }
+            else { // top menu gone: must not happen!
+                LogWriter.getLogWriter().log(LogWriter.LEVEL_CRITICAL, 
+                    "Top Level Menu is gone from menu structure"); // NOI18N
+                selectedNode = manager.getRootContext(); // insert top level?
+            }
+        }
+        else {
+            selectedNode = selected[0]; // single tree selection
+        }
+        NbNodeObject object = (NbNodeObject)selectedNode.getLookup().lookup(NbNodeObject.class);
+        int type = object.getType();
+        if (type == NbNodeObject.UI_MENU_TYPE || type == NbNodeObject.ADDON_TYPE) {
+            AddOn addOn = (AddOn)object;
+            addOn.insertCommand(com);
+        }
+        else {
+            AddOn addOn = (AddOn)object.getParent();
+            selectedNode = selectedNode.getParentNode();
+            addOn.insertCommand(com, object);
+        }
+        deletedCommands.remove(com);
+        // update UI
+        AddOnChildren children = (AddOnChildren)selectedNode.getChildren(); 
+        children.update(); // updates nodes
+        panel.fireChangeEvent();
+    }
+    
+    public void addLanguageAction() {
+        // get used languages
+        AddOnNode rootNode = (AddOnNode)manager.getRootContext();
+        NbNodeObject nodeObject = (NbNodeObject)rootNode.getLookup().lookup(NbNodeObject.class);
+        AddOn addon = (AddOn)nodeObject;
+        LocalizedOpenOfficeOrgProperty prop = (LocalizedOpenOfficeOrgProperty)addon.getProperty(addon.PROPERTY_DisplayName);
+        Integer[] indexes = prop.getUsedLanguageIndexes();
+        int langID = LanguageHandlingDialog.start(false, indexes);  // add a language
+        if (langID != -1) {
+            addon.addLanguage(langID, null);
+            rootNode.triggerLanguageChange();
+            if (indexes.length == 0)  // first language added: trigger valid() with the change event...
+                panel.fireChangeEvent(); // Notify that the panel changed
+        }
+    }
+
+    public void deleteLanguageAction() {
+        // get used languages
+        AddOnNode rootNode = (AddOnNode)manager.getRootContext();
+        // get the data object "AddIn"
+        NbNodeObject nodeObject = (NbNodeObject)rootNode.getLookup().lookup(NbNodeObject.class);
+        AddOn addon = (AddOn)nodeObject;
+        LocalizedOpenOfficeOrgProperty prop = (LocalizedOpenOfficeOrgProperty)addon.getProperty(addon.PROPERTY_DisplayName);
+        Integer[] indexes = prop.getUsedLanguageIndexes();
+        int langID = LanguageHandlingDialog.start(true, indexes);  // delete a language
+        if (langID != -1) {
+            addon.removeLanguage(langID);
+            rootNode.triggerLanguageChange();
+            if (indexes.length == 1)  // last language deleted: trigger valid() with the change event...
+                panel.fireChangeEvent(); // Notify that the panel changed
+        }
+    }
+    
+    private NbNodeObject getSelectedObject() {
+        NbNodeObject object = null;
+        Node[] selectedNodes = manager.getSelectedNodes();
+        if (selectedNodes != null && selectedNodes.length > 0) {
+            AddOnNode addonNode = (AddOnNode)selectedNodes[0];
+            if(addonNode != null)
+                object = (NbNodeObject)addonNode.getLookup().lookup(NbNodeObject.class);
+        }
+        return object;
+    }
+    
+    private void selectNextNode() {
+        Node[] selectedNodes = manager.getSelectedNodes();
+        if (selectedNodes != null && selectedNodes.length > 0) {
+            Node theNode = (Node)selectedNodes[0];
+            Node parentNode = theNode.getParentNode();
+            Node[] nodes = parentNode.getChildren().getNodes(); // the array is sorted!
+            boolean selectThisOne = false;
+            for (int i = 0; i < nodes.length; i++) {
+                if (selectThisOne) {
+                    selectThisOne = false;
+                    try {
+                        manager.setSelectedNodes(new Node[]{nodes[i]});
+                    } catch (PropertyVetoException ex) {
+                        LogWriter.getLogWriter().printStackTrace(ex);
+                    }
+                }
+                if (nodes[i].equals(theNode)) {
+                    selectThisOne = true;
+                }
+            }
+        }        
+    }
+    
+    private Node getNextMenuNode() {
+        AddOnNode addonNode = null;
+        Node[] selectedNodes = manager.getSelectedNodes();
+        if (selectedNodes != null && selectedNodes.length > 0) {
+            addonNode = (AddOnNode)selectedNodes[0];
+            while (addonNode != null && !addonNode.isMenu()) {
+                addonNode = (AddOnNode)addonNode.getParentNode();
+            }
+        } 
+        return addonNode;
+    }
+
+    public interface ActionPanel {
+        void fireChangeEvent();
+    }
+}

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription.html
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription.html?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription.html (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription.html Fri Jan 27 01:29:33 2012
@@ -0,0 +1,12 @@
+<html>
+    <body>
+        Creates a <b>OpenOffice.org Add-On</b> project.<br>
+        A <b>OpenOffice.org Add-On</b> is an external <b>UNO 
+        component</b> providing one or more functions through the user interface
+        of OpenOffice.org. A typical <b>Add-On</b> is available as a
+        UNO package for easier deployment with the pkgchk tool. In addition to 
+        an ordinary UNO package, an <b>Add-On</b> package contains configuration
+        files which specify the user interface, registration for a protocol 
+        schema, and first-time instantiation.
+    </body>
+</html>

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_ja.html
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_ja.html?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_ja.html (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_ja.html Fri Jan 27 01:29:33 2012
@@ -0,0 +1,9 @@
+<html>
+    
+<!-- Inserted by TRADOS: --><META HTTP-EQUIV="content-type" CONTENT="text/html; charset=EUC-JP">
+<body>
+        <b>OpenOffice.org ¥¢¥É¥ª¥ó</b>¥×¥í¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¡£<br> <b>OpenOffice.org ¥¢¥É¥ª¥ó</b>¤Ï¡¢OpenOffice.org ¤Î¥æ¡¼¥¶¡¼¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ̤¸¤Æ 1 ¤Ä°Ê¾å¤Îµ¡Ç½¤òÄ󶡤¹¤ë³°Éô <b>UNO ¥³¥ó¥Ý¡¼¥Í¥ó¥È</b>¤Ç¤¹¡£pkgchk ¥Ä¡¼¥ë¤ò»ÈÍѤ·¤Æ´Êñ¤ËÇÛÈ÷¤ò¹Ô¤¦¤¿¤á¤Î°ìÈÌŪ¤Ê<b>¥¢¥É¥ª¥ó</b>¤Ï¡¢ UNO ¥Ñ¥Ã¥±¡¼¥¸¤È¤·¤ÆÍøÍѤǤ­¤Þ¤¹¡£½¾Íè¤Î UNO ¥Ñ¥Ã¥±¡¼¥¸¤Ë²Ã¤¨¤Æ¡¢<b>¥¢¥É¥ª¥ó</b>¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢¥æ¡¼¥¶¡¼¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡¢¥×¥í¥È¥³¥ë¥¹¥­¡¼¥Þ¤ÎÅÐÏ¿¡¢¤ª¤è¤Ó½é²ó¤Î¥¤¥ó¥¹¥¿¥ó¥¹²½¤ò»ØÄꤹ¤ë¡¢¹½À®¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
+    </body>
+</html>
+
+

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_pt_BR.html
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_pt_BR.html?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_pt_BR.html (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_pt_BR.html Fri Jan 27 01:29:33 2012
@@ -0,0 +1,12 @@
+<html lang='pt'>
+    <body>
+        Cria um projeto <b>Add-On do OpenOffice.org</b>.<br>
+        Um <b>Add-On do OpenOffice.org</b> é um <b>componente UNO 
+        </b> externo que provê uma ou mais funções através da interface do usuário
+        do OpenOffice.org. Um típico <b>Add-On</b> está disponível como um
+        pacote UNO para facilmente ser implantado com a ferramenta pkgchk. A diferença 
+        para um pacote UNO comum é que um pacote <b>Add-On</b> contém arquivos de
+        configuração que especificam a interface com o usuário, registram um esquema de
+        protocolo, e a primeira instanciação.
+    </body>
+</html>

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_zh_CN.html
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_zh_CN.html?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_zh_CN.html (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnDescription_zh_CN.html Fri Jan 27 01:29:33 2012
@@ -0,0 +1,8 @@
+<html lang='zh'>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
+</head>
+<body>
+´´½¨Ò»¸ö <b>OpenOffice.org ¸½¼ÓÈí¼þ°ü</b>ÏîÄ¿¡£<br><b>OpenOffice.org ¸½¼ÓÈí¼þ°ü</b>ÊÇÒ»¸öÍⲿ <b>UNO ×é¼þ</b>£¬ÓÃÓÚͨ¹ý OpenOffice.org µÄÓû§½çÃæÌṩһÖÖ»ò¶àÖÖ¹¦ÄÜ¡£µäÐ͵Ä<b>¸½¼ÓÈí¼þ°ü</b>ÒÔ UNO °üµÄÐÎʽÌṩ£¬´Ó¶ø¿ÉÒÔ¸ü·½±ãµØʹÓà pkgchk ¹¤¾ß½øÐв¿Êð¡£³ý×÷ΪÆÕͨµÄ UNO °üÖ®Í⣬<b>¸½¼ÓÈí¼þ°ü</b>»¹°üº¬ÓÃÓÚÖ¸¶¨Óû§½çÃ桢ЭÒé¼Ü¹¹×¢²áºÍÊ×´ÎʵÀý»¯µÄÅäÖÃÎļþ¡£
+    </body>
+</html>

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnPanelVisual1Project.form
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnPanelVisual1Project.form?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnPanelVisual1Project.form (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/addon/AddOnPanelVisual1Project.form Fri Jan 27 01:29:33 2012
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.3" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="createdFolderLabel" alignment="0" min="-2" max="-2" attributes="0"/>
+                  <Group type="102" alignment="1" attributes="0">
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Group type="103" groupAlignment="1" attributes="0">
+                              <Component id="packageNameLabel" alignment="0" min="-2" max="-2" attributes="1"/>
+                              <Group type="102" alignment="1" attributes="0">
+                                  <Group type="103" groupAlignment="1" max="-2" attributes="0">
+                                      <Component id="classNameLabel" alignment="0" max="32767" attributes="1"/>
+                                      <Component id="projectNameLabel" alignment="0" min="-2" max="-2" attributes="1"/>
+                                  </Group>
+                                  <EmptySpace min="2" pref="2" max="2" attributes="0"/>
+                              </Group>
+                          </Group>
+                          <Component id="projectLocationLabel" min="-2" max="-2" attributes="1"/>
+                          <Component id="jLabel3" alignment="0" min="-2" max="-2" attributes="0"/>
+                      </Group>
+                      <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="jScrollPane1" pref="344" max="32767" attributes="0"/>
+                          <Component id="packageNameTextField" alignment="0" pref="344" max="32767" attributes="0"/>
+                          <Component id="projectLocationTextField" alignment="0" pref="344" max="32767" attributes="0"/>
+                          <Component id="addonNameTextField" alignment="0" pref="344" max="32767" attributes="0"/>
+                          <Component id="projectNameTextField" alignment="0" pref="344" max="32767" attributes="0"/>
+                          <Component id="createdFolderTextField" alignment="0" pref="344" max="32767" attributes="0"/>
+                          <Component id="createMenuCheckBox" alignment="0" pref="344" max="32767" attributes="0"/>
+                          <Component id="createToolbarCheckBox" alignment="0" pref="344" max="32767" attributes="0"/>
+                      </Group>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="browseButton" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                  </Group>
+              </Group>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="projectNameLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="projectNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="classNameLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="addonNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="packageNameLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="packageNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="browseButton" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="projectLocationLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="projectLocationTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="createdFolderLabel" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="createdFolderTextField" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
+              <Component id="createMenuCheckBox" min="-2" max="-2" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+              <Component id="createToolbarCheckBox" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
+                  <Component id="jScrollPane1" pref="117" max="32767" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="projectNameLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="projectNameTextField"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_ProjectName" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+    </Component>
+    <Component class="javax.swing.JTextField" name="projectNameTextField">
+      <Properties>
+        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="TF_ProjectName_Tooltip" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="projectLocationLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="projectLocationTextField"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_ProjectLoaction" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+    </Component>
+    <Component class="javax.swing.JTextField" name="projectLocationTextField">
+      <Properties>
+        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="TF_ProjectLocation_Tooltip" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JButton" name="browseButton">
+      <Properties>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_Browse" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="BUTTON_Browse_Tooltip" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+        <Property name="actionCommand" type="java.lang.String" value="BROWSE"/>
+        <Property name="name" type="java.lang.String" value="browse" noResource="true"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browseButtonActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JLabel" name="createdFolderLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="createdFolderTextField"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_ProjectFolder" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JTextField" name="createdFolderTextField">
+      <Properties>
+        <Property name="editable" type="boolean" value="false"/>
+        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="TF_ProjectFolder_Tooltip" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="classNameLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="addonNameTextField"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_MainClassName" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="packageNameLabel">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="packageNameTextField"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_JavaPackage" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JTextField" name="addonNameTextField">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="jTextField1"/>
+        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="TF_MainClassName_Tooltip" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JTextField" name="packageNameTextField">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="jTextField2"/>
+        <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="TF_PackageName_Tooltip" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Component class="javax.swing.JLabel" name="jLabel3">
+      <Properties>
+        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
+          <ComponentRef name="createdFilesTextPane"/>
+        </Property>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_CreatedFiles" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+      </Properties>
+    </Component>
+    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+      <Properties>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="null"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+      </AuxValues>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JTextPane" name="createdFilesTextPane">
+          <Properties>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="null"/>
+            </Property>
+            <Property name="editable" type="boolean" value="false"/>
+            <Property name="opaque" type="boolean" value="false"/>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JCheckBox" name="createMenuCheckBox">
+      <Properties>
+        <Property name="selected" type="boolean" value="true"/>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_CreateMenu" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+          </Border>
+        </Property>
+        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+          <Insets value="[0, 0, 0, 0]"/>
+        </Property>
+        <Property name="name" type="java.lang.String" value="createMenuStructure" noResource="true"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createMenuCheckBoxActionPerformed"/>
+      </Events>
+    </Component>
+    <Component class="javax.swing.JCheckBox" name="createToolbarCheckBox">
+      <Properties>
+        <Property name="selected" type="boolean" value="true"/>
+        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+          <ResourceString bundle="org/openoffice/extensions/projecttemplates/addon/Bundle.properties" key="LBL_CreateToolbar" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+        </Property>
+        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+          </Border>
+        </Property>
+        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+          <Insets value="[0, 0, 0, 0]"/>
+        </Property>
+        <Property name="name" type="java.lang.String" value="createToolbarStructure" noResource="true"/>
+      </Properties>
+      <Events>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createToolbarCheckBoxActionPerformed"/>
+      </Events>
+    </Component>
+  </SubComponents>
+</Form>