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 [31/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/unoclientapplication/UNOClientAppWizardPanel.java
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java Fri Jan 27 01:29:33 2012
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: UNOClientAppWizardPanel.java,v $
+ *
+ *  $Revision: 1.3 $
+ *
+ *  last change: $Author: sg $ $Date: 2007/05/03 09:55:48 $
+ *
+ *  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.unoclientapplication;
+
+import java.awt.Component;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import org.openide.WizardDescriptor;
+import org.openide.WizardValidationException;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+
+/**
+ * Panel just asking for basic info.
+ */
+public class UNOClientAppWizardPanel implements WizardDescriptor.Panel,
+        WizardDescriptor.ValidatingPanel, WizardDescriptor.FinishablePanel {
+    
+    private WizardDescriptor wizardDescriptor;
+    private UNOClientAppPanelVisual component;
+    
+    /** Creates a new instance of templateWizardPanel */
+    public UNOClientAppWizardPanel() {
+    }
+    
+    public Component getComponent() {
+        if (component == null) {
+            component = new UNOClientAppPanelVisual(this);
+            component.setName(NbBundle.getMessage(UNOClientAppWizardPanel.class, "LBL_CreateProjectStep"));
+        }
+        return component;
+    }
+    
+    public HelpCtx getHelp() {
+        return new HelpCtx("org.openoffice.extensions.working.with.clients"); // NOI18N
+    }
+    
+    public boolean isValid() {
+        getComponent();
+        return component.valid(wizardDescriptor);
+    }
+    
+    private final Set<ChangeListener> listeners = new HashSet<ChangeListener>(1);
+    public final void addChangeListener(ChangeListener l) {
+        synchronized (listeners) {
+            listeners.add(l);
+        }
+    }
+    public final void removeChangeListener(ChangeListener l) {
+        synchronized (listeners) {
+            listeners.remove(l);
+        }
+    }
+    protected final void fireChangeEvent() {
+        Iterator it;
+        synchronized (listeners) {
+            it = new HashSet<ChangeListener>(listeners).iterator();
+        }
+        ChangeEvent ev = new ChangeEvent(this);
+        while (it.hasNext()) {
+            ((ChangeListener) it.next()).stateChanged(ev);
+        }
+    }
+    
+    public void readSettings(Object settings) {
+        wizardDescriptor = (WizardDescriptor) settings;
+        component.read(wizardDescriptor);
+    }
+    
+    public void storeSettings(Object settings) {
+        WizardDescriptor d = (WizardDescriptor) settings;
+        component.store(d);
+    }
+    
+    public boolean isFinishPanel() {
+        return true;
+    }
+    
+    public void validate() throws WizardValidationException {
+        getComponent();
+        component.validate(wizardDescriptor);
+    }
+    
+}

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/unoclientapplication/unoclient.gif
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/unoclientapplication/unoclient.gif?rev=1236486&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/projecttemplates/unoclientapplication/unoclient.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/AdvancedReplace.java
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/AdvancedReplace.java?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/AdvancedReplace.java (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/AdvancedReplace.java Fri Jan 27 01:29:33 2012
@@ -0,0 +1,1153 @@
+/*************************************************************************
+ *
+ *  OpenOffice.org - a multi-platform office productivity suite
+ *
+ *  $RCSfile: AdvancedReplace.java,v $
+ *
+ *  $Revision: 1.15 $
+ *
+ *  last change: $Author: sg $ $Date: 2008/10/09 14:58:04 $
+ *
+ *  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.util;
+
+import java.awt.Image;
+import java.io.File;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import org.openide.WizardDescriptor;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+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.calcaddin.datamodel.AddIn;
+import org.openoffice.extensions.util.datamodel.Function;
+import org.openoffice.extensions.util.datamodel.FunctionException;
+import org.openoffice.extensions.util.datamodel.IdlEnum;
+import org.openoffice.extensions.util.datamodel.IdlEnumeration;
+import org.openoffice.extensions.util.datamodel.Interface;
+import org.openoffice.extensions.util.datamodel.NbNodeObject;
+import org.openoffice.extensions.util.datamodel.Parameter;
+import org.openoffice.extensions.util.datamodel.PolyStruct;
+import org.openoffice.extensions.util.datamodel.PropertyContainer;
+import org.openoffice.extensions.util.datamodel.Service;
+import org.openoffice.extensions.util.datamodel.Struct;
+import org.openoffice.extensions.util.datamodel.TemplateType;
+import org.openoffice.extensions.util.datamodel.localization.LanguageDefinition;
+import org.openoffice.extensions.util.datamodel.properties.LocalizedOpenOfficeOrgProperty;
+import org.openoffice.extensions.util.datamodel.properties.OpenOfficeOrgBooleanProperty;
+import org.openoffice.extensions.util.datamodel.properties.OpenOfficeOrgIconProperty;
+import org.openoffice.extensions.util.datamodel.properties.OpenOfficeOrgProperty;
+import org.openoffice.extensions.util.datamodel.properties.UnknownOpenOfficeOrgLanguageIDException;
+import org.openoffice.extensions.util.datamodel.properties.UnknownOpenOfficeOrgPropertyException;
+
+/**
+ *
+ */
+public class AdvancedReplace {
+    
+    private static final String cr = System.getProperty("line.separator"); // NOI18N
+
+    private static final int SIMPLE_REPLACE = 0;
+    private static final int XCU_REPLACE = 1;
+    private static final int INTERFACE_REPLACE = 2;
+    private static final int SERVICE_REPLACE = 3;
+    private static final int ADDIN_REPLACE = 4;
+    private static final int ENUMERATION_REPLACE = 5;
+    private static final int STRUCT_REPLACE = 6;
+    private static final int EXCEPTION_REPLACE = 7;
+    private static final int POLY_STRUCT_REPLACE = 8;
+    private static final int ADDON_REPLACE = 9;
+    private static final String EMPTY_VALUE = "<value/>"; // NOI18N
+
+    private int replaceType;
+    
+    private int functionCount = 0;
+    private int parameterCount = 0;
+    private String[] function_template_xcu;
+    private String[] parameter_template_xcu;
+    
+    private int menuOrderNumber;
+    private int toolbarOrderNumber;
+    
+    private WizardDescriptor wiz;
+
+    private Interface ifc;
+    private Service srv;
+    private AddIn addin;
+    private IdlEnumeration enm;
+    private Struct str;
+    private FunctionException ex;
+    private PolyStruct pstr;
+
+    
+    /** Creates a new instance of AdvancedReplace */
+    public AdvancedReplace(
+            WizardDescriptor wiz,
+            String[] function_template_xcu, 
+            String[] parameter_template_xcu) {
+        this.function_template_xcu = function_template_xcu;
+        this.parameter_template_xcu = parameter_template_xcu;
+        if (function_template_xcu == null && parameter_template_xcu == null)
+            replaceType = SIMPLE_REPLACE;
+        else
+            replaceType = XCU_REPLACE;
+        this.wiz = wiz;
+    }
+
+    /** Creates a new instance of AdvancedReplace */
+    public AdvancedReplace(WizardDescriptor wiz, AddOn addon) {
+        replaceType = ADDON_REPLACE;
+        this.wiz = wiz;
+    }
+
+    /** Creates a new instance of AdvancedReplace */
+    public AdvancedReplace(WizardDescriptor wiz, SubMenuElement topElement) {
+        replaceType = ADDON_REPLACE;
+        this.wiz = wiz;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, Interface ifc) {
+        this.wiz = wiz;
+        this.ifc = ifc;
+        replaceType = INTERFACE_REPLACE;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, Service srv) {
+        this.wiz = wiz;
+        this.srv = srv;
+        replaceType = SERVICE_REPLACE;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, IdlEnumeration enm) {
+        this.wiz = wiz;
+        this.enm = enm;
+        replaceType = ENUMERATION_REPLACE;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, FunctionException ex) {
+        this.wiz = wiz;
+        this.ex = ex;
+        replaceType = EXCEPTION_REPLACE;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, Struct str) {
+        this.wiz = wiz;
+        this.str = str;
+        replaceType = STRUCT_REPLACE;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, PolyStruct pstr) {
+        this.wiz = wiz;
+        this.pstr = pstr;
+        replaceType = POLY_STRUCT_REPLACE;
+    }
+
+    public AdvancedReplace(WizardDescriptor wiz, AddIn addin) {
+        this.wiz = wiz;
+        this.addin = addin;
+        replaceType = ADDIN_REPLACE;
+    }
+
+    /** Creates a new instance of AdvancedReplace */
+    public AdvancedReplace(
+            WizardDescriptor wiz) {
+        this(wiz, null, null);
+    }
+
+    public String[] replaceVariables(String sourceString) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException, UnknownOpenOfficeOrgPropertyException {
+        if (sourceString == null || sourceString.length() == 0) {
+            return new String[0];
+        }
+        switch(replaceType) {
+            case INTERFACE_REPLACE:
+                return doInterfaceReplace(sourceString);
+            case SERVICE_REPLACE:
+                return doServiceReplace(sourceString);
+            case ADDIN_REPLACE:
+                return doAddInReplace(sourceString);
+            case ENUMERATION_REPLACE:
+                return doEnumerationReplace(sourceString);
+            case STRUCT_REPLACE:
+                return doStructReplace(sourceString);
+            case POLY_STRUCT_REPLACE:
+                return doPolyStructReplace(sourceString);
+            case EXCEPTION_REPLACE:
+                return doExceptionReplace(sourceString);
+            case ADDON_REPLACE:
+                return doAddOnReplace(sourceString);
+            default:
+                return doSimpleReplace(sourceString);
+        }
+    }
+    
+    private String[] doSimpleReplace(String sourceString) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException {
+        String output = sourceString.replaceAll("\\$\\!ProjectName\\!", 
+                        (String)wiz.getProperty("name")); // NOI18N
+        output = output.replaceAll("\\$\\!PackageName\\!", 
+                                (String)wiz.getProperty("UnoPackage")); // NOI18N
+        output = output.replaceAll("\\$\\!CR\\!", cr); // NOI18N
+        output = output.replaceAll("\\$\\!PackageNameUnderscore\\!", 
+                                (String)wiz.getProperty("packageNameUnderscore")); // NOI18N
+        output = output.replaceAll("\\$\\!PackageNameModule\\!", 
+                                (String)wiz.getProperty("packageNameModule")); // NOI18N
+        output = output.replaceAll("\\$\\!TimeStamp\\!", 
+                                (String)wiz.getProperty("TimeStamp")); // NOI18N
+        output = output.replaceAll("\\$\\!CloseModule\\!", 
+                                (String)wiz.getProperty("closeModule")); // NOI18N
+        output = output.replaceAll("\\$\\!MainClass\\!", 
+                                (String)wiz.getProperty("mainClassName")); // NOI18N
+        output = output.replaceAll("\\$\\!MainClassSmall\\!", 
+                                (String)wiz.getProperty("mainClassNameSmall")); // NOI18N
+        output = output.replaceAll("\\$\\!AddonContext\\!", 
+                                (String)wiz.getProperty("Context")); // NOI18N
+        output = output.replaceAll("\\$\\!Protocol\\!", 
+                                (String)wiz.getProperty("Protocol")); // NOI18N
+        output = output.replaceAll("\\$\\!StructName\\!", 
+                                (String)wiz.getProperty("StructName")); // NOI18N
+        output = output.replaceAll("\\$\\!PolyStructName\\!", 
+                                (String)wiz.getProperty("PolyStructName")); // NOI18N
+        output = output.replaceAll("\\$\\!PolyStructNameTemplate\\!", 
+                                (String)wiz.getProperty("PolyStructNameTemplate")); // NOI18N
+        output = output.replaceAll("\\$\\!ExceptionName\\!", 
+                                (String)wiz.getProperty("ExceptionName")); // NOI18N
+        output = output.replaceAll("\\$\\!ParentExceptionName\\!", 
+                                (String)wiz.getProperty("ParentExceptionName")); // NOI18N
+        output = output.replaceAll("\\$\\!Service\\!", 
+                                (String)wiz.getProperty("Service")); // NOI18N
+        output = output.replaceAll("\\$\\!XMultiInheritanceInterface\\!", 
+                                (String)wiz.getProperty("XMultiInheritanceInterface")); // NOI18N
+        output = output.replaceAll("\\$\\!EnumName\\!", 
+                                (String)wiz.getProperty("EnumName")); // NOI18N
+        if (output.indexOf("$!Os!") != -1) {
+            output = output.replaceAll("\\$\\!Os\\!",  // NOI18N
+                                "os.dir=".concat((String)wiz.getProperty("PlatformBinDir"))); // NOI18N
+        }
+        if (output.indexOf("$!Sdk!") != -1) { // NOI18N
+            output = output.replaceAll("\\$\\!Sdk\\!", 
+                                "sdk=".concat(((String)wiz.getProperty("SdkPath")).replaceAll("\\\\", "\\\\\\\\\\\\\\\\"))); // NOI18N
+        }
+        if (output.indexOf("$!Soffice!") != -1) {
+            output = output.replaceAll("\\$\\!Soffice\\!", 
+                                "soffice.program=".concat(((String)wiz.getProperty("OfficePath")).replaceAll("\\\\", "\\\\\\\\\\\\\\\\"))); // NOI18N
+        }
+        if (output.indexOf("$!ProjectDir!") != -1) {
+            output = output.replaceAll("\\$\\!ProjectDir\\!", 
+                                "project.dir=".concat(((String)wiz.getProperty("ProjectDir")).replaceAll("\\\\", "\\\\\\\\\\\\\\\\"))); // NOI18N
+        }
+
+        // special stuff with more interaction
+        if (output.indexOf("$!Import!") != -1) { // NOI18N
+            Vector<String> importContainer = new Vector<String>();
+            importContainer.add("\n#include <com/sun/star/uno/XInterface.idl>"); // NOI18N
+            int funcCount = 0;
+            if (wiz.getProperty("XInterface") == null) { // NOI18N
+                funcCount = ((Integer)wiz.getProperty("functionCount")).intValue(); // NOI18N
+            }
+            else {
+                String ifc = (String)wiz.getProperty("XInterface"); // NOI18N
+                funcCount = ((Integer)wiz.getProperty(
+                        ifc.concat("functionCount"))).intValue(); // NOI18N
+            }
+            for (int i=0; i<funcCount; i++) {
+                String[] function = null;
+                if (wiz.getProperty("XInterface") == null) { // NOI18N
+                    function = (String[])wiz.getProperty(new StringBuffer("function").append(i).toString());  // NOI18N
+                }
+                else {
+                    function = (String[])wiz.getProperty(new StringBuffer((String)wiz.getProperty("XInterface")).append("function").append(i).toString()); // NOI18N
+                }
+                if (function[0].equals("XVolatileResult")) { // NOI18N
+                    importContainer.add("\n#include <com/sun/star/sheet/XVolatileResult.idl>"); // NOI18N
+                }
+                boolean[] imported = new boolean[2];
+                int param = 2;
+                while (param<function.length) {
+                    if (function[param].equals("XCellRange") && !imported[0]) { // NOI18N
+                        importContainer.add("\n#include <com/sun/star/table/XCellRange.idl>"); // NOI18N
+                        imported[0] = true;
+                    }
+                    if (function[param].equals("XPropertySet") && !imported[1]) { // NOI18N
+                        importContainer.add("\n#include <com/sun/star/beans/XPropertySet.idl>"); // NOI18N
+                        imported[1] = true;
+                    }
+                    param += 2;
+                }
+            }
+            importContainer.add(getExceptionImports(
+                    (NbNodeObject)wiz.getProperty("ServiceObject"))); // NOI18N
+
+            if (output.length() > 0) {
+                importContainer.add("\n"); // NOI18N
+            }
+            return importContainer.toArray(new String[importContainer.size()]);
+        } 
+        else if (output.indexOf("$!Methods!") != -1) { // NOI18N
+            LogWriter.getLogWriter().log(LogWriter.LEVEL_INFO, "######### OOOOOPSS ###########"); // NOI18N
+        }
+        else if (output.indexOf("$!xcuFunctions!") != -1) { // NOI18N
+            int funcCount = ((Integer)wiz.getProperty("functionCount")).intValue(); // NOI18N
+            if (functionCount < funcCount) {
+                boolean lastFunction = functionCount == funcCount - 1;
+                parameterCount = 3;
+                functionCount++;
+                if (lastFunction) return function_template_xcu;
+                String[] retString = new String[function_template_xcu.length + 1];
+                for (int i=0; i<function_template_xcu.length; i++) {
+                    retString[i] = function_template_xcu[i];
+                }
+                retString[function_template_xcu.length] = "$!xcuFunctions!"; // NOI18N
+                return retString;
+            }
+        }
+        else if (output.indexOf("$!xcuParameters!") != -1) { // NOI18N
+            String[] function = (String[])wiz.getProperty(new StringBuffer("function").append(functionCount-1).toString()); // NOI18N
+            if (parameterCount < function.length) {
+                String parameter = function[parameterCount];
+                boolean lastParameter = parameterCount == function.length - 1;
+                parameterCount += 2;
+                if (lastParameter) return parameter_template_xcu;
+                String[] retString = new String[parameter_template_xcu.length + 1];
+                for (int i=0; i<parameter_template_xcu.length; i++) {
+                    retString[i] = parameter_template_xcu[i];
+                }
+                retString[parameter_template_xcu.length] = "$!xcuParameters!"; // NOI18N
+                return retString;
+            }
+        }
+        else if (output.indexOf("$!xcuFunctionName!") != -1) { // NOI18N
+            String[] function = (String[])wiz.getProperty(new StringBuffer("function").append(functionCount-1).toString()); // NOI18N
+            output = output.replaceAll("\\$\\!xcuFunctionName\\!", function[1]); // NOI18N
+        }
+        else if (output.indexOf("$!xcuParameterName!") != -1) { // NOI18N
+            String[] function = (String[])wiz.getProperty(new StringBuffer("function").append(functionCount-1).toString()); // NOI18N
+            output = output.replaceAll("\\$\\!xcuParameterName\\!", function[parameterCount - 2]); // NOI18N
+        }
+        else if(output.indexOf("$!xcuCategory!") != -1) { // NOI18N
+            String[] function = (String[])wiz.getProperty(new StringBuffer("function").append(functionCount-1).toString()); // NOI18N
+            output = output.replaceAll("\\$\\!xcuCategory\\!", (String)wiz.getProperty(function[1].concat("Category"))); // NOI18N
+        }
+        // multilingual stuff
+        else if (output.indexOf("$!Lang!") != -1) {   // NOI18N
+            String[] returnVal = null;
+            String[] function = (String[])wiz.getProperty(new StringBuffer("function").append(functionCount-1).toString()); // NOI18N
+            String functionName = function[1];
+            String parameterName = function[parameterCount - 2]; // not always needed but easy to get here
+            String[][] paramPropNames = new String[][] {
+                {"$!xcuFunctionDisplayName!", functionName.concat("DisplayName")},
+                {"$!xcuFunctionDescription!", functionName.concat("Description")},
+                {"$!xcuFunctionCategoryDisplayName!", functionName.concat("Description")},
+                {"$!xcuFunctionCompatibilityName!", functionName.concat("CompatibilityName")},
+                {"$!xcuParameterDisplayName!", functionName.concat(parameterName).concat("DisplayName")},
+                {"$!xcuParameterDescription!", functionName.concat(parameterName).concat("Description")},
+            }; // NOI18N
+            return replaceXcuParameters(paramPropNames, output);
+        }
+        return new String[]{output};
+    }
+
+    private String[] replaceXcuParameters(String[][] paramPropNames, String output) {
+        Vector<String> returnVal = new Vector<String>();
+        for (int i=0; i<paramPropNames.length; i++) {
+            if (output.indexOf(paramPropNames[i][0]) != -1) {
+                String[][]props = (String[][])wiz.getProperty(paramPropNames[i][1]);
+                for (int j=0; j<props[0].length; j++) {
+                    if (props[1][j] != null && props[1][j].length() != 0) {
+                        String searchString = paramPropNames[i][0].replaceAll("\\$", "\\\\\\$").replaceAll("\\!", "\\\\\\!"); // NOI18N
+                        returnVal.add(output.replaceAll(
+                            "\\$\\!Lang\\!", props[0][j]).replaceAll( // NOI18N
+                            searchString, props[1][j]));
+                    }
+                }
+                if (returnVal.size() == 0) {
+                    // replace to keep the indent
+                    String emptyValue = output.replaceAll("^( *).*$", "$1<value/>"); // NOI18N
+                    returnVal.add(emptyValue);
+                }
+            }
+        }
+        return returnVal.toArray(new String[returnVal.size()]);
+    }
+    
+    private String[] doInterfaceReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException, UnknownOpenOfficeOrgPropertyException {
+        if(output.indexOf("$!Import!") != -1) { // NOI18N
+            String[] usedTypes = getAllUsedTypes(ifc); // used types must be imported
+            Interface[] addIfcs = ifc.getAllAggregatedInterfaces();
+            Vector<String>importLines = new Vector<String>();
+            // first imported interfaces
+            for (int i=0; i<usedTypes.length; i++) {
+                importLines.add(usedTypes[i]);
+            } 
+            // then exceptions
+            importLines.add(getExceptionImports(ifc));
+            // XInterface -> will be removed aome time later
+            importLines.add("\n#include <com/sun/star/uno/XInterface.idl>"); // NOI18N
+            // rest are included interfaces
+            for(int i=0; i<addIfcs.length; i++) {
+                StringBuffer oneOutputLine = new StringBuffer("\n"); // NOI18N
+                String pkg = addIfcs[i - 1].getSimpleProperty(ifc.PROPERTY_CONTAINER_PACKAGE).replaceAll("\\.", "/"); // NOI18N
+                String name = addIfcs[i - 1].getSimpleProperty(ifc.PROPERTY_CONTAINER_NAME);
+                oneOutputLine.append("\n#include <").append(pkg).append("/").append(name).append(".idl>"); // NOI18N
+                importLines.add(oneOutputLine.toString());
+            }
+            String[] lines = importLines.toArray(new String[importLines.size()]);
+            lines[lines.length - 1] = lines[lines.length - 1].concat("\n"); // NOI18N
+            return lines;
+        }
+        else if(output.indexOf("$!Import2!") != -1) { // NOI18N
+            String whitespace = output.substring(0, output.indexOf("$!Import2!")); // NOI18N
+            Interface[] addIfcs = ifc.getAllAggregatedInterfaces();
+            String[] lines = new String[addIfcs.length];
+            for(int i=0; i<lines.length; i++) {
+                StringBuffer oneOutputLine = new StringBuffer("\n"); // NOI18N
+                String pkg = addIfcs[i].getSimpleProperty(ifc.PROPERTY_CONTAINER_PACKAGE).replaceAll("\\.", "::"); // NOI18N
+                String name = addIfcs[i].getSimpleProperty(ifc.PROPERTY_CONTAINER_NAME);
+                oneOutputLine.append(whitespace).append(" ::".concat(pkg).concat("::").concat(name).concat(";\n")); // NOI18N
+                lines[i] = oneOutputLine.toString();
+            }
+            
+            return lines;
+        }
+        else if(output.indexOf("$!XMultiInheritanceInterface!") != -1) { // NOI18N
+            wiz.putProperty("XMultiInheritanceInterface", ifc.getSimpleProperty(ifc.PROPERTY_CONTAINER_NAME)); // NOI18N
+        }
+        else if (output.indexOf("$!Methods!") != -1) { // NOI18N
+            String whitespace = output.substring(0, output.indexOf("$!Methods!")); // NOI18N
+            String[] funcNames = this.ifc.getAllSetObjectNames();
+            String[] returnVal = new String[funcNames.length];
+            for (int i=0; i<funcNames.length; i++) {
+                StringBuffer oneOutputLine = new StringBuffer("\n").append(whitespace); // NOI18N
+                Function function = (Function)ifc.getSetObject(funcNames[i]);
+                String funcName = (String)function.getProperty(function.PROPERTY_Name).getValueForLanguage(-1);
+                String funcType = (String)function.getProperty(function.PROPERTY_Type).getValueForLanguage(-1);
+                funcType = getArrays(funcType);
+                oneOutputLine.append(IdlFileCreator.getIdlTypeForJavaType(funcType)).append(" ").append(funcName).append("("); // NOI18N
+                String[] paramNames = function.getAllSetObjectNames();
+                for (int j=0; j<paramNames.length; j++) {
+                    Parameter param = (Parameter)function.getSetObject(paramNames[j]);
+                    String paramName = (String)param.getProperty(param.PROPERTY_Name).getValueForLanguage(-1);
+                    String paramType = (String)param.getProperty(param.PROPERTY_Type).getValueForLanguage(-1);
+                    paramType = getArrays(paramType);
+                    oneOutputLine.append("[in] ").append(IdlFileCreator.getIdlTypeForJavaType(paramType)).append(" ").append(paramName); // NOI18N
+                    if (j < paramNames.length - 1) {
+                        oneOutputLine.append(", "); // NOI18N
+                    }
+                }
+                String exceptions = function.getProperty(function.PROPERTY_Exceptions).getValueForLanguage(-1);
+                if (exceptions.length() == 0)
+                    oneOutputLine.append(");"); // NOI18N
+                else {
+                    oneOutputLine.append(")\n"); // NOI18N
+                    whitespace = "    ".concat(whitespace); // NOI18N
+                    String indent = "\n".concat(whitespace).concat("         "); // NOI18N
+                    exceptions = exceptions.replace(".", "::"); // NOI18N
+                    exceptions = exceptions.replace(" ", indent); // NOI18N
+                    oneOutputLine.append(whitespace).append("raises ( ").append(exceptions).append(" );"); // NOI18N
+                }
+                returnVal[i] = oneOutputLine.toString();
+            }
+            return returnVal;
+        }
+        return doSimpleReplace(output);
+    }
+
+    private String[] doEnumerationReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException, UnknownOpenOfficeOrgPropertyException {
+        if(output.indexOf("$!EnumName!") != -1) { // NOI18N
+            wiz.putProperty("EnumName", enm.getSimpleProperty(enm.PROPERTY_CONTAINER_NAME)); // NOI18N
+        }
+        else if (output.indexOf("$!Enums!") != -1) { // NOI18N
+            Vector<String> lines = new Vector<String>();
+            String whitespace = output.substring(0, output.indexOf("$!Enums!")); // NOI18N
+            String[] enumNames = this.enm.getAllSetObjectNames();
+            for (int i=0; i<enumNames.length; i++) {
+                IdlEnum oneEnum = (IdlEnum)this.enm.getSetObject(enumNames[i]);
+                String name = oneEnum.getProperty(oneEnum.PROPERTY_Name).getValueForLanguage(-1);
+                String oneLine = "\n".concat(whitespace).concat(name); // NOI18N
+                if (i == enumNames.length - 1) {
+                    oneLine = oneLine.concat("\n"); // NOI18N
+                }
+                else {
+                    oneLine = oneLine.concat(",\n"); // NOI18N
+                }
+                lines.add(oneLine);
+            }
+            return lines.toArray(new String[lines.size()]);
+        }
+        return doSimpleReplace(output);
+    }
+
+    private String[] doStructReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException, UnknownOpenOfficeOrgPropertyException {
+        if(output.indexOf("$!StructName!") != -1) { // NOI18N
+            wiz.putProperty("StructName", str.getSimpleProperty(str.PROPERTY_CONTAINER_NAME)); // NOI18N
+        }
+        else if (output.indexOf("$!Structs!") != -1) { // NOI18N
+            Vector<String> lines = new Vector<String>();
+            String whitespace = output.substring(0, output.indexOf("$!Structs!")); // NOI18N
+            String[] structNames = this.str.getAllSetObjectNames();
+            for (int i=0; i<structNames.length; i++) {
+                Parameter param = (Parameter)this.str.getSetObject(structNames[i]);
+                String name = param.getProperty(param.PROPERTY_Name).getValueForLanguage(-1);
+                String type = param.getProperty(param.PROPERTY_Type).getValueForLanguage(-1);
+                type = getArrays(type);
+                lines.add("\n"); // NOI18N
+                lines.add(whitespace.concat(IdlFileCreator.getIdlTypeForJavaType(
+                        type)).concat(" ").concat(name).concat(";\n")); // NOI18N
+            }
+            return lines.toArray(new String[lines.size()]);
+        }
+        return doSimpleReplace(output);
+    }
+
+    private String[] doPolyStructReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException, UnknownOpenOfficeOrgPropertyException {
+        if(output.indexOf("$!PolyStructName!") != -1) { // NOI18N
+            wiz.putProperty("PolyStructName", pstr.getSimpleProperty(pstr.PROPERTY_CONTAINER_NAME)); // NOI18N
+        }
+        else if(output.indexOf("$!PolyStructNameTemplate!") != -1) { // NOI18N
+            StringBuffer templateStructName = new StringBuffer(pstr.getSimpleProperty(srv.PROPERTY_CONTAINER_NAME));
+            templateStructName.append("<"); // NOI18N
+            String[] typeNames = pstr.getTemplateTypeNames();
+            for (int i=0; i<typeNames.length; i++) {
+                if (i != 0) {
+                    templateStructName.append(","); // NOI18N
+                }
+                // get type and append
+                templateStructName.append(pstr.getTemplateType(
+                        typeNames[i]).getSimpleProperty(TemplateType.PROPERTY_CONTAINER_TYPE));
+                templateStructName.append(">"); // NOI18N
+            }
+            wiz.putProperty("PolyStructNameTemplate", templateStructName.toString()); // NOI18N
+        }
+        else if (output.indexOf("$!Import!") != -1) { // NOI18N
+            String[] propNames = pstr.getAllSetObjectNames();
+            Vector<String>importLines = new Vector<String>();
+            for (int i=0; i<propNames.length; i++) {
+                Parameter param = (Parameter)pstr.getSetObject(propNames[i]);
+                String type = param.getSimpleProperty(param.PROPERTY_CONTAINER_TYPE);
+                // type may be a template in itself: this returns the type if no template was found
+                String[] imports = getTemplateImportsFromType(type);
+                for (int j=0; j<imports.length; j++) {
+                    importLines.add(imports[j]);
+                }
+            }
+            // rest are included interfaces
+            String[] outputLines = new String[importLines.size()];
+            for(int i=0; i<outputLines.length; i++) {
+                String line = importLines.get(i);
+                StringBuffer oneOutputLine = new StringBuffer("\n"); // NOI18N
+                oneOutputLine.append("\n#ifndef __").append(line.replaceAll("\\.", "_")).append("_idl__"); // NOI18N
+                oneOutputLine.append("\n#include <").append(line.replaceAll("\\.", "/")).append(".idl>"); // NOI18N
+                oneOutputLine.append("\n#endif"); // NOI18N
+                outputLines[i] = oneOutputLine.toString();
+            }
+            return outputLines;
+        }
+        else if (output.indexOf("$!Templates!") != -1) { // NOI18N
+            String whitespace = output.substring(0, output.indexOf("$!Templates!")); // NOI18N
+            String[] typeNames = pstr.getTemplateTypeNames();
+            StringBuffer outputLines = new StringBuffer("\n"); // NOI18N
+            for (int i=0; i<typeNames.length; i++) {
+                TemplateType templType = pstr.getTemplateType(typeNames[i]);
+                String name = templType.getSimpleProperty(templType.PROPERTY_CONTAINER_NAME);
+                String type = templType.getSimpleProperty(templType.PROPERTY_CONTAINER_TYPE);
+                outputLines.append("\n").append(whitespace).append(type).append(" ").append(name).append(";\n"); // NOI18N
+            }
+            return new String[]{outputLines.toString()};
+        }
+        else if (output.indexOf("$!Properties!") != -1) { // NOI18N
+            String whitespace = output.substring(0, output.indexOf("$!Properties!")); // NOI18N
+            String[] propNames = pstr.getAllSetObjectNames();
+            StringBuffer outputLines = new StringBuffer("\n"); // NOI18N
+            for (int i=0; i<propNames.length; i++) {
+                Parameter propType = (Parameter)pstr.getSetObject(propNames[i]);
+                String name = propType.getSimpleProperty(propType.PROPERTY_CONTAINER_NAME);
+                String type = propType.getSimpleProperty(propType.PROPERTY_CONTAINER_TYPE);
+                outputLines.append("\n").append(whitespace).append(
+                        IdlFileCreator.getIdlTypeForJavaType(type)).append(" ").append(name).append(";\n"); // NOI18N
+            }
+            return new String[]{outputLines.toString()};
+        }
+        return doSimpleReplace(output);
+    }
+    
+    private String[] doExceptionReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgPropertyException, UnknownOpenOfficeOrgLanguageIDException {
+            
+        if(output.indexOf("$!ExceptionName!") != -1) { // NOI18N
+            wiz.putProperty("ExceptionName", ex.getSimpleProperty(ex.PROPERTY_CONTAINER_NAME)); // NOI18N
+        }
+        else if(output.indexOf("$!ParentExceptionName!") != -1) { // NOI18N
+            wiz.putProperty("ParentExceptionName", ex.getSimpleProperty(ex.PROPERTY_CONTAINER_PARENT_EXCPTION).replaceAll("\\.", "::")); // NOI18N
+        }
+        else if(output.indexOf("$!Import!") != -1) { // NOI18N
+            String parentException = ex.getSimpleProperty(ex.PROPERTY_CONTAINER_PARENT_EXCPTION);
+            String ifndef = "\n#ifndef __".concat(parentException.replace('.', '_')).concat("_idl__"); // NOI18N
+            String imp = "\n#import <".concat(parentException.replace('.', '/').concat(".idl>")); // NOI18N
+            String endif = "\n#endif\n"; // NOI18N
+            return new String[]{ifndef, imp, endif};
+        }
+        return doSimpleReplace(output);
+    }
+    
+    private String[] doServiceReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgPropertyException, UnknownOpenOfficeOrgLanguageIDException {
+        if (output.indexOf("$!Import!") != -1) { // NOI18N
+            String[] types = (String[])wiz.getProperty("Import"); // NOI18N
+            return getImportFromTypes(types);
+        }
+        else if(output.indexOf("$!Service!") != -1) { // NOI18N
+            wiz.putProperty("Service", srv.getSimpleProperty(srv.PROPERTY_CONTAINER_NAME)); // NOI18N
+        }
+        return doSimpleReplace(output);
+    }
+
+    private String[] doAddOnReplace(String output) 
+                throws IOException, UnknownOpenOfficeOrgLanguageIDException {
+        // first iteration step: either menu bar or tool bar may be missing (but not both!)
+        Vector<String> retValue = null;
+        if (output.indexOf("$!OfficeMenuBar!") != -1) { // NOI18N
+            Boolean menu = (Boolean)wiz.getProperty("GotMenu"); // NOI18N
+            if (menu.booleanValue()) {
+                retValue = new Vector<String>();
+                String[] lines = (String[])wiz.getProperty("OfficeMenuBar"); // NOI18N
+                for (int i = 0; i < lines.length; i++) {
+                    String[] ret = doAddOnReplaceInternal(lines[i]);
+                    for (int j = 0; j < ret.length; j++) {
+                        retValue.add(ret[j]);
+                    }
+                }
+            }
+            else {
+                return new String[]{""}; // NOI18N
+            }
+        }
+        if (output.indexOf("$!OfficeToolBar!") != -1) { // NOI18N
+            Boolean toolbar = (Boolean)wiz.getProperty("GotToolbar"); // NOI18N
+            if (toolbar.booleanValue()) {
+                retValue = new Vector<String>();
+                String[] lines = (String[])wiz.getProperty("OfficeToolBar"); // NOI18N
+                for (int i = 0; i < lines.length; i++) {
+                    String[] ret = doAddOnReplaceInternal(lines[i]);
+                    for (int j = 0; j < ret.length; j++) {
+                        retValue.add(ret[j]);
+                    }
+                }
+            }
+            else {
+                return new String[]{""}; // NOI18N
+            }
+        }
+        if (retValue != null) {
+            return retValue.toArray(new String[retValue.size()]);
+        }
+        else {
+            return doAddOnReplaceInternal(output);
+        }
+    }
+    
+    private String[] doAddOnReplaceInternal(String output) 
+                throws IOException, UnknownOpenOfficeOrgLanguageIDException {
+        if (output.indexOf("$!MenuTitle!") != -1) { // NOI18N
+            AddOn addOn = (AddOn)wiz.getProperty("AddOnMenu"); // NOI18N
+            LocalizedOpenOfficeOrgProperty nameProp = (LocalizedOpenOfficeOrgProperty)
+                        addOn.getProperty(addOn.PROPERTY_DisplayName);
+            Integer[] indexes = nameProp.getUsedLanguageIndexes();
+            String[] returnValues = new String[indexes.length];
+            for (int j=0; j<indexes.length; j++) {
+                int langId = indexes[j].intValue();
+                String localizedName = stripName(nameProp.getValueForLanguage(langId));
+                returnValues[j] = "          <value xml:lang=\"".concat( // NOI18N
+                        LanguageDefinition.getLanguageShortNameForId(langId)).concat("\">").concat(
+                        localizedName).concat("</value>"); // NOI18N
+            }
+            return returnValues;
+        }
+        else if (output.indexOf("$!ToolbarTitle!") != -1) { // NOI18N
+            AddOn addOn = (AddOn)wiz.getProperty("AddOnToolbar"); // NOI18N
+            LocalizedOpenOfficeOrgProperty nameProp = (LocalizedOpenOfficeOrgProperty)
+                        addOn.getProperty(addOn.PROPERTY_DisplayName);
+            Integer[] indexes = nameProp.getUsedLanguageIndexes();
+            String[] returnValues = new String[indexes.length];
+            for (int j=0; j<indexes.length; j++) {
+                int langId = indexes[j].intValue();
+                String localizedName = stripName(nameProp.getValueForLanguage(langId));
+                returnValues[j] = "          <value xml:lang=\"".concat(
+                        LanguageDefinition.getLanguageShortNameForId(langId)).concat("\">").concat(
+                        localizedName).concat("</value>"); // NOI18N
+            }
+            return returnValues;
+        }
+        else if (output.indexOf("$!ProtocolHandlerFunctionTemplate!") != -1) { // NOI18N
+            String protocol = "        <value>".concat((String)wiz.getProperty(
+                "Protocol")).concat(":*</value>"); // NOI18N
+            return new String[]{protocol};
+        }
+        else if (output.indexOf("$!Images!") != -1) { // NOI18N
+            return getAddOnImages();
+        }
+        else if (output.indexOf("$!AddonMenuFunctionTemplate!") != -1) { // NOI18N
+            // Addon.xcu special replace
+            return createAddonMenuXcu();
+        }
+        else if (output.indexOf("$!AddonToolbarFunctionTemplate!") != -1) { // NOI18N
+            // Addon.xcu special replace
+            return createAddonToolbarXcu();
+        }
+        return doSimpleReplace(output);
+    }
+
+    private String[] createAddonMenuXcu() {
+        AddOn topElementMenu = (AddOn)wiz.getProperty("AddOnMenu"); // NOI18N
+        Vector<String>v = new Vector<String>();
+        createAddonMenuEntries("        ", (String)wiz.getProperty("Protocol"), topElementMenu, v); // NOI18N
+        return v.toArray(new String[v.size()]);
+    }
+    
+    private String[] createAddonToolbarXcu() {
+        AddOn topElementToolbar = (AddOn)wiz.getProperty("AddOnToolbar"); // NOI18N
+        AddOn subMeun = (AddOn)topElementToolbar.getAllMenus()[0];
+        Vector<String>v = new Vector<String>();
+        createAddonToolbarEntries("      ", (String)wiz.getProperty("Protocol"), topElementToolbar, v); // NOI18N
+        return v.toArray(new String[v.size()]);
+    }
+    
+    private void createAddonMenuEntries(String whitespace, String namePrefix, AddOn subElement, Vector<String> subMenu) {
+        subMenu.add(whitespace.concat("<node oor:name=\"Submenu\">")); // NOI18N
+        String[] subObjectNamesInOrder = subElement.getAllSetObjectNames();
+        for (int i=0; i<subObjectNamesInOrder.length; i++) {
+            NbNodeObject object = (NbNodeObject)subElement.getSetObject(subObjectNamesInOrder[i]);
+            switch(object.getType()) {
+                case NbNodeObject.UI_MENU_TYPE:
+                    String menuName = "m" + (++menuOrderNumber);  // NOI18N
+                    subMenu.add(whitespace.concat("  <node oor:name=\"").concat(
+                            menuName).concat("\" oor:op=\"replace\">")); // NOI18N
+                    subMenu.add(whitespace.concat("    <prop oor:name=\"URL\" oor:type=\"xs:string\">")); // NOI18N
+                    subMenu.add(whitespace.concat("      <value/>")); // NOI18N
+                    subMenu.add(whitespace.concat("    </prop>")); // NOI18N
+                    subMenu.add(whitespace.concat("    <prop oor:name=\"ImageIdentifier\" oor:type=\"xs:string\">")); // NOI18N
+                    subMenu.add(whitespace.concat("      <value/>")); // NOI18N
+                    subMenu.add(whitespace.concat("    </prop>")); // NOI18N
+                    subMenu.add(whitespace.concat("    <prop oor:name=\"Target\" oor:type=\"xs:string\">")); // NOI18N
+                    subMenu.add(whitespace.concat("      <value>_self</value>")); // NOI18N
+                    subMenu.add(whitespace.concat("    </prop>")); // NOI18N
+                    subMenu.add(whitespace.concat("    <prop oor:name=\"Title\" oor:type=\"xs:string\">")); // NOI18N
+                    subMenu.add(whitespace.concat("      <value/>")); // NOI18N
+                    PropertyContainer pCont = (PropertyContainer)object;
+                    LocalizedOpenOfficeOrgProperty nameProp = (LocalizedOpenOfficeOrgProperty)pCont.getProperty(pCont.PROPERTY_DisplayName);
+                    Integer[] indexes = nameProp.getUsedLanguageIndexes();
+                    for (int j=0; j<indexes.length; j++) {
+                        int langId = indexes[j].intValue();
+                        String languageName = stripName(nameProp.getValueForLanguage(langId));
+                        subMenu.add(whitespace.concat("      <value xml:lang=\"").concat(
+                                LanguageDefinition.getLanguageShortNameForId(langId)).concat("\">").concat(
+                                languageName).concat("</value>")); // NOI18N
+                    }
+                    subMenu.add(whitespace.concat("    </prop>")); // NOI18N
+                    createAddonMenuEntries(whitespace.concat("      "), namePrefix, (SubMenuElement)object, subMenu); // NOI18N
+                    subMenu.add(whitespace.concat("  </node>")); // NOI18N
+                    break;
+                case NbNodeObject.UI_SEPARATOR_TYPE:
+                    handleSeparator(whitespace.concat("  "), namePrefix, (SeparatorElement)object, subMenu, true); // NOI18N
+                    break;
+                case NbNodeObject.FUNCTION_TYPE:
+                    handleCommandType(whitespace.concat("  "), namePrefix, (Command)object, subMenu, true); // NOI18N
+                    break;
+                default:
+                    // this is real bad
+                    LogWriter.getLogWriter().log(LogWriter.LEVEL_CRITICAL, "Illegal NbNodeObject"); // NOI18N
+            }
+        }
+        subMenu.add(whitespace.concat("</node>")); // NOI18N
+    }
+
+    private void createAddonToolbarEntries(String whitespace, String namePrefix, AddOn subElement, Vector<String> subMenu) {
+        String[] subObjectNamesInOrder = subElement.getAllSetObjectNames();
+        for (int i=0; i<subObjectNamesInOrder.length; i++) {
+            NbNodeObject object = (NbNodeObject)subElement.getSetObject(subObjectNamesInOrder[i]);
+            switch(object.getType()) {
+                case NbNodeObject.UI_MENU_TYPE:
+                    createAddonToolbarEntries(whitespace, namePrefix, (SubMenuElement)object, subMenu);
+                    break;
+                case NbNodeObject.UI_SEPARATOR_TYPE:
+                    handleSeparator(whitespace, namePrefix, (SeparatorElement)object, subMenu, false);
+                    break;
+                case NbNodeObject.FUNCTION_TYPE:
+                    handleCommandType(whitespace, namePrefix, (Command)object, subMenu, false);
+                    break;
+                default:
+                    // this is real bad
+                    LogWriter.getLogWriter().log(LogWriter.LEVEL_CRITICAL, "Illegal NbNodeObject"); // NOI18N
+            }
+        }
+    }
+    
+    private void handleSeparator(String whitespace, String namePrefix, SeparatorElement separator, Vector<String> subMenu, boolean menu) {
+        String menuName = "m" + (menu?++menuOrderNumber:++toolbarOrderNumber);  // NOI18N
+        subMenu.add(whitespace.concat("<node oor:name=\"").concat(menuName).concat("\" oor:op=\"replace\">")); // NOI18N
+        subMenu.add(whitespace.concat("  <prop oor:name=\"URL\" oor:type=\"xs:string\">")); // NOI18N
+        subMenu.add(whitespace.concat("    <value>private:separator</value>")); // NOI18N
+        subMenu.add(whitespace.concat("  </prop>")); // NOI18N
+        subMenu.add(whitespace.concat("</node>")); // NOI18N
+    }
+
+    private void handleCommandType(String whitespace, String namePrefix, Command object, Vector<String> subMenu, boolean menu) {
+        try {
+            String menuName = "m" + (menu?++menuOrderNumber:++toolbarOrderNumber);  // NOI18N
+            PropertyContainer propCont = (PropertyContainer) object;
+            String name = propCont.getSimpleProperty(PropertyContainer.PROPERTY_CONTAINER_NAME);
+            Vector<String> v = new Vector<String>();
+            for (int i=0; i<propCont.PROPERTY_Context.length; i++) {
+                OpenOfficeOrgBooleanProperty prop = (OpenOfficeOrgBooleanProperty)propCont.getProperty(propCont.PROPERTY_Context[i]);
+                if (prop.getValue()) {
+                    v.add(prop.getPropertyName());
+                }
+            }
+            String context = XcuFileCreator.getXcuContext(v.toArray(new String[v.size()]));
+            LocalizedOpenOfficeOrgProperty nameProp = (LocalizedOpenOfficeOrgProperty)propCont.getProperty(propCont.PROPERTY_DisplayName);
+            subMenu.add(whitespace.concat("<node oor:name=\"").concat(menuName).concat("\" oor:op=\"replace\">")); // NOI18N
+            subMenu.add(whitespace.concat("  <prop oor:name=\"URL\" oor:type=\"xs:string\">")); // NOI18N
+            subMenu.add(whitespace.concat("    <value>").concat(namePrefix).concat(":").concat(name).concat("</value>")); // NOI18N
+            subMenu.add(whitespace.concat("  </prop>")); // NOI18N
+            subMenu.add(whitespace.concat("  <prop oor:name=\"ImageIdentifier\" oor:type=\"xs:string\">")); // NOI18N
+            subMenu.add(whitespace.concat("    <value/>")); // NOI18N
+            subMenu.add(whitespace.concat("  </prop>")); // NOI18N
+            subMenu.add(whitespace.concat("  <prop oor:name=\"Target\" oor:type=\"xs:string\">")); // NOI18N
+            subMenu.add(whitespace.concat("    <value>_self</value>")); // NOI18N
+            subMenu.add(whitespace.concat("  </prop>")); // NOI18N
+            subMenu.add(whitespace.concat("  <prop oor:name=\"Context\" oor:type=\"xs:string\">")); // NOI18N
+            subMenu.add(whitespace.concat("    ").concat(context)); // NOI18N
+            subMenu.add(whitespace.concat("  </prop>")); // NOI18N
+            subMenu.add(whitespace.concat("  <prop oor:name=\"Title\" oor:type=\"xs:string\">")); // NOI18N
+            subMenu.add(whitespace.concat("    <value/>")); // NOI18N
+            Integer[] indexes = nameProp.getUsedLanguageIndexes();
+            for (int j=0; j<indexes.length; j++) {
+                int langId = indexes[j].intValue();
+                String languageName = stripName(nameProp.getValueForLanguage(langId));
+                subMenu.add(whitespace.concat("    <value xml:lang=\"").concat( // NOI18N
+                        LanguageDefinition.getLanguageShortNameForId(langId)).concat("\">").concat( // NOI18N
+                        languageName).concat("</value>")); // NOI18N
+            }
+            subMenu.add(whitespace.concat("  </prop>")); // NOI18N
+            subMenu.add(whitespace.concat("</node>")); // NOI18N
+        } catch (UnknownOpenOfficeOrgPropertyException ex) {
+            ex.printStackTrace();
+        }
+    }
+    
+    private String[] getAddOnImages() {
+        AddOn topElement = (AddOn)wiz.getProperty("AddOn"); // NOI18N
+        String protocol = (String)wiz.getProperty("Protocol"); // NOI18N
+        String[][] commandAndImages = collectCommandsAndImages(topElement);
+        Vector<String> retValue = new Vector<String>();
+        retValue.add("    <node oor:name=\"Images\">"); // NOI18N
+        for (int i=0; i<commandAndImages.length; i++) {
+            retValue.add("      <node oor:name=\"".concat(protocol).concat(".").concat(commandAndImages[i][0].toLowerCase()).concat(".images\" oor:op=\"replace\">")); // NOI18N
+            retValue.add("        <prop oor:name=\"URL\" oor:type=\"xs:string\">"); // NOI18N
+            retValue.add("          <value>".concat(protocol).concat(":").concat(commandAndImages[i][0]).concat("</value>")); // NOI18N
+            retValue.add("        </prop>"); // NOI18N
+            retValue.add("        <node oor:name=\"UserDefinedImages\">"); // NOI18N
+            retValue.add("          <prop oor:name=\"ImageSmallURL\">"); // NOI18N
+            retValue.add("            ".concat(commandAndImages[i][1])); // NOI18N
+            retValue.add("          </prop>"); // NOI18N
+            retValue.add("          <prop oor:name=\"ImageBigURL\">"); // NOI18N
+            retValue.add("            ".concat(commandAndImages[i][2])); // NOI18N
+            retValue.add("          </prop>"); // NOI18N
+            retValue.add("          <prop oor:name=\"ImageSmallHCURL\">"); // NOI18N
+            retValue.add("            ".concat(commandAndImages[i][3])); // NOI18N
+            retValue.add("          </prop>"); // NOI18N
+            retValue.add("          <prop oor:name=\"ImageBigHCURL\">"); // NOI18N
+            retValue.add("            ".concat(commandAndImages[i][4])); // NOI18N
+            retValue.add("          </prop>"); // NOI18N
+            retValue.add("        </node>"); // NOI18N
+            retValue.add("      </node>"); // NOI18N
+        }
+        retValue.add("      </node>"); // NOI18N
+        return retValue.toArray(new String[retValue.size()]);
+    }
+    
+    private String[][] collectCommandsAndImages(AddOn topElement) {
+        NbNodeObject[] commands = topElement.getAllCommands();
+        String[][]commandsAndImages = new String[commands.length][5];
+        for (int i=0; i<commands.length; i++) {
+            Command command = (Command)commands[i];
+            try {
+                String commandName = command.getSimpleProperty(command.PROPERTY_CONTAINER_NAME);
+                PropertyContainer propCont = (PropertyContainer)command;
+                String iconSmall = getIconEntry(propCont.getProperty(propCont.PROPERTY_Icon_Lowres_Small));
+                String iconBig = getIconEntry(propCont.getProperty(propCont.PROPERTY_Icon_Lowres_Big)); 
+                String iconHiresSmall = getIconEntry(propCont.getProperty(propCont.PROPERTY_Icon_Hires_Small)); 
+                String iconHiresBig = getIconEntry(propCont.getProperty(propCont.PROPERTY_Icon_Hires_Big)); 
+                commandsAndImages[i][0] = commandName;
+                commandsAndImages[i][1] = iconSmall;
+                commandsAndImages[i][2] = iconBig;
+                commandsAndImages[i][3] = iconHiresSmall;
+                commandsAndImages[i][4] = iconHiresBig;
+            } catch (UnknownOpenOfficeOrgPropertyException ex) {
+                LogWriter.getLogWriter().printStackTrace(ex);
+            }
+        }
+        return commandsAndImages;
+    }
+    
+    private String stripName(String name) {
+        String result = name.trim();
+        if (result.startsWith("<")) { // NOI18N
+                result = result.substring(1);
+            if (result.endsWith(">")) { // NOI18N
+                result = result.substring(0, result.length() - 1);
+            }
+        }
+        return result.trim();
+    }
+    
+    private String[] doAddInReplace(String output) 
+            throws IOException, UnknownOpenOfficeOrgLanguageIDException {
+        if (output.indexOf("$!Methods!") != -1) { // NOI18N
+            String whitespace = output.substring(0, output.indexOf("$!Methods!")); // NOI18N
+            String[] funcNames = this.addin.getAllSetObjectNames();
+            String[] returnVal = new String[funcNames.length];
+            for (int i=0; i<funcNames.length; i++) {
+                StringBuffer functionOutputLine = new StringBuffer("\n").append(whitespace); // NOI18N
+                Function function = (Function)addin.getSetObject(funcNames[i]);
+                String funcName = (String)function.getProperty(function.PROPERTY_Name).getValueForLanguage(-1);
+                String funcType = (String)function.getProperty(function.PROPERTY_Type).getValueForLanguage(-1);
+                funcType = getArrays(funcType);
+                functionOutputLine.append(IdlFileCreator.getIdlTypeForJavaType(funcType)).append(" ").append(funcName).append("("); // NOI18N
+                String[] paramNames = function.getAllSetObjectNames();
+                for (int j=0; j<paramNames.length; j++) {
+                    Parameter param = (Parameter)function.getSetObject(paramNames[j]);
+                    String paramName = (String)param.getProperty(param.PROPERTY_Name).getValueForLanguage(-1);
+                    String paramType = (String)param.getProperty(param.PROPERTY_Type).getValueForLanguage(-1);
+                    paramType = getArrays(paramType);
+                    functionOutputLine.append("[in] ").append(IdlFileCreator.getIdlTypeForJavaType(paramType)).append(" ").append(paramName); // NOI18N
+                    if (j < paramNames.length - 1) {
+                        functionOutputLine.append(", "); // NOI18N
+                    }
+                }
+                String exceptions = function.getProperty(function.PROPERTY_Exceptions).getValueForLanguage(-1);
+                if (exceptions.length() == 0)
+                    functionOutputLine.append(");"); // NOI18N
+                else {
+                    functionOutputLine.append(")\n"); // NOI18N
+                    whitespace = "    ".concat(whitespace); // NOI18N
+                    String indent = "\n".concat(whitespace).concat("         "); // NOI18N
+                    exceptions = exceptions.replace(".", "::"); // NOI18N
+                    exceptions = exceptions.replace(" ", indent); // NOI18N
+                    functionOutputLine.append(whitespace).append("raises ( ").append(exceptions).append(" );"); // NOI18N
+                }
+                returnVal[i] = functionOutputLine.toString();
+            }
+            return returnVal;
+        }
+        return doSimpleReplace(output);
+    }
+    
+    /**
+     * take a idl type, e.g. long[][] and remodel it into 
+     * sequence< sequence< long > >
+     * @param paramType the type
+     * @return a type with correct arrays: returns the same type if no arrays are found
+     */
+    private String getArrays(String paramType) {
+       int index = 0;
+       while((index = paramType.lastIndexOf("[]")) != -1) { // NOI18N
+           paramType = paramType.substring(0, index).concat(paramType.substring(index + 2));
+           paramType = "sequence< ".concat(paramType).concat(" >"); // NOI18N
+       } 
+       return paramType;
+    }
+    
+    private String[] getAllUsedTypes(Interface ifc) 
+            throws UnknownOpenOfficeOrgPropertyException, UnknownOpenOfficeOrgLanguageIDException{
+        Vector<String> usedTypes = new Vector<String>();
+        String[] funcNames = this.ifc.getAllSetObjectNames();
+        for (int i=0; i<funcNames.length; i++) {
+            Function function = (Function)ifc.getSetObject(funcNames[i]);
+            String funcType = (String) function.getProperty(function.PROPERTY_Type).getValueForLanguage(-1);
+            String[] addReturnType = getTemplateImportsFromType(funcType);
+            for (int k=0; k<addReturnType.length; k++) {
+                if (!usedTypes.contains(addReturnType[k]))
+                    usedTypes.add(addReturnType[k]);
+            }
+            String[] paramNames = function.getAllSetObjectNames();
+            for (int j=0; j<paramNames.length; j++) {
+                Parameter param = (Parameter)function.getSetObject(paramNames[j]);
+                String paramType = (String)param.getProperty(param.PROPERTY_Type).getValueForLanguage(-1);
+                String[] addParamType = getTemplateImportsFromType(paramType);
+                for (int k=0; k<addParamType.length; k++) {
+                    if (!usedTypes.contains(addParamType[k]))
+                        usedTypes.add(addParamType[k]);
+                }
+            }
+        }
+        String[] types = usedTypes.toArray(new String[usedTypes.size()]);
+        return getImportFromTypes(types);
+    }
+
+    private String[] getImportFromTypes(String[] types) {
+        // build import structure
+        for (int i=0; i<types.length; i++) {
+            String oneType = types[i];
+            types[i] = "\n#ifndef __".concat(oneType.replaceAll("\\.", "_")).concat("_idl__\n")
+                    .concat("#import <").concat(oneType.replaceAll("\\.", "/")).concat(".idl>\n")
+                    .concat("#endif\n"); // NOI18N
+        }
+        return types;
+    }
+    
+    private String getExceptionImports(NbNodeObject object) 
+            throws UnknownOpenOfficeOrgLanguageIDException {
+        Vector<String> result = new Vector<String>();
+        if (object == null)
+            return ""; // NOI18N
+        if (object instanceof AddIn) {
+            String[] funcNames = ((AddIn)object).getAllSetObjectNames();
+            for (int i=0; i<funcNames.length; i++) {
+                Function function = (Function)addin.getSetObject(funcNames[i]);
+                String[] exceptions = getExceptionsFromFunction(function);
+                for (int k=0; k<exceptions.length; k++) {
+                    if (!result.contains(exceptions[k]))
+                        result.add(exceptions[k]);
+                }
+            }
+        } 
+        else {
+            if (object instanceof Interface) { // what else?
+                Interface ifcTemp = (Interface)object;
+                String[] funcNames = ifcTemp.getAllSetObjectNames();
+                for (int j=0; j<funcNames.length; j++) {
+                    Function function = (Function)ifcTemp.getSetObject(funcNames[j]);
+                    String[] exceptions = getExceptionsFromFunction(function);
+                    for (int k=0; k<exceptions.length; k++) {
+                        if (!result.contains(exceptions[k]))
+                            result.add(exceptions[k]);
+                    }
+                }
+            }
+        }
+        StringBuffer retValue = new StringBuffer();
+        for (Enumeration<String> en = result.elements(); en.hasMoreElements(); retValue.append(en.nextElement())){
+            // empty by design
+        }
+        return retValue.toString();
+    }
+    
+    private String[] getExceptionsFromFunction(Function function) 
+            throws UnknownOpenOfficeOrgLanguageIDException {
+        Vector<String>functionExceptions = new Vector<String>();
+        StringTokenizer t = null;
+        String exceptions = function.getProperty(function.PROPERTY_Exceptions).getValueForLanguage(-1);
+        t = new StringTokenizer(exceptions, " ,"); // NOI18N
+        
+        while(t.hasMoreTokens()) {
+            String oneException = t.nextToken();
+            String ifndef = "\n#ifndef __".concat(oneException.replace('.', '_')).concat("_idl__"); // NOI18N
+            String imp = "\n#import <".concat(oneException.replace(".", "/").concat(".idl>")); // NOI18N
+            String endif = "\n#endif\n"; // NOI18N
+            functionExceptions.add(ifndef.concat(imp).concat(endif));
+        }
+        return functionExceptions.toArray(new String[functionExceptions.size()]);
+    }
+    
+    private String[] getTemplateImportsFromType(String type) {
+        Vector<String>additionalImports = new Vector<String>();
+        type = type.trim();
+        int index = 0;
+        while ((index = type.indexOf('<')) != -1) {
+            String oneStruct = type.substring(0, index);
+            checkForComplexTemplates(oneStruct, additionalImports);
+            int lastIndex = type.lastIndexOf('>');
+            type = type.substring(index + 1, lastIndex);
+        }
+        checkForComplexTemplates(type, additionalImports);
+        return additionalImports.toArray(new String[additionalImports.size()]);
+    }
+    
+    
+    private void checkForComplexTemplates(String candidate, Vector<String> additionalImports) {
+        if (candidate.trim().indexOf(',') != -1) {
+            StringTokenizer t = new StringTokenizer(candidate, ","); // NOI18N
+            while(t.hasMoreTokens()) {
+                candidate = t.nextToken();
+                if (candidate.trim().indexOf('.') != -1)
+                    additionalImports.add(candidate.trim());
+            }
+        }
+        else {
+            if (candidate.trim().indexOf('.') != -1)
+                additionalImports.add(candidate.trim());
+        }
+    }
+    
+    /**
+     * function  is only used for AddOns. When using with other wizards, check 
+     * correct %origin%/../../../../../images/ directory
+     * @param prop the icon property to create xcu entries from
+     * @return entry complete as string or empty entry for missing icons
+     */
+    private String getIconEntry(OpenOfficeOrgProperty prop) {
+        String retValue = EMPTY_VALUE;
+        try {
+            OpenOfficeOrgIconProperty iconProp = (OpenOfficeOrgIconProperty)prop;
+            String imgPath = iconProp.getValueForLanguage(-1);
+            if (imgPath != null && imgPath.length() != 0) {
+                File imgFile = new File(imgPath);
+                FileObject sourceImage = FileUtil.toFileObject(imgFile);
+                String name = imgFile.getName();
+                // prepare for images
+                File projDir = (File) wiz.getProperty("projdir"); // NOI18N
+                FileObject imageFolder = FileUtil.createFolder(
+                        FileUtil.toFileObject(projDir), "images"); // NOI18N
+                // copy images
+                int index = name.indexOf('.');
+                if (index < 0) index = name.length();
+                FileUtil.copyFile(sourceImage, imageFolder, name.substring(0, index));
+                retValue = "<value>%origin%/../../../../../images/".concat(name).concat("</value>");  // NOI18N
+            }
+        } catch (IOException ex) {
+            LogWriter.getLogWriter().printStackTrace(ex);
+        }
+        catch (NullPointerException ex) {
+            LogWriter.getLogWriter().printStackTrace(ex);
+        }
+        catch (IllegalArgumentException ex) {
+            LogWriter.getLogWriter().printStackTrace(ex);
+        } catch (UnknownOpenOfficeOrgLanguageIDException ex) {
+            LogWriter.getLogWriter().printStackTrace(ex);
+        }
+        return retValue;
+    }
+}

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle.properties
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle.properties?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle.properties (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle.properties Fri Jan 27 01:29:33 2012
@@ -0,0 +1,10 @@
+# Log Levels
+LOG_Level_info=Info
+LOG_Level_warning=Warning
+LOG_Level_critical=Critical
+LOG_Level_exception=Exception
+
+ERROR_WrongSDK=The OpenOffice.org SDK that is used is too old. Please update to the newest version.
+ERROR_CommandExecute=While executing an SDK Command, the following error happened:
+ERROR_SDKEnvironment=An environment for executing the SDK Commands cannot be created.
+ERROR_Platform=The current Operating System seems to be unsupported.
\ No newline at end of file

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_ja.properties
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_ja.properties?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_ja.properties (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_ja.properties Fri Jan 27 01:29:33 2012
@@ -0,0 +1,21 @@
+# Log Levels
+# LOG_Level_info=Info
+LOG_Level_info=\u60c5\u5831
+# LOG_Level_warning=Warning
+LOG_Level_warning=\u8b66\u544a
+# LOG_Level_critical=Critical
+LOG_Level_critical=\u30af\u30ea\u30c6\u30a3\u30ab\u30eb
+# LOG_Level_exception=Exception
+LOG_Level_exception=\u4f8b\u5916
+
+# ERROR_WrongSDK=The OpenOffice.org SDK that is used is too old. Please update to the newest version.
+ERROR_WrongSDK=\u4f7f\u7528\u3057\u3066\u3044\u308b OpenOffice.org SDK \u304c\u53e4\u3059\u304e\u307e\u3059\u3002\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+# ERROR_CommandExecute=While executing an SDK Command, the following error happened:
+ERROR_CommandExecute=SDK \u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u6642\u306b\u3001\u6b21\u306e\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:
+# ERROR_SDKEnvironment=An environment for executing the SDK Commands cannot be created.
+ERROR_SDKEnvironment=SDK \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u74b0\u5883\u304c\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002
+# ERROR_Platform=The current Operating System seems to be unsupported.
+ERROR_Platform=\u73fe\u5728\u306e\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
+
+
+

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_pt_BR.properties
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_pt_BR.properties?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_pt_BR.properties (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_pt_BR.properties Fri Jan 27 01:29:33 2012
@@ -0,0 +1,10 @@
+# Log Levels
+LOG_Level_info=Info
+LOG_Level_warning=Warning
+LOG_Level_critical=Critical
+LOG_Level_exception=Exception
+
+ERROR_WrongSDK=The OpenOffice.org SDK that is used is too old. Please update to the newest version.
+ERROR_CommandExecute=While executing an SDK Command, the following error happened:
+ERROR_SDKEnvironment=An environment for executing the SDK Commands cannot be created.
+ERROR_Platform=The current Operating System seems to be unsupported.
\ No newline at end of file

Added: incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_zh_CN.properties
URL: http://svn.apache.org/viewvc/incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_zh_CN.properties?rev=1236486&view=auto
==============================================================================
--- incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_zh_CN.properties (added)
+++ incubator/ooo/devtools/netbeansintegration/src/org/openoffice/extensions/util/Bundle_zh_CN.properties Fri Jan 27 01:29:33 2012
@@ -0,0 +1,10 @@
+# Log Levels
+LOG_Level_info=\u4fe1\u606f
+LOG_Level_warning=\u8b66\u544a
+LOG_Level_critical=\u4e25\u91cd\u8b66\u544a
+LOG_Level_exception=\u5f02\u5e38
+
+ERROR_WrongSDK=\u4f7f\u7528\u7684 OpenOffice.org SDK \u7248\u672c\u592a\u65e7\u3002\u8bf7\u66f4\u65b0\u4e3a\u6700\u65b0\u7248\u672c\u3002
+ERROR_CommandExecute=\u5728\u6267\u884c SDK \u547d\u4ee4\u65f6\uff0c\u51fa\u73b0\u4ee5\u4e0b\u9519\u8bef\uff1a
+ERROR_SDKEnvironment=\u65e0\u6cd5\u521b\u5efa\u4e00\u4e2a\u6267\u884c SDK \u547d\u4ee4\u7684\u73af\u5883\u3002
+ERROR_Platform=\u4f3c\u4e4e\u4e0d\u652f\u6301\u5f53\u524d\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002