Author: cmarcum Date: Sat May 2 15:12:24 2015 New Revision: 1677321 URL: http://svn.apache.org/r1677321 Log: #i126246# added sdkOk property and getter/setter in AddinWizardIterator to keep track of valid office and sdk locations.
added getter for AddinWizardIterator in AddinWizardPanel1Project to be used by AddinPanelVisual1Project valid method. added check of sdkOk in AddinPanelVisual1Project valid method to disable next button and display message. added message to bundle to display instructions to cancel dialog if settings were skipped and where to find settings in tools > options. added same message in it_IT bundle. Modified: openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinPanelVisual1Project.java openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardIterator.java openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardPanel1Project.java openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle.properties openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle_it_IT.properties Modified: openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinPanelVisual1Project.java URL: http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinPanelVisual1Project.java?rev=1677321&r1=1677320&r2=1677321&view=diff ============================================================================== --- openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinPanelVisual1Project.java (original) +++ openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinPanelVisual1Project.java Sat May 2 15:12:24 2015 @@ -1,24 +1,23 @@ -/************************************************************** - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - *************************************************************/ - +/** + * ************************************************************ + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + * + ************************************************************ + */ package org.openoffice.extensions.projecttemplates.calcaddin; import java.io.File; @@ -38,17 +37,19 @@ import org.openide.util.NbBundle; import org.openoffice.extensions.config.ConfigurationSettings; public class AddinPanelVisual1Project extends JPanel implements DocumentListener { - + public static final String PROP_PROJECT_NAME = "AddIn"; // NOI18N - - private boolean addinNameModified = false; + + private boolean addinNameModified = false; private AddinWizardPanel1Project panel; - private String[] generatedFiles = new String[]{ "", "", "", - "src/uno-extension-manifest.xml\n", - "registry/data/org/openoffice/Office/CalcAddins.xcu\n" }; // NOI18N - - /** Creates new form PanelProjectLocationVisual */ + private String[] generatedFiles = new String[]{"", "", "", + "src/uno-extension-manifest.xml\n", + "registry/data/org/openoffice/Office/CalcAddins.xcu\n"}; // NOI18N + + /** + * Creates new form PanelProjectLocationVisual + */ public AddinPanelVisual1Project(AddinWizardPanel1Project panel) { initComponents(); this.panel = panel; @@ -59,11 +60,11 @@ public class AddinPanelVisual1Project ex calcAddinNameTextField.getDocument().addDocumentListener(this); packageTextField.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. + + /** + * 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() { @@ -189,7 +190,7 @@ public class AddinPanelVisual1Project ex .addContainerGap()))) ); }// </editor-fold>//GEN-END:initComponents - + private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed JFileChooser chooser = new JFileChooser(FileSystemView.getFileSystemView()); FileUtil.preventFileChooserSymlinkTraversal(chooser, ConfigurationSettings.getDefaultFileChooserStartingDir()); @@ -208,10 +209,10 @@ public class AddinPanelVisual1Project ex projectLocationTextField.setText(FileUtil.normalizeFile(projectDir).getAbsolutePath()); } panel.fireChangeEvent(); - + }//GEN-LAST:event_browseButtonActionPerformed - - + + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel addinNameLabel; private javax.swing.JButton browseButton; @@ -227,15 +228,21 @@ public class AddinPanelVisual1Project ex private javax.swing.JLabel projectNameLabel; private javax.swing.JTextField projectNameTextField; // End of variables declaration//GEN-END:variables - + public void addNotify() { super.addNotify(); //same problem as in 31086, initial focus on Cancel button projectNameTextField.requestFocus(); } - + boolean valid(WizardDescriptor wizardDescriptor) { - + + if (!panel.getAddInWizardIterator().isSdkOk()) { + String message = NbBundle.getMessage(AddinWizardIterator.class, "LBL_ErrorMessageOfficeSdk"); + wizardDescriptor.putProperty("WizardPanel_errorMessage", message); // NOI18N + return false; // Office or SDK skipped during Configuration Panel + } + if (projectNameTextField.getText().length() == 0) { String message = NbBundle.getMessage(AddinWizardIterator.class, "LB_Error_ProjectName"); wizardDescriptor.putProperty("WizardPanel_errorMessage", message); // NOI18N @@ -248,7 +255,7 @@ public class AddinPanelVisual1Project ex return false; } final File destFolder = FileUtil.normalizeFile(new File(createdFolderTextField.getText()).getAbsoluteFile()); - + File projLoc = destFolder; while (projLoc != null && !projLoc.exists()) { projLoc = projLoc.getParentFile(); @@ -258,13 +265,13 @@ public class AddinPanelVisual1Project ex wizardDescriptor.putProperty("WizardPanel_errorMessage", message); // NOI18N return false; } - + if (FileUtil.toFileObject(projLoc) == null) { String message = NbBundle.getMessage(AddinWizardIterator.class, "LB_Error_ProjectFolderPath"); wizardDescriptor.putProperty("WizardPanel_errorMessage", message); // NOI18N return false; } - + File[] kids = destFolder.listFiles(); if (destFolder.exists() && kids != null && kids.length > 0) { String message = NbBundle.getMessage(AddinWizardIterator.class, "LB_Error_ProjectFolderNotEmpty"); @@ -272,7 +279,7 @@ public class AddinPanelVisual1Project ex wizardDescriptor.putProperty("WizardPanel_errorMessage", message); // NOI18N return false; } - + String mainClass = calcAddinNameTextField.getText().trim(); if (mainClass.length() == 0 || !mainClass.matches("[a-zA-Z_][a-zA-Z._$0-9]*")) { // NOI18N String message = NbBundle.getMessage(AddinWizardIterator.class, "LB_Error_AddInClassName"); @@ -289,7 +296,7 @@ public class AddinPanelVisual1Project ex wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); // NOI18N return true; } - + void store(WizardDescriptor d) { String name = projectNameTextField.getText().trim(); String folder = createdFolderTextField.getText().trim(); @@ -302,7 +309,7 @@ public class AddinPanelVisual1Project ex } catch (IOException e) { // TODO } - + String mainClass = calcAddinNameTextField.getText().trim(); String packageName = packageTextField.getText().trim(); d.putProperty("mainClassName", mainClass); // NOI18N @@ -311,13 +318,13 @@ public class AddinPanelVisual1Project ex d.putProperty("RegistrationClass", packageName + "." + mainClass + "Impl"); // NOI18N d.putProperty("UnoPackage", packageName); // NOI18N } - + private void updateCreatedFiles() { - createdFilesPane.setText(generatedFiles[0] + generatedFiles[1] + - generatedFiles[2] + generatedFiles[3] + - generatedFiles[4]); // NOI18N + createdFilesPane.setText(generatedFiles[0] + generatedFiles[1] + + generatedFiles[2] + generatedFiles[3] + + generatedFiles[4]); // NOI18N } - + void read(WizardDescriptor settings) { File projectLocation = (File) settings.getProperty("projdir"); // NOI18N if (projectLocation == null || projectLocation.getParentFile() == null || !projectLocation.getParentFile().isDirectory()) { @@ -327,31 +334,32 @@ public class AddinPanelVisual1Project ex } this.projectLocationTextField.setText(projectLocation.getAbsolutePath()); - String projectName = (String) settings.getProperty("name"); // NOI18N - if(projectName == null) { + if (projectName == null) { projectName = "AddIn"; // NOI18N String[] fileList = projectLocation.list(new FilenameFilter() { public boolean accept(File dir, String name) { - if (name.startsWith("AddIn")) return true; // NOI18N + if (name.startsWith("AddIn")) { + return true; // NOI18N + } return false; } }); boolean searchProjectName = true; int length = projectName.length(); - for (int i=0; searchProjectName && i<fileList.length + 1; i++) { + for (int i = 0; searchProjectName && i < fileList.length + 1; i++) { switch (i) { case 0: // keep project name break; case 1: // append 1 - projectName = new StringBuffer(projectName).append(1).toString(); + projectName = new StringBuffer(projectName).append(1).toString(); break; default: // remove number and append the next one projectName = new StringBuffer(projectName.substring(0, length)).append(i).toString(); } // test if the name is already used searchProjectName = false; - for (int j=0; !searchProjectName && j<fileList.length; j++) { + for (int j = 0; !searchProjectName && j < fileList.length; j++) { // if the project name isn't found, searchProjectName stays false and the name is kept searchProjectName |= fileList[j].equals(projectName); } @@ -359,68 +367,73 @@ public class AddinPanelVisual1Project ex } this.projectNameTextField.setText(projectName); this.projectNameTextField.selectAll(); - - String mainclass = (String)settings.getProperty("mainClassName"); // NOI18N - if (mainclass == null) + + String mainclass = (String) settings.getProperty("mainClassName"); // NOI18N + if (mainclass == null) { mainclass = projectName; + } calcAddinNameTextField.setText(projectName); - - String packagename = (String)settings.getProperty("packageName"); // NOI18N - if (packagename == null) + + String packagename = (String) settings.getProperty("packageName"); // NOI18N + if (packagename == null) { packagename = NbBundle.getMessage(ConfigurationSettings.class, "default.package"); // NOI18N + } packageTextField.setText(packagename); - + updateCreatedFiles(); } - + void validate(WizardDescriptor d) throws WizardValidationException { // nothing to validate } - + // Implementation of DocumentListener -------------------------------------- - public void changedUpdate(DocumentEvent e) { updateTexts(e); if (this.projectNameTextField.getDocument() == e.getDocument()) { - firePropertyChange(PROP_PROJECT_NAME,null,this.projectNameTextField.getText()); + firePropertyChange(PROP_PROJECT_NAME, null, this.projectNameTextField.getText()); } } - + public void insertUpdate(DocumentEvent e) { updateTexts(e); if (this.projectNameTextField.getDocument() == e.getDocument()) { - firePropertyChange(PROP_PROJECT_NAME,null,this.projectNameTextField.getText()); + firePropertyChange(PROP_PROJECT_NAME, null, this.projectNameTextField.getText()); } } - + public void removeUpdate(DocumentEvent e) { updateTexts(e); if (this.projectNameTextField.getDocument() == e.getDocument()) { - firePropertyChange(PROP_PROJECT_NAME,null,this.projectNameTextField.getText()); + firePropertyChange(PROP_PROJECT_NAME, null, this.projectNameTextField.getText()); } } - - /** Handles changes in the Project name and project directory, */ + + /** + * Handles changes in the Project name and project directory, + */ private void updateTexts(DocumentEvent e) { - + Document doc = e.getDocument(); - - if (doc == calcAddinNameTextField.getDocument() && calcAddinNameTextField.getText().length()>0) { - if (!projectNameTextField.getText().equals(calcAddinNameTextField.getText())) + + if (doc == calcAddinNameTextField.getDocument() && calcAddinNameTextField.getText().length() > 0) { + if (!projectNameTextField.getText().equals(calcAddinNameTextField.getText())) { addinNameModified = true; + } } - - if (doc == projectNameTextField.getDocument() || doc == projectLocationTextField.getDocument() || - doc == packageTextField.getDocument()) { + + if (doc == projectNameTextField.getDocument() || doc == projectLocationTextField.getDocument() + || doc == packageTextField.getDocument()) { // doc == calcAddinNameTextField.getDocument() || doc == packageTextField.getDocument()) { // Change in the project name - + String projectName = projectNameTextField.getText(); String projectFolder = projectLocationTextField.getText(); - - if (!addinNameModified) + + if (!addinNameModified) { calcAddinNameTextField.setText(projectName); - + } + //if (projectFolder.trim().length() == 0 || projectFolder.equals(oldName)) { createdFolderTextField.setText(projectFolder.concat(File.separator).concat(projectName)); //} @@ -429,7 +442,7 @@ public class AddinPanelVisual1Project ex generatedFiles[0] = packagePath + calcAddinNameTextField.getText() + "Impl.java\n"; // NOI18N generatedFiles[1] = packagePath + calcAddinNameTextField.getText() + ".idl\n"; // NOI18N generatedFiles[2] = packagePath + "X" + calcAddinNameTextField.getText() + ".idl\n"; // NOI18N - + updateCreatedFiles(); } if (doc == calcAddinNameTextField.getDocument()) { Modified: openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardIterator.java URL: http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardIterator.java?rev=1677321&r1=1677320&r2=1677321&view=diff ============================================================================== --- openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardIterator.java (original) +++ openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardIterator.java Sat May 2 15:12:24 2015 @@ -41,6 +41,7 @@ import org.openoffice.extensions.config. import org.openoffice.extensions.projecttemplates.actions.panel.DescriptionXmlHandler; import org.openoffice.extensions.util.ProjectCreator; + public class AddinWizardIterator implements WizardDescriptor.InstantiatingIterator { private static final long serialVersionUID = 1L; @@ -49,6 +50,10 @@ public class AddinWizardIterator impleme private transient WizardDescriptor.Panel[] panels; private transient WizardDescriptor wiz; + // to track status of valid office and sdk through ConfigurationValidator + // to disable next button in AddOnWizardPanel1Project if setting was skipped + private boolean sdkOk = false; + public AddinWizardIterator() {} public static AddinWizardIterator createIterator() { @@ -57,7 +62,7 @@ public class AddinWizardIterator impleme private WizardDescriptor.Panel[] createPanels() { return new WizardDescriptor.Panel[] { - new AddinWizardPanel1Project(), + new AddinWizardPanel1Project(this), // new AddinWizardPanel2Class(), new AddinWizardPanel2Description() //new AddinWizardPanel4Description(), @@ -104,7 +109,13 @@ public class AddinWizardIterator impleme } public void initialize(WizardDescriptor wiz) { - ConfigurationValidator.validateSettings(); + // ConfigurationValidator.validateSettings(); + if (ConfigurationValidator.validateSettings()) { + setSdkOk(true); + } else { + setSdkOk(false); + } + // continue so user may cancel this.wiz = wiz; index = 0; panels = createPanels(); @@ -169,5 +180,13 @@ public class AddinWizardIterator impleme // If nothing unusual changes in the middle of the wizard, simply: public final void addChangeListener(ChangeListener l) {} public final void removeChangeListener(ChangeListener l) {} + + public boolean isSdkOk() { + return this.sdkOk; + } + + public void setSdkOk(boolean sdkOk) { + this.sdkOk = sdkOk; + } } Modified: openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardPanel1Project.java URL: http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardPanel1Project.java?rev=1677321&r1=1677320&r2=1677321&view=diff ============================================================================== --- openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardPanel1Project.java (original) +++ openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/AddinWizardPanel1Project.java Sat May 2 15:12:24 2015 @@ -40,9 +40,11 @@ public class AddinWizardPanel1Project im private WizardDescriptor wizardDescriptor; private AddinPanelVisual1Project component; + private AddinWizardIterator wizIt; /** Creates a new instance of templateWizardPanel */ - public AddinWizardPanel1Project() { + public AddinWizardPanel1Project(AddinWizardIterator it) { + wizIt = it; } public Component getComponent() { @@ -103,4 +105,7 @@ public class AddinWizardPanel1Project im component.validate(wizardDescriptor); } + public AddinWizardIterator getAddInWizardIterator() { + return wizIt; + } } Modified: openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle.properties URL: http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle.properties?rev=1677321&r1=1677320&r2=1677321&view=diff ============================================================================== --- openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle.properties (original) +++ openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle.properties Sat May 2 15:12:24 2015 @@ -24,6 +24,7 @@ LB_Error_FunctionMissing=There has to be LB_Error_FunctionUniqueName=Every function must have a unique name. LB_Error_LanguageMissing=There has to be at least one language for descriptions. LB_Error_ParameterUniqueName=Every parameter must have a unique name. +LBL_ErrorMessageOfficeSdk=Cancel and set OpenOffice and SDK locations in <br/>Tools > Options > Miscellaneous > AOO API Plugin LB_LocalizedProperty=Localized Property # tooltip texts Modified: openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle_it_IT.properties URL: http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle_it_IT.properties?rev=1677321&r1=1677320&r2=1677321&view=diff ============================================================================== --- openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle_it_IT.properties (original) +++ openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/calcaddin/Bundle_it_IT.properties Sat May 2 15:12:24 2015 @@ -28,6 +28,7 @@ LBL_CalcAddinEditor=Definizione delle Fu #LB_Error_FunctionUniqueName=Every function must have a unique name. #LB_Error_LanguageMissing=There has to be at least one language for descriptions. #LB_Error_ParameterUniqueName=Every parameter must have a unique name. +#LBL_ErrorMessageOfficeSdk=Cancel and set OpenOffice and SDK locations in <br/>Tools > Options > Miscellaneous > AOO API Plugin LBL_ProjectName=Nome &Progetto\: LBL_ProjectLocation=Percorso di &progetto\: LBL_ProjectFolder=Cartella di pr&ogetto\: @@ -37,19 +38,20 @@ LB_PackageName=Java &Package\: CB_Backward_Compatibility=Crea un Add-In per Calc &retrocompatibile LB_CreatedFiles=File(s) generati\: LB_FileChooserTitle=Seleziona percorso del progetto -LB_Error_ProjectName=Il nome del progetto non \u00E8 un nome di cartella valido. -LB_Error_ProjectFolderPath=La cartella di progetto non \u00E8 un percorso valido. -LB_Error_CreateProjectFolder=La cartella di progetto non pu\u00F2 essere creata. -LB_Error_ProjectFolderNotEmpty=La cartella di progetto \u00E8 gi\u00E0 esistente e non \u00E8 vuota. -LB_Error_AddInClassName=Il nome dell'Add-In non \u00E8 un nome valido per la relativa classe. -LB_Error_PackageName=Il nome del package non \u00E8 un nome valido. +LB_Error_ProjectName=Il nome del progetto non \u00e8 un nome di cartella valido. +LB_Error_ProjectFolderPath=La cartella di progetto non \u00e8 un percorso valido. +LB_Error_CreateProjectFolder=La cartella di progetto non pu\u00f2 essere creata. +LB_Error_ProjectFolderNotEmpty=La cartella di progetto \u00e8 gi\u00e0 esistente e non \u00e8 vuota. +LB_Error_AddInClassName=Il nome dell'Add-In non \u00e8 un nome valido per la relativa classe. +LB_Error_PackageName=Il nome del package non \u00e8 un nome valido. LB_Error_FunctionMissing=Deve esistere almeno una funzione. LB_Error_FunctionUniqueName=Ogni funzione deve avere un nome univoco. LB_Error_LanguageMissing=Deve essere definita almeno una lingua per le descrizioni. LB_Error_ParameterUniqueName=Ogni parametro deve avere un nome univoco. +LBL_ErrorMessageOfficeSdk=Annullare e impostare i percorsi di OpenOffice e del suo SDK in <br/>Tools > Options > Miscellaneous > AOO API Plugin #LB_LocalizedProperty=Localized Property -LB_LocalizedProperty=Propriet\u00E0 localizzata +LB_LocalizedProperty=Propriet\u00e0 localizzata # tooltip texts #TF_ProjectName_Tooltip=The name of the newly created project (also used as project folder name) @@ -63,10 +65,10 @@ LB_LocalizedProperty=Propriet\u00E0 loca TF_ProjectName_Tooltip=Nome del nuovo progetto creato (utilizzato anche come nome della cartella di progetto) TF_CalcAddinName_Tooltip=Il nome dell'Add-In per Calc utilizzato come base per il nome dell'interfaccia e dei servizi UNO, e il nome della classe di implementazione TF_PackageName_Tooltip=Il nome del package Java collegato tramite mappatura ai moduli in UNO IDL -TF_ProjectLocation_Tooltip=Percorso della directory in cui il progetto verr\u00E0 creato +TF_ProjectLocation_Tooltip=Percorso della directory in cui il progetto verr\u00e0 creato TF_ProjectFolder_Tooltip=Cartella di destinazione finale del nuovo progetto TF_Exception_Type_Tooltip=Eccezioni della funzione -BUTTON_Browse_Tooltip=Selezionare una cartella in cui il progetto verr\u00E0 creato +BUTTON_Browse_Tooltip=Selezionare una cartella in cui il progetto verr\u00e0 creato CB_Backward_Compatibility_Tooltip=Crea un Add-In per Calc compatibile con versioni di OpenOffice.org precedenti alla 2.0.4 #TF_Function_DisplayName_Tooltip=Add your localized display name of the function @@ -123,8 +125,8 @@ LBL_Delete_Title=Cancella Lingua BUTTON_AddFunction_Tooltip=Aggiunge una nuova funzione add-in BUTTON_AddParam_Tooltip=Aggiunge un nuovo parametro alla funzione add-in selezionata BUTTON_Delete_Tooltip=Cancella il parametro selezionato o l'intera funzione add-in -BUTTON_AddLang_Tooltip=Aggiunge una nuova lingua a tutte le propriet\u00E0 localizzate della funzione -BUTTON_DeleteLang_Tooltip=Cancella la lingua selezionata da tutte le propriet\u00E0 localizzate per tutte le funzioni +BUTTON_AddLang_Tooltip=Aggiunge una nuova lingua a tutte le propriet\u00e0 localizzate della funzione +BUTTON_DeleteLang_Tooltip=Cancella la lingua selezionata da tutte le propriet\u00e0 localizzate per tutte le funzioni # templates for files created with the new AddIn project