[ooo-build-commit] ooeclipse: Branch 'master'
Cédric Bosdonnat
cbosdo at kemper.freedesktop.org
Thu Nov 26 12:56:49 PST 2009
core/plugin.xml | 16
core/schema/language.exsd | 48 +
core/source/org/openoffice/ide/eclipse/core/actions/ConvertToManifestAction.java | 17
core/source/org/openoffice/ide/eclipse/core/actions/Messages.java | 53 +
core/source/org/openoffice/ide/eclipse/core/internal/helpers/LanguagesHelper.java | 191 ----
core/source/org/openoffice/ide/eclipse/core/internal/helpers/UnoidlProjectHelper.java | 5
core/source/org/openoffice/ide/eclipse/core/internal/model/UnoFactory.java | 9
core/source/org/openoffice/ide/eclipse/core/internal/model/UnoidlProject.java | 19
core/source/org/openoffice/ide/eclipse/core/model/IUnoFactoryConstants.java | 4
core/source/org/openoffice/ide/eclipse/core/model/IUnoidlProject.java | 11
core/source/org/openoffice/ide/eclipse/core/model/OOoContainer.java | 2
core/source/org/openoffice/ide/eclipse/core/model/language/AbstractLanguage.java | 108 ++
core/source/org/openoffice/ide/eclipse/core/model/language/ILanguage.java | 71 -
core/source/org/openoffice/ide/eclipse/core/model/language/ILanguageUI.java | 65 -
core/source/org/openoffice/ide/eclipse/core/model/language/IProjectHandler.java | 8
core/source/org/openoffice/ide/eclipse/core/model/language/LanguageExportPart.java | 55 +
core/source/org/openoffice/ide/eclipse/core/model/language/LanguagesHelper.java | 163 +++
core/source/org/openoffice/ide/eclipse/core/model/pack/FileType.java | 10
core/source/org/openoffice/ide/eclipse/core/model/pack/ManifestModel.java | 20
core/source/org/openoffice/ide/eclipse/core/model/pack/UnoPackage.java | 5
core/source/org/openoffice/ide/eclipse/core/wizards/NewUnoProjectWizard.java | 56 -
core/source/org/openoffice/ide/eclipse/core/wizards/PackageExportWizard2.java | 119 ++
core/source/org/openoffice/ide/eclipse/core/wizards/messages.properties | 26
core/source/org/openoffice/ide/eclipse/core/wizards/pages/ManifestExportPage.java | 345 ++++++++
core/source/org/openoffice/ide/eclipse/core/wizards/pages/NewUnoProjectPage.java | 8
core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java | 410 ++++++++++
cpp/source/org/openoffice/ide/eclipse/cpp/CppBuilder.java | 12
cpp/source/org/openoffice/ide/eclipse/cpp/CppProjectHandler.java | 8
cpp/source/org/openoffice/ide/eclipse/cpp/CppUI.java | 54 -
cpp/source/org/openoffice/ide/eclipse/cpp/Language.java | 12
cpp/source/org/openoffice/ide/eclipse/cpp/OOoSdkProjectJob.java | 55 -
java/plugin.xml | 9
java/source/org/openoffice/ide/eclipse/java/JavaExportPart.java | 109 ++
java/source/org/openoffice/ide/eclipse/java/JavaProjectHandler.java | 29
java/source/org/openoffice/ide/eclipse/java/JavaUI.java | 64 -
java/source/org/openoffice/ide/eclipse/java/JavaWizardPage.java | 5
java/source/org/openoffice/ide/eclipse/java/Language.java | 12
java/source/org/openoffice/ide/eclipse/java/build/FilesVisitor.java | 47 +
java/source/org/openoffice/ide/eclipse/java/build/UnoManifestProvider.java | 20
java/source/org/openoffice/ide/eclipse/java/client/JODContainerPage.java | 3
java/source/org/openoffice/ide/eclipse/java/messages.properties | 2
41 files changed, 1715 insertions(+), 570 deletions(-)
New commits:
commit 650ab52282f44d3d13b0a01d4d5fd3e29c287bb3
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date: Thu Nov 26 21:56:11 2009 +0100
[core] New export wizard
Started to implement a better export wizard, similar to the JAR export
wizard from JDT. Took that occasion to refactor some parts of the
Language extension point to make it cleaner.
diff --git a/core/plugin.xml b/core/plugin.xml
index 5cd2931..77558da 100755
--- a/core/plugin.xml
+++ b/core/plugin.xml
@@ -243,14 +243,17 @@
<extension
point="org.eclipse.ui.propertyPages">
<page
- adaptable="true"
class="org.openoffice.ide.eclipse.core.preferences.ProjectPropertiesPage"
id="org.openoffice.ide.eclipse.core.projectproperties"
- name="%project.propertypage.name"
- objectClass="org.eclipse.core.resources.IProject">
+ name="%project.propertypage.name">
<filter
name="nature"
value="org.openoffice.ide.eclipse.core.unonature"/>
+ <enabledWhen>
+ <adapt
+ type="org.eclipse.core.resources.IProject">
+ </adapt>
+ </enabledWhen>
</page>
</extension>
<extension
@@ -286,6 +289,13 @@
icon="/icons/export_package.gif"
id="org.openoffice.ide.eclipse.core.export.package"
name="OpenOffice.org package"/>
+ <wizard
+ category="org.openoffice.ide.eclipse.core.uno"
+ class="org.openoffice.ide.eclipse.core.wizards.PackageExportWizard2"
+ icon="icons/export_package.gif"
+ id="org.openoffice.ide.eclipse.core.wizard.test"
+ name="Test Wizard">
+ </wizard>
</extension>
<extension
point="org.eclipse.ui.startup">
diff --git a/core/schema/language.exsd b/core/schema/language.exsd
index c20cbc1..366424c 100644
--- a/core/schema/language.exsd
+++ b/core/schema/language.exsd
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
-<schema targetNamespace="org.openoffice.ide.eclipse">
+<schema targetNamespace="org.openoffice.ide.eclipse.core" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.openoffice.ide.eclipse.core" id="language" name="Uno-idl project language binding Extension point"/>
@@ -11,6 +11,11 @@
</annotation>
<element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
<complexType>
<sequence>
<element ref="language"/>
@@ -49,6 +54,10 @@
</documentation>
</annotation>
<complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="newWizardPage" minOccurs="0" maxOccurs="1"/>
+ <element ref="exportBuildPart" minOccurs="0" maxOccurs="1"/>
+ </choice>
<attribute name="name" type="string" use="required">
<annotation>
<documentation>
@@ -62,7 +71,42 @@
Class implementing the org.openoffice.ide.eclipse.core.model.ILanguage.
</documentation>
<appInfo>
- <meta.attribute kind="java" basedOn="org.openoffice.ide.eclipse.core.model.ILanguage"/>
+ <meta.attribute kind="java" basedOn="org.openoffice.ide.eclipse.core.model.language.AbstractLanguage:"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="newWizardPage">
+ <annotation>
+ <documentation>
+ Sepcifies the language specific page to use in UNO project creation wizard
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.openoffice.ide.eclipse.core.model.language.LanguageWizardPage:"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="exportBuildPart">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ Part at the end of the UNO export wizard. It generally contains build scripts related controls.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.openoffice.ide.eclipse.core.model.language.LanguageExportPart:"/>
</appInfo>
</annotation>
</attribute>
diff --git a/core/source/org/openoffice/ide/eclipse/core/actions/ConvertToManifestAction.java b/core/source/org/openoffice/ide/eclipse/core/actions/ConvertToManifestAction.java
index 6905381..70e9ad6 100644
--- a/core/source/org/openoffice/ide/eclipse/core/actions/ConvertToManifestAction.java
+++ b/core/source/org/openoffice/ide/eclipse/core/actions/ConvertToManifestAction.java
@@ -55,14 +55,26 @@ import org.openoffice.ide.eclipse.core.model.pack.ManifestModel;
import org.openoffice.ide.eclipse.core.model.pack.PackagePropertiesModel;
import org.openoffice.ide.eclipse.core.model.pack.UnoPackage;
+/**
+ * Action converting the legacy package.properties into manifest.xml file.
+ *
+ * @author cbosdo
+ *
+ */
public class ConvertToManifestAction implements IObjectActionDelegate {
private IFile mPackageFile;
+ /**
+ * {@inheritDoc}
+ */
public void setActivePart(IAction pAction, IWorkbenchPart pTargetPart) {
// No need of the target part
}
+ /**
+ * {@inheritDoc}
+ */
public void run( IAction pAction ) {
PackagePropertiesModel propsModel = new PackagePropertiesModel( mPackageFile );
@@ -111,11 +123,12 @@ public class ConvertToManifestAction implements IObjectActionDelegate {
manifestFile.refreshLocal( IResource.DEPTH_ZERO, null );
} catch (CoreException e) {
}
-
- manifestModel.dispose();
}
}
+ /**
+ * {@inheritDoc}
+ */
public void selectionChanged(IAction pAction, ISelection pSelection) {
if ( !pSelection.isEmpty() && pSelection instanceof IStructuredSelection ) {
IStructuredSelection sel = (IStructuredSelection)pSelection;
diff --git a/core/source/org/openoffice/ide/eclipse/core/actions/Messages.java b/core/source/org/openoffice/ide/eclipse/core/actions/Messages.java
index 486829e..20a8c39 100644
--- a/core/source/org/openoffice/ide/eclipse/core/actions/Messages.java
+++ b/core/source/org/openoffice/ide/eclipse/core/actions/Messages.java
@@ -1,22 +1,69 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat, Inc.
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat, Inc.
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
package org.openoffice.ide.eclipse.core.actions;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+/**
+ * Messages for the package.
+ *
+ * @author cedricbosdo
+ *
+ */
public class Messages {
private static final String BUNDLE_NAME = "org.openoffice.ide.eclipse.core.actions.messages"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
.getBundle(BUNDLE_NAME);
+ /**
+ * Default constructor.
+ */
private Messages() {
}
- public static String getString(String key) {
+ /**
+ * Get the string from it's key.
+ *
+ * @param pKey the key of the string
+ *
+ * @return the internationalized string
+ */
+ public static String getString(String pKey) {
+ String string = '!' + pKey + '!';
try {
- return RESOURCE_BUNDLE.getString(key);
+ string = RESOURCE_BUNDLE.getString(pKey);
} catch (MissingResourceException e) {
- return '!' + key + '!';
}
+ return string;
}
}
diff --git a/core/source/org/openoffice/ide/eclipse/core/internal/helpers/LanguagesHelper.java b/core/source/org/openoffice/ide/eclipse/core/internal/helpers/LanguagesHelper.java
deleted file mode 100644
index c59a0a0..0000000
--- a/core/source/org/openoffice/ide/eclipse/core/internal/helpers/LanguagesHelper.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: LanguagesHelper.java,v $
- *
- * $Revision: 1.7 $
- *
- * last change: $Author: cedricbosdo $ $Date: 2007/11/25 20:32:31 $
- *
- * The Contents of this file are made available subject to the terms of
- * the GNU Lesser General Public License Version 2.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 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
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
- *
- * Copyright: 2002 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): Cedric Bosdonnat
- *
- *
- ************************************************************************/
-package org.openoffice.ide.eclipse.core.internal.helpers;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
-
-/**
- * Helper class for implementation languages handling.
- *
- * @author cedricbosdo
- *
- */
-public class LanguagesHelper {
-
- /**
- * @return all the available uno-idl implementation language names
- * installed on the platform.
- */
- public static String[] getAvailableLanguageNames() {
-
- String[] result = null;
-
- IConfigurationElement[] languages = getLanguagesDefs();
- result = new String[languages.length];
-
- for (int i = 0; i < languages.length; i++) {
- result[i] = languages[i].getAttribute("name"); //$NON-NLS-1$
- }
-
- return result;
- }
-
- /**
- * Returns the language name as specified in the <code>plugin.xml</code>
- * file from the language object.
- *
- * @param pLanguage the language object
- * @return the language name
- */
- public static String getNameFromLanguage(ILanguage pLanguage) {
-
- String name = null;
-
- IConfigurationElement[] languages = getLanguagesDefs();
- int i = 0;
-
- while (name == null && i < languages.length) {
- IConfigurationElement languagei = languages[i];
- if (languagei.getAttribute("class").equals( //$NON-NLS-1$
- pLanguage.getClass().getName())) {
-
- name = languagei.getAttribute("name"); //$NON-NLS-1$
- }
- i++;
- }
-
- return name;
- }
-
- /**
- * <p>Returns the language corresponding to a language name. The result may
- * be null if:
- * <ul>
- * <li>There is no such language name</li>
- * <li>The corresponding class cannot be found</li>
- * <li>The corresponding class doesn't implement ILanguage</li>
- * </ul>
- * </p>
- *
- * @param pName the language name to find
- *
- * @return the language object if found, <code>null</code> otherwise.
- */
- public static ILanguage getLanguageFromName(String pName) {
-
- ILanguage language = null;
-
- IConfigurationElement[] languages = getLanguagesDefs();
- int i = 0;
-
- while (language == null && i < languages.length) {
- IConfigurationElement languagei = languages[i];
- if (languagei.getAttribute("name").equals(pName)) { //$NON-NLS-1$
- try {
- Object oLanguage = languagei.
- createExecutableExtension("class"); //$NON-NLS-1$
-
- if (oLanguage instanceof ILanguage) {
- language = (ILanguage)oLanguage;
- }
-
- } catch (Exception e) {
- // No such class
- }
- }
- i++;
- }
-
- return language;
- }
-
- /**
- * Convenience method returning the language definitions from the plugins
- * extensions points descriptions.
- *
- * @return the array of the configuration element for the languages.
- */
- private static IConfigurationElement[] getLanguagesDefs() {
- IConfigurationElement[] result = null;
-
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IExtensionPoint point = registry.getExtensionPoint(
- "org.openoffice.ide.eclipse.core.language"); //$NON-NLS-1$
- if (point != null) {
-
- IExtension[] extensions = point.getExtensions();
- Vector<IConfigurationElement> languages = new Vector<IConfigurationElement>();
-
- for (int i = 0; i < extensions.length; i++) {
-
- IConfigurationElement[] elements = extensions[i].
- getConfigurationElements();
-
- for (int j = 0; j < elements.length; j++) {
- IConfigurationElement elementj = elements[j];
- if (elementj.getName().equals("language")) { //$NON-NLS-1$
- languages.add(elementj);
- }
- }
- }
-
- result = new IConfigurationElement[languages.size()];
- for (int i = 0, length = languages.size(); i < length; i++) {
- result[i] = languages.get(i);
- }
-
- // clean the vector
- languages.clear();
- }
-
- return result;
- }
-}
diff --git a/core/source/org/openoffice/ide/eclipse/core/internal/helpers/UnoidlProjectHelper.java b/core/source/org/openoffice/ide/eclipse/core/internal/helpers/UnoidlProjectHelper.java
index 94e6f11..1e6878b 100644
--- a/core/source/org/openoffice/ide/eclipse/core/internal/helpers/UnoidlProjectHelper.java
+++ b/core/source/org/openoffice/ide/eclipse/core/internal/helpers/UnoidlProjectHelper.java
@@ -72,7 +72,7 @@ import org.openoffice.ide.eclipse.core.model.SDKContainer;
import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
import org.openoffice.ide.eclipse.core.model.config.IOOo;
import org.openoffice.ide.eclipse.core.model.config.ISdk;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
import org.openoffice.ide.eclipse.core.model.pack.UnoPackage;
/**
@@ -158,7 +158,7 @@ public class UnoidlProjectHelper {
unoProject.setOutputExtension(comp);
// Set the language
- ILanguage language = (ILanguage)pData.getProperty(
+ AbstractLanguage language = (AbstractLanguage)pData.getProperty(
IUnoFactoryConstants.PROJECT_LANGUAGE);
unoProject.setLanguage(language);
@@ -506,7 +506,6 @@ public class UnoidlProjectHelper {
*
* @param pPrj the project to package
* @param pDest the package destination file
- * @param pDir the directory containing the files to package
*
* @return the minimal {@link UnoPackage}
*/
diff --git a/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoFactory.java b/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoFactory.java
index 20b900a..4a5a231 100644
--- a/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoFactory.java
+++ b/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoFactory.java
@@ -64,7 +64,7 @@ import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
import org.openoffice.ide.eclipse.core.model.ProjectsManager;
import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
import org.openoffice.ide.eclipse.core.model.description.DescriptionModel;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
import org.openoffice.ide.eclipse.core.model.language.IProjectHandler;
import org.openoffice.ide.eclipse.core.utils.WorkbenchHelper;
@@ -149,7 +149,7 @@ public final class UnoFactory {
String prjName = (String)pData.getProperty(IUnoFactoryConstants.PROJECT_NAME);
IUnoidlProject prj = ProjectsManager.getProject(prjName);
- ILanguage lang = (ILanguage)pData.getProperty(IUnoFactoryConstants.PROJECT_LANGUAGE);
+ AbstractLanguage lang = (AbstractLanguage)pData.getProperty(IUnoFactoryConstants.PROJECT_LANGUAGE);
IProjectHandler langProjectHandler = lang.getProjectHandler();
String languageOption = langProjectHandler.getSkeletonMakerLanguage(pData);
@@ -173,6 +173,7 @@ public final class UnoFactory {
// Get the unorc file
String unorc = "-env:BOOTSTRAPINI=\"" + prj.getOOo().getUnorcPath() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
+ // Get the service for which to generate the skeleton
UnoFactoryData[] inner = pData.getInnerData();
String service = ""; //$NON-NLS-1$
int i = 0;
@@ -195,7 +196,7 @@ public final class UnoFactory {
String implementationName = langProjectHandler.getImplementationName(prj, service);
-
+ // Run the uno-skeletonmaker command
String command = "uno-skeletonmaker" + //$NON-NLS-1$
" " + unorc + //$NON-NLS-1$
" component " + languageOption + //$NON-NLS-1$
@@ -207,6 +208,7 @@ public final class UnoFactory {
Process process = prj.getSdk().runTool(prj, command, pMonitor);
+ // Process the error output to add it to the log if needed
InputStream err = process.getErrorStream();
StringWriter writer = new StringWriter();
@@ -229,6 +231,7 @@ public final class UnoFactory {
} catch (java.io.IOException e) { }
}
+ // Refresh the project to reflect the changes
UnoidlProjectHelper.refreshProject(prj, null);
// opens the generated files
diff --git a/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoidlProject.java b/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoidlProject.java
index cae817d..258e889 100755
--- a/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoidlProject.java
+++ b/core/source/org/openoffice/ide/eclipse/core/internal/model/UnoidlProject.java
@@ -63,7 +63,6 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.openoffice.ide.eclipse.core.PluginLogger;
import org.openoffice.ide.eclipse.core.builders.TypesBuilder;
-import org.openoffice.ide.eclipse.core.internal.helpers.LanguagesHelper;
import org.openoffice.ide.eclipse.core.internal.helpers.UnoidlProjectHelper;
import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
import org.openoffice.ide.eclipse.core.model.OOoContainer;
@@ -71,8 +70,9 @@ import org.openoffice.ide.eclipse.core.model.SDKContainer;
import org.openoffice.ide.eclipse.core.model.config.IConfigListener;
import org.openoffice.ide.eclipse.core.model.config.IOOo;
import org.openoffice.ide.eclipse.core.model.config.ISdk;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
import org.openoffice.ide.eclipse.core.model.language.IProjectHandler;
+import org.openoffice.ide.eclipse.core.model.language.LanguagesHelper;
/**
* This class implements the UNO-IDL and project nature interface.
@@ -144,7 +144,7 @@ public class UnoidlProject implements IUnoidlProject, IProjectNature {
private IOOo mOOo;
- private ILanguage mLanguage;
+ private AbstractLanguage mLanguage;
private String mIdlDir;
@@ -256,7 +256,7 @@ public class UnoidlProject implements IUnoidlProject, IProjectNature {
/**
* {@inheritDoc}
*/
- public ILanguage getLanguage() {
+ public AbstractLanguage getLanguage() {
return mLanguage;
}
@@ -284,7 +284,7 @@ public class UnoidlProject implements IUnoidlProject, IProjectNature {
/**
* {@inheritDoc}
*/
- public void setLanguage(ILanguage pNewLanguage) {
+ public void setLanguage(AbstractLanguage pNewLanguage) {
if (mLanguage == null && pNewLanguage != null) {
mLanguage = pNewLanguage;
@@ -604,7 +604,7 @@ public class UnoidlProject implements IUnoidlProject, IProjectNature {
in = new FileInputStream(configFile);
properties.load(in);
- properties.setProperty(LANGUAGE, LanguagesHelper.getNameFromLanguage(mLanguage));
+ properties.setProperty(LANGUAGE, mLanguage.getName());
properties.setProperty(OOO_NAME, mOOo.getName());
properties.setProperty(SDK_NAME, mSdk.getId());
properties.setProperty(IDL_DIR, mIdlDir);
@@ -626,6 +626,13 @@ public class UnoidlProject implements IUnoidlProject, IProjectNature {
}
}
+ /**
+ * {@inheritDoc}
+ */
+ public IFolder[] getBinFolders() {
+ return getLanguage().getProjectHandler().getBinFolders( this );
+ }
+
//*************************************************************************
// IProjectNature Implementation
//*************************************************************************
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/IUnoFactoryConstants.java b/core/source/org/openoffice/ide/eclipse/core/model/IUnoFactoryConstants.java
index b137a35..d6e880e 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/IUnoFactoryConstants.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/IUnoFactoryConstants.java
@@ -46,7 +46,7 @@ package org.openoffice.ide.eclipse.core.model;
// Imports used for the javadocs
import org.openoffice.ide.eclipse.core.model.config.IOOo;
import org.openoffice.ide.eclipse.core.model.config.ISdk;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
/**
* This interface contains the keys for the data to provide to the UNO
@@ -79,7 +79,7 @@ public interface IUnoFactoryConstants {
public static final String PROJECT_COMP = "project_comp"; //$NON-NLS-1$
/**
- * The object should be an instance of {@link ILanguage}.
+ * The object should be an instance of {@link AbstractLanguage}.
*/
public static final String PROJECT_LANGUAGE = "project_language"; //$NON-NLS-1$
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/IUnoidlProject.java b/core/source/org/openoffice/ide/eclipse/core/model/IUnoidlProject.java
index 96deb0a..c63c1be 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/IUnoidlProject.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/IUnoidlProject.java
@@ -48,7 +48,7 @@ import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.IPath;
import org.openoffice.ide.eclipse.core.model.config.IOOo;
import org.openoffice.ide.eclipse.core.model.config.ISdk;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
/**
* Interface for a UNO project.
@@ -75,7 +75,7 @@ public interface IUnoidlProject {
/**
* @return the project implementation language.
*/
- public ILanguage getLanguage();
+ public AbstractLanguage getLanguage();
/**
* @return the project name.
@@ -98,7 +98,7 @@ public interface IUnoidlProject {
*
* @param pLanguage the new language
*/
- public void setLanguage(ILanguage pLanguage);
+ public void setLanguage(AbstractLanguage pLanguage);
/**
* Sets the selected OOo.
@@ -310,4 +310,9 @@ public interface IUnoidlProject {
* Saves the UNO project configuration in a hidden file.
*/
public void saveAllProperties();
+
+ /**
+ * @return the language dependent binaries folders.
+ */
+ public IFolder[] getBinFolders();
}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/OOoContainer.java b/core/source/org/openoffice/ide/eclipse/core/model/OOoContainer.java
index 253b31b..b1647ef 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/OOoContainer.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/OOoContainer.java
@@ -357,7 +357,7 @@ public class OOoContainer {
}
// Fourth attempt: Get a registered OOo
- if (found == null) {
+ if (found == null && sInstance.mElements.size() > 0) {
found = sInstance.mElements.values().iterator().next();
}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/language/AbstractLanguage.java b/core/source/org/openoffice/ide/eclipse/core/model/language/AbstractLanguage.java
new file mode 100644
index 0000000..a6cc345
--- /dev/null
+++ b/core/source/org/openoffice/ide/eclipse/core/model/language/AbstractLanguage.java
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.core.model.language;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+
+/**
+ * Base class for the language extensions.
+ *
+ * @author cbosdo
+ *
+ */
+public abstract class AbstractLanguage {
+
+ private IConfigurationElement mConfig;
+
+ /**
+ * @param pConfig the configuration element for the language
+ */
+ protected void setConfigurationElement( IConfigurationElement pConfig ) {
+ mConfig = pConfig;
+ }
+
+ /**
+ * @return the language display name
+ */
+ public String getName( ) {
+ return mConfig.getAttribute( "name" ); //$NON-NLS-1$
+ }
+
+ /**
+ * @return the wizard page for the New UNO project wizard or <code>null</code> if none
+ * has been defined.
+ */
+ public LanguageWizardPage getNewWizardPage( ) {
+ LanguageWizardPage result = null;
+ IConfigurationElement[] children = mConfig.getChildren( "newWizardPage" ); //$NON-NLS-1$
+ if ( children.length > 0 ) {
+ // There can't be more than one
+ try {
+ Object o = children[0].createExecutableExtension( "class" ); //$NON-NLS-1$
+ if ( o instanceof LanguageWizardPage ) {
+ result = ( LanguageWizardPage )o;
+ }
+ } catch ( Exception e ) {
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @return the export build part for the UNO export wizard or <code>null</code> if none
+ * has been defined.
+ */
+ public LanguageExportPart getExportBuildPart( ) {
+ LanguageExportPart result = null;
+ IConfigurationElement[] children = mConfig.getChildren( "exportBuildPart" ); //$NON-NLS-1$
+ if ( children.length > 0 ) {
+ // There can't be more than one
+ try {
+ Object o = children[0].createExecutableExtension( "class" ); //$NON-NLS-1$
+ if ( o instanceof LanguageExportPart ) {
+ result = ( LanguageExportPart )o;
+ }
+ } catch ( Exception e ) {
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @return the utility class for projects handling.
+ */
+ public abstract IProjectHandler getProjectHandler();
+
+ /**
+ * @return the utility class for building.
+ */
+ public abstract ILanguageBuilder getLanguageBuidler();
+}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/language/ILanguage.java b/core/source/org/openoffice/ide/eclipse/core/model/language/ILanguage.java
deleted file mode 100644
index b74526d..0000000
--- a/core/source/org/openoffice/ide/eclipse/core/model/language/ILanguage.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: ILanguage.java,v $
- *
- * $Revision: 1.2 $
- *
- * last change: $Author: cedricbosdo $ $Date: 2007/11/25 20:32:30 $
- *
- * The Contents of this file are made available subject to the terms of
- * the GNU Lesser General Public License Version 2.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 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
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
- *
- * Copyright: 2002 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): Cedric Bosdonnat
- *
- *
- ************************************************************************/
-package org.openoffice.ide.eclipse.core.model.language;
-
-/**
- * This interface has to be implemented to add a new supported language
- * to the plugin. It only handles the interactions between the
- * <code>UnoidlProject</code> and the language class.
- *
- * @author cedricbosdo
- * @see org.openoffice.ide.eclipse.core.internal.model.UnoidlProject
- *
- */
-public interface ILanguage {
-
- /**
- * @return the utility class for projects handling.
- */
- public IProjectHandler getProjectHandler();
-
- /**
- * @return the utility class for building.
- */
- public ILanguageBuilder getLanguageBuidler();
-
- /**
- * @return the utility class for UI operation.
- */
- public ILanguageUI getLanguageUI();
-}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/language/ILanguageUI.java b/core/source/org/openoffice/ide/eclipse/core/model/language/ILanguageUI.java
deleted file mode 100644
index 1870310..0000000
--- a/core/source/org/openoffice/ide/eclipse/core/model/language/ILanguageUI.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: ILanguageUI.java,v $
- *
- * $Revision: 1.2 $
- *
- * last change: $Author: cedricbosdo $ $Date: 2007/11/25 20:32:30 $
- *
- * The Contents of this file are made available subject to the terms of
- * the GNU Lesser General Public License Version 2.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 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
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
- *
- * Copyright: 2002 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): Cedric Bosdonnat
- *
- *
- ************************************************************************/
-package org.openoffice.ide.eclipse.core.model.language;
-
-import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
-
-/**
- * Provides an access to the UI elements of the {@link ILanguage}.
- *
- * @author cedricbosdo
- */
-public interface ILanguageUI {
-
- /**
- * Returns the wizard page to insert after the new UNO project page. This
- * page should contains language specific properties.
- *
- * @param pData data representing the project informations
- * @return the page or <code>null</code> if there is no need of any language
- * page.
- */
- public LanguageWizardPage getWizardPage(UnoFactoryData pData);
-
-}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/language/IProjectHandler.java b/core/source/org/openoffice/ide/eclipse/core/model/language/IProjectHandler.java
index 35d8e24..e7dc245 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/language/IProjectHandler.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/language/IProjectHandler.java
@@ -43,6 +43,7 @@
************************************************************************/
package org.openoffice.ide.eclipse.core.model.language;
+import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -141,4 +142,11 @@ public interface IProjectHandler {
* <code>File</code> class constructor.
*/
public String getLibraryPath(IUnoidlProject pPrj);
+
+ /**
+ * @param pUnoidlProject the UNO project from which to get the binary folders
+ *
+ * @return the binary folders
+ */
+ public IFolder[] getBinFolders(IUnoidlProject pUnoidlProject);
}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/language/LanguageExportPart.java b/core/source/org/openoffice/ide/eclipse/core/model/language/LanguageExportPart.java
new file mode 100644
index 0000000..460cd5e
--- /dev/null
+++ b/core/source/org/openoffice/ide/eclipse/core/model/language/LanguageExportPart.java
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.core.model.language;
+
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Abstract class for the language specific controls part in the OXT export
+ * wizard.
+ *
+ * @author cbosdo
+ *
+ */
+public abstract class LanguageExportPart {
+
+ /**
+ * Create the controls in the part.
+ * @param pParent the parent composite where to create the controls
+ */
+ public abstract void createControls(Composite pParent);
+
+ /**
+ * Cleans the controls.
+ */
+ public abstract void dispose();
+
+}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/language/LanguagesHelper.java b/core/source/org/openoffice/ide/eclipse/core/model/language/LanguagesHelper.java
new file mode 100644
index 0000000..76e47f3
--- /dev/null
+++ b/core/source/org/openoffice/ide/eclipse/core/model/language/LanguagesHelper.java
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * $RCSfile: LanguagesHelper.java,v $
+ *
+ * $Revision: 1.7 $
+ *
+ * last change: $Author: cedricbosdo $ $Date: 2007/11/25 20:32:31 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 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
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2002 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): Cedric Bosdonnat
+ *
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.core.model.language;
+
+import java.util.Vector;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+/**
+ * Helper class for implementation languages handling.
+ *
+ * @author cedricbosdo
+ *
+ */
+public class LanguagesHelper {
+
+ /**
+ * @return all the available uno-idl implementation language names
+ * installed on the platform.
+ */
+ public static String[] getAvailableLanguageNames() {
+
+ String[] result = null;
+
+ IConfigurationElement[] languages = getLanguagesDefs();
+ result = new String[languages.length];
+
+ for (int i = 0; i < languages.length; i++) {
+ result[i] = languages[i].getAttribute("name"); //$NON-NLS-1$
+ }
+
+ return result;
+ }
+
+ /**
+ * <p>Returns the language corresponding to a language name. The result may
+ * be <code>null</code> if:
+ * <ul>
+ * <li>There is no such language name</li>
+ * <li>The corresponding class cannot be found</li>
+ * <li>The corresponding class doesn't implement ILanguage</li>
+ * </ul>
+ * </p>
+ *
+ * @param pName the language name to find
+ *
+ * @return the language object if found, <code>null</code> otherwise.
+ */
+ public static AbstractLanguage getLanguageFromName(String pName) {
+
+ AbstractLanguage language = null;
+
+ IConfigurationElement[] languages = getLanguagesDefs();
+ int i = 0;
+
+ while (language == null && i < languages.length) {
+ IConfigurationElement languagei = languages[i];
+ if (languagei.getAttribute("name").equals(pName)) { //$NON-NLS-1$
+ try {
+ Object o = languagei.createExecutableExtension( "class" ); //$NON-NLS-1$
+
+ if ( o instanceof AbstractLanguage ) {
+ language = (AbstractLanguage)o;
+ language.setConfigurationElement( languagei );
+ }
+
+ } catch (Exception e) {
+ // No such class
+ }
+ }
+ i++;
+ }
+
+ return language;
+ }
+
+ /**
+ * Convenience method returning the language definitions from the plugins
+ * extensions points descriptions.
+ *
+ * @return the array of the configuration element for the languages.
+ */
+ private static IConfigurationElement[] getLanguagesDefs() {
+ IConfigurationElement[] result = null;
+
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IExtensionPoint point = registry.getExtensionPoint(
+ "org.openoffice.ide.eclipse.core.language"); //$NON-NLS-1$
+ if (point != null) {
+
+ IExtension[] extensions = point.getExtensions();
+ Vector<IConfigurationElement> languages = new Vector<IConfigurationElement>();
+
+ for (int i = 0; i < extensions.length; i++) {
+
+ IConfigurationElement[] elements = extensions[i].
+ getConfigurationElements();
+
+ for (int j = 0; j < elements.length; j++) {
+ IConfigurationElement elementj = elements[j];
+ if (elementj.getName().equals("language")) { //$NON-NLS-1$
+ languages.add(elementj);
+ }
+ }
+ }
+
+ result = new IConfigurationElement[languages.size()];
+ for (int i = 0, length = languages.size(); i < length; i++) {
+ result[i] = languages.get(i);
+ }
+
+ // clean the vector
+ languages.clear();
+ }
+
+ return result;
+ }
+}
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/pack/FileType.java b/core/source/org/openoffice/ide/eclipse/core/model/pack/FileType.java
index a2eb0d9..2fbad4d 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/pack/FileType.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/pack/FileType.java
@@ -35,6 +35,12 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
+/**
+ * Class representing the file types for the entries of the manifest.xml file.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
public class FileType {
public static final String MIME_XCU = "application/vnd.sun.star.configuration-data"; //$NON-NLS-1$
@@ -61,10 +67,6 @@ public class FileType {
mMimeType = pMime;
}
- public void dispose() {
- mParams.clear();
- }
-
/**
* @return the mimeType
*/
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/pack/ManifestModel.java b/core/source/org/openoffice/ide/eclipse/core/model/pack/ManifestModel.java
index 0ed1f31..6160fe9 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/pack/ManifestModel.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/pack/ManifestModel.java
@@ -34,7 +34,6 @@ import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.text.MessageFormat;
-import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
@@ -45,6 +44,12 @@ import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
+/**
+ * Class representing the data contained in the manifest.xml file.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
public class ManifestModel {
private static final String EXT_XCS = ".xcs"; //$NON-NLS-1$
@@ -53,14 +58,6 @@ public class ManifestModel {
private HashMap<String, FileType> mEntries = new HashMap<String, FileType>();
- public void dispose( ) {
- Collection< FileType > values = mEntries.values();
- for ( FileType value : values ) {
- value.dispose( );
- }
- mEntries.clear();
- }
-
/**
* Add a file or directory to the package.
*
@@ -240,14 +237,15 @@ public class ManifestModel {
}
/**
- * Output the manifest.xml file
+ * Output the manifest.xml file.
*
* @param pOut where to write the manifest.
* @throws IOException if something happened when writing to the output stream
*/
public void write( OutputStream pOut ) throws IOException {
Iterator<Entry<String, FileType> > iter = mEntries.entrySet().iterator();
- String entryPattern = "<manifest:file-entry manifest:full-path=\"{0}\" manifest:media-type=\"{1}\"/>\n"; //$NON-NLS-1$
+ String entryPattern = "<manifest:file-entry manifest:full-path=\"{0}\"" + //$NON-NLS-1$
+ " manifest:media-type=\"{1}\"/>\n"; //$NON-NLS-1$
pOut.write( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".getBytes() ); //$NON-NLS-1$
pOut.write( "<manifest:manifest>\n".getBytes() ); //$NON-NLS-1$
while ( iter.hasNext() ) {
diff --git a/core/source/org/openoffice/ide/eclipse/core/model/pack/UnoPackage.java b/core/source/org/openoffice/ide/eclipse/core/model/pack/UnoPackage.java
index c70b5df..2e479f0 100644
--- a/core/source/org/openoffice/ide/eclipse/core/model/pack/UnoPackage.java
+++ b/core/source/org/openoffice/ide/eclipse/core/model/pack/UnoPackage.java
@@ -104,7 +104,7 @@ public class UnoPackage {
* </p>
*
* @param pOut the file of the package.
- * @param pDir the root directory of the package content.
+ * @param pPrj the project to export
*/
public UnoPackage( File pOut, IProject pPrj ) {
if (! (pOut.getName().endsWith(ZIP) || pOut.getName().endsWith(UNOPKG) ||
@@ -128,7 +128,6 @@ public class UnoPackage {
*/
public void dispose() {
mDestination = null;
- mManifest.dispose();
mZipEntries.clear();
}
@@ -290,7 +289,7 @@ public class UnoPackage {
/**
* Add a localized description of the package.
*
- * @param pDescriptionFile the file containing the description for that locale
+ * @param pFile the file containing the description for that locale
* @param pLocale the locale of the description. Can be <code>null</code>.
*/
public void addPackageDescription(IFile pFile, Locale pLocale) {
diff --git a/core/source/org/openoffice/ide/eclipse/core/wizards/NewUnoProjectWizard.java b/core/source/org/openoffice/ide/eclipse/core/wizards/NewUnoProjectWizard.java
index ec71815..a054022 100755
--- a/core/source/org/openoffice/ide/eclipse/core/wizards/NewUnoProjectWizard.java
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/NewUnoProjectWizard.java
@@ -64,7 +64,7 @@ import org.openoffice.ide.eclipse.core.model.IUnoFactoryConstants;
import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
import org.openoffice.ide.eclipse.core.model.OOoContainer;
import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
import org.openoffice.ide.eclipse.core.model.language.LanguageWizardPage;
import org.openoffice.ide.eclipse.core.utils.WorkbenchHelper;
import org.openoffice.ide.eclipse.core.wizards.pages.NewUnoProjectPage;
@@ -159,28 +159,8 @@ public class NewUnoProjectWizard extends BasicNewProjectResourceWizard implement
if (mMainPage.equals(pPage)) {
- // Create/Remove the language page if needed
- ILanguage lang = mMainPage.getChosenLanguage();
- if (lang != null) {
- UnoFactoryData data = new UnoFactoryData();
- setLanguagePage(lang.getLanguageUI().getWizardPage(
- mMainPage.fillData(data, false)));
-
- // Cleaning
- data.dispose();
- } else {
- setLanguagePage(null);
- }
-
// change the language page if possible
- if (mLanguagePage != null) {
- UnoFactoryData data = new UnoFactoryData();
- mLanguagePage.setProjectInfos(
- mMainPage.fillData(data, false));
-
- // cleaning
- data.dispose();
- }
+ updateLoanguagePage( );
try {
// Compute the default service name
@@ -239,7 +219,7 @@ public class NewUnoProjectWizard extends BasicNewProjectResourceWizard implement
}
}
}
-
+
/**
* {@inheritDoc}
*/
@@ -325,6 +305,36 @@ public class NewUnoProjectWizard extends BasicNewProjectResourceWizard implement
}
/**
+ * Adapts the language specific page using the selected language.
+ */
+ private void updateLoanguagePage() {
+ // Create/Remove the language page if needed
+ AbstractLanguage lang = mMainPage.getChosenLanguage();
+ if (lang != null) {
+ UnoFactoryData data = new UnoFactoryData();
+ LanguageWizardPage page = lang.getNewWizardPage();
+ if ( page != null ) {
+ page.setProjectInfos( mMainPage.fillData( data, false ) );
+ }
+ setLanguagePage( page );
+
+ // Cleaning
+ data.dispose();
+ } else {
+ setLanguagePage(null);
+ }
+
+ if (mLanguagePage != null) {
+ UnoFactoryData data = new UnoFactoryData();
+ mLanguagePage.setProjectInfos(
+ mMainPage.fillData(data, false));
+
+ // cleaning
+ data.dispose();
+ }
+ }
+
+ /**
* Thread executing the project creation tasks.
*
* @author cedricbosdo
diff --git a/core/source/org/openoffice/ide/eclipse/core/wizards/PackageExportWizard2.java b/core/source/org/openoffice/ide/eclipse/core/wizards/PackageExportWizard2.java
new file mode 100644
index 0000000..c5740f0
--- /dev/null
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/PackageExportWizard2.java
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.core.wizards;
+
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IExportWizard;
+import org.eclipse.ui.IWorkbench;
+import org.openoffice.ide.eclipse.core.OOEclipsePlugin;
+import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
+import org.openoffice.ide.eclipse.core.model.ProjectsManager;
+import org.openoffice.ide.eclipse.core.wizards.pages.ManifestExportPage;
+import org.openoffice.ide.eclipse.core.wizards.pages.UnoPackageExportPage;
+
+/**
+ * Class for the new OXT export wizard.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
+public class PackageExportWizard2 extends Wizard implements IExportWizard {
+
+ private static final String DIALOG_SETTINGS_KEY = "oxt.export"; //$NON-NLS-1$
+
+ private UnoPackageExportPage mMainPage;
+ private ManifestExportPage mManifestPage;
+
+ private boolean mHasNewDialogSettings;
+
+ /**
+ * Constructor.
+ */
+ public PackageExportWizard2() {
+ IDialogSettings workbenchSettings = OOEclipsePlugin.getDefault().getDialogSettings();
+ IDialogSettings section = workbenchSettings.getSection( DIALOG_SETTINGS_KEY );
+ if ( section == null ) {
+ mHasNewDialogSettings = true;
+ } else {
+ mHasNewDialogSettings = false;
+ setDialogSettings( section );
+ }
+ }
+
+ @Override
+ public boolean performFinish() {
+ // TODO Auto-generated method stub
+ if ( mHasNewDialogSettings ) {
+ IDialogSettings workbenchSettings = OOEclipsePlugin.getDefault().getDialogSettings();
+ IDialogSettings section = workbenchSettings.getSection(DIALOG_SETTINGS_KEY);
+ section = workbenchSettings.addNewSection(DIALOG_SETTINGS_KEY);
+ setDialogSettings(section);
+ }
+
+ mMainPage.saveWidgetValues();
+
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(IWorkbench pWorkbench, IStructuredSelection pSelection) {
+ // Try hard to find a selected UNO project
+ IUnoidlProject prj = null;
+ Iterator<?> it = pSelection.iterator();
+ while (it.hasNext() && prj == null) {
+ Object o = it.next();
+ if (o instanceof IAdaptable) {
+ IResource res = (IResource) ((IAdaptable) o)
+ .getAdapter(IResource.class);
+ if (res != null) {
+ prj = ProjectsManager
+ .getProject(res.getProject().getName());
+ }
+ }
+ }
+
+ setWindowTitle( "OXT Export" );
+
+ mManifestPage = new ManifestExportPage("page2", prj); //$NON-NLS-1$
+ mMainPage = new UnoPackageExportPage("page1", prj, //$NON-NLS-1$
+ mManifestPage);
+ addPage(mMainPage);
+ addPage(mManifestPage);
+ }
+}
diff --git a/core/source/org/openoffice/ide/eclipse/core/wizards/messages.properties b/core/source/org/openoffice/ide/eclipse/core/wizards/messages.properties
index 741f0b2..db3a8d8 100644
--- a/core/source/org/openoffice/ide/eclipse/core/wizards/messages.properties
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/messages.properties
@@ -48,7 +48,7 @@ NewUnoProjectPage.ProjectCreationError=Error during the project folder creation
NewUnoProjectPage.WhiteSpacesWarning=It is not recommended to have any whitespace in the project path:\nthe project might fail to build
NewUnoProjectPage.CustomSourcesLabel=Sources
NewScopedElementWizardPage.Published=Published. Defines wether the type is stable \
- enought to be used by client code.
+ enough to be used by client code.
NewUnoProjectPage.InvalidCompError=Implementation extension is a single word which begin with a letter and can contain numbers
NewUnoProjectPage.UnoGroupTitle=UNO Project parameters
NewUnoFilePage.WrongExtensionError=A UNO-IDL file has the .idl extension
@@ -97,3 +97,27 @@ ServiceWizardSet.ServiceCreationError=Error happened during service creation
ServiceWizardSet.IsIdlTypeExistingWarning=Error determining if the idl file exists: {0}
BaseUnoConnectionPage.Description=Set some important informations for the UNO development
BaseUnoConnectionPage.Title=UNO configuration
+
+ManifestExportPage.Browse=Browse
+ManifestExportPage.DefineManifestText=Specify the manifest.xml
+ManifestExportPage.Description=Define the options for the OXT package build scripts
+ManifestExportPage.GenerateManifestText=Generate the manifest file
+ManifestExportPage.LoadDialogMessage=Select the manifest.xml file to use for the OXT package:
+ManifestExportPage.LoadDialogTitle=Manifest.xml file selection
+ManifestExportPage.LoadRowLabel=Manifest file
+ManifestExportPage.SaveDialogMessage=Select a place where to save the manifest file
+ManifestExportPage.SaveDialogTitle=Save manifest file
+ManifestExportPage.SaveManifestText=Save the manifest in the workspace
+ManifestExportPage.SaveRowLabel=Manifest file
+ManifestExportPage.Title=Build scripts options
+ManifestExportPage.UserManifestText=Use existing manifest file from the workspace
+
+UnoPackageExportPage.AutoDeploy=Automatically deploy on associated OpenOffice.org installation
+UnoPackageExportPage.Browse=Browse
+UnoPackageExportPage.Description=Define which resources should be exported in the OXT
+UnoPackageExportPage.Options=Options:
+UnoPackageExportPage.OverwriteWithoutWarning=Overwrite files without warning
+UnoPackageExportPage.OxtFile=OXT file:
+UnoPackageExportPage.Project=Project to export:
+UnoPackageExportPage.SelectDestination=Select the export destination:
+UnoPackageExportPage.Title=OXT File specification
diff --git a/core/source/org/openoffice/ide/eclipse/core/wizards/pages/ManifestExportPage.java b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/ManifestExportPage.java
new file mode 100644
index 0000000..a92b8b9
--- /dev/null
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/ManifestExportPage.java
@@ -0,0 +1,345 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.core.wizards.pages;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.dialogs.ISelectionStatusValidator;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.openoffice.ide.eclipse.core.OOEclipsePlugin;
+import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
+import org.openoffice.ide.eclipse.core.model.language.LanguageExportPart;
+import org.openoffice.ide.eclipse.core.wizards.Messages;
+
+/**
+ * Second page of the new OXT package export wizard.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
+public class ManifestExportPage extends WizardPage {
+
+ public static final int HORIZONTAL_INDENT = 20;
+
+ private static final String MANIFEST_FILENAME = "manifest.xml"; //$NON-NLS-1$
+
+ private static final int LAYOUT_COLS = 3;
+
+ private IUnoidlProject mProject;
+ private LanguageExportPart mLangPart;
+
+ private Button mGenerateManifestBtn;
+ private Button mReuseManifestBtn;
+
+ private Button mSaveManifestBtn;
+ private Label mSaveRowLbl;
+ private Text mSaveRowTxt;
+ private Button mSaveRowBtn;
+ private Label mLoadRowLbl;
+ private Text mLoadRowTxt;
+ private Button mLoadRowBtn;
+
+ /**
+ * Constructor.
+ *
+ * @param pPageName the page name
+ * @param pProject the project to export
+ */
+ public ManifestExportPage( String pPageName, IUnoidlProject pProject ) {
+ super(pPageName);
+ setTitle( Messages.getString("ManifestExportPage.Title") ); //$NON-NLS-1$
+ setDescription( Messages.getString("ManifestExportPage.Description") ); //$NON-NLS-1$
+
+ mProject = pProject;
+ }
+
+ /**
+ * @param pProject the UNO project selected for the wizard.
+ */
+ public void setProject( IUnoidlProject pProject ) {
+ mProject = pProject;
+ reloadLanguagePart();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void createControl(Composite pParent) {
+ Composite body = new Composite( pParent, SWT.NONE );
+ body.setLayout( new GridLayout( ) );
+ body.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+ setControl( body );
+
+ // Add the controls
+ Label title = new Label( body, SWT.NONE );
+ title.setText( Messages.getString("ManifestExportPage.DefineManifestText") ); //$NON-NLS-1$
+
+ createOptionsGroup( body );
+
+ // Add the language specific controls
+ reloadLanguagePart();
+
+ // Load the default values
+ mGenerateManifestBtn.setSelection( true );
+ }
+
+ /**
+ * Create the manifest save/reuse options.
+ *
+ * @param pParent the parent composite where to create the controls
+ */
+ private void createOptionsGroup( Composite pParent ) {
+ Composite body = new Composite( pParent, SWT.NONE );
+ body.setLayout( new GridLayout( ) );
+ GridData gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false );
+ gd.horizontalIndent = HORIZONTAL_INDENT;
+ body.setLayoutData( gd );
+
+ mGenerateManifestBtn = new Button( body, SWT.RADIO );
+ mGenerateManifestBtn.setText( Messages.getString("ManifestExportPage.GenerateManifestText") ); //$NON-NLS-1$
+ mGenerateManifestBtn.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+ mGenerateManifestBtn.addSelectionListener( new SelectionListener() {
+
+ public void widgetSelected(SelectionEvent pE) {
+ boolean selection = mGenerateManifestBtn.getSelection();
+ mSaveManifestBtn.setEnabled( selection );
+
+ boolean saveSelection = mSaveManifestBtn.getSelection();
+ mSaveRowLbl.setEnabled( selection && saveSelection );
+ mSaveRowTxt.setEnabled( selection && saveSelection );
+ mSaveRowBtn.setEnabled( selection && saveSelection );
+ }
+
+ public void widgetDefaultSelected(SelectionEvent pE) {
+ widgetSelected( pE );
+ }
+ });
+
+ // Create the controls for the manifest generation
+ Composite saveOptions = new Composite( body, SWT.NONE );
+ saveOptions.setLayout( new GridLayout( LAYOUT_COLS, false ) );
+ gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false );
+ gd.horizontalIndent = HORIZONTAL_INDENT;
+ saveOptions.setLayoutData( gd );
+
+ createManifestSaveOptions( saveOptions );
+
+ mReuseManifestBtn = new Button( body, SWT.RADIO );
+ mReuseManifestBtn.setText( Messages.getString("ManifestExportPage.UserManifestText") ); //$NON-NLS-1$
+ mReuseManifestBtn.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+ mReuseManifestBtn.addSelectionListener( new SelectionListener() {
+
+ public void widgetSelected(SelectionEvent pE) {
+ boolean enabled = mReuseManifestBtn.getSelection();
+ mLoadRowLbl.setEnabled( enabled );
+ mLoadRowTxt.setEnabled( enabled );
+ mLoadRowBtn.setEnabled( enabled );
+ }
+
+ public void widgetDefaultSelected(SelectionEvent pE) {
+ widgetSelected( pE );
+ }
+ });
+
+ // Create the controls for the manifest file selection
+ Composite loadOptions = new Composite( body, SWT.NONE );
+ loadOptions.setLayout( new GridLayout( LAYOUT_COLS, false ) );
+ gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false );
+ gd.horizontalIndent = HORIZONTAL_INDENT;
+ loadOptions.setLayoutData( gd );
+
+ createManifestLoadRow( loadOptions );
+ }
+
+ /**
+ * Create the manifest file save row.
+ *
+ * @param pParent the parent composite where to create the controls
+ */
+ private void createManifestSaveOptions( Composite pParent ) {
+ mSaveManifestBtn = new Button( pParent, SWT.CHECK );
+ mSaveManifestBtn.setText( Messages.getString("ManifestExportPage.SaveManifestText") ); //$NON-NLS-1$
+
+ GridData gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false );
+ gd.horizontalSpan = LAYOUT_COLS;
+ mSaveManifestBtn.setLayoutData( gd );
+ mSaveManifestBtn.addSelectionListener( new SelectionListener() {
+
+ public void widgetSelected(SelectionEvent pE) {
+ boolean enabled = mSaveManifestBtn.getSelection();
+ mSaveRowLbl.setEnabled( enabled );
+ mSaveRowTxt.setEnabled( enabled );
+ mSaveRowBtn.setEnabled( enabled );
+ }
+
+ public void widgetDefaultSelected(SelectionEvent pE) {
+ widgetSelected( pE );
+ }
+ });
+
+ mSaveRowLbl = new Label( pParent, SWT.NONE );
+ mSaveRowLbl.setText( Messages.getString("ManifestExportPage.SaveRowLabel") ); //$NON-NLS-1$
+ mSaveRowLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
+ mSaveRowLbl.setEnabled( false );
+
+ mSaveRowTxt = new Text( pParent, SWT.SINGLE | SWT.BORDER );
+ mSaveRowTxt.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) );
+ mSaveRowTxt.setEnabled( false );
+
+ mSaveRowBtn = new Button( pParent, SWT.PUSH );
+ mSaveRowBtn.setText( Messages.getString("ManifestExportPage.Browse") ); //$NON-NLS-1$
+ mSaveRowBtn.setLayoutData( new GridData( SWT.END, SWT.CENTER, false, false ) );
+ mSaveRowBtn.setEnabled( false );
+ mSaveRowBtn.addSelectionListener( new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent pE) {
+ SaveAsDialog dlg = new SaveAsDialog( getShell() );
+ dlg.create();
+ dlg.getShell().setText( Messages.getString("ManifestExportPage.SaveDialogTitle") ); //$NON-NLS-1$
+ dlg.setMessage( Messages.getString("ManifestExportPage.SaveDialogMessage") ); //$NON-NLS-1$
+ dlg.setOriginalFile( mProject.getFile( MANIFEST_FILENAME ) );
+ if ( dlg.open() == Window.OK ) {
+ mSaveRowTxt.setText( dlg.getResult().toString() );
+ }
+ }
+ });
+ }
+
+ /**
+ * Create the manifest file load row.
+ *
+ * @param pParent the parent composite where to create the controls
+ */
+ private void createManifestLoadRow( Composite pParent ) {
+ mLoadRowLbl = new Label( pParent, SWT.NONE );
+ mLoadRowLbl.setText( Messages.getString("ManifestExportPage.LoadRowLabel") ); //$NON-NLS-1$
+ mLoadRowLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
+ mLoadRowLbl.setEnabled( false );
+
+ mLoadRowTxt = new Text( pParent, SWT.SINGLE | SWT.BORDER );
+ mLoadRowTxt.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) );
+ mLoadRowTxt.setEnabled( false );
+
+ mLoadRowBtn = new Button( pParent, SWT.PUSH );
+ mLoadRowBtn.setText( Messages.getString("ManifestExportPage.Browse") ); //$NON-NLS-1$
+ mLoadRowBtn.setLayoutData( new GridData( SWT.END, SWT.CENTER, false, false ) );
+ mLoadRowBtn.setEnabled( false );
+ mLoadRowBtn.addSelectionListener( new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent pE) {
+ // Create a workspace file selection dialog
+ ElementTreeSelectionDialog dlg = new ElementTreeSelectionDialog(
+ getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider() );
+ dlg.setAllowMultiple( false );
+ dlg.setValidator( new ISelectionStatusValidator() {
+
+ public IStatus validate(Object[] pSelection) {
+ Status status = new Status( IStatus.ERROR, OOEclipsePlugin.OOECLIPSE_PLUGIN_ID, new String() );
+ // only single selection
+ if ( pSelection.length == 1 && ( pSelection[0] instanceof IFile ) ) {
+ status = new Status( IStatus.OK, OOEclipsePlugin.OOECLIPSE_PLUGIN_ID, new String() );
+ }
+ return status;
+ }
+ });
+
+ dlg.addFilter( new ViewerFilter() {
+
+ @Override
+ public boolean select(Viewer pViewer, Object pParentElement, Object pElement) {
+ boolean select = true;
+ if ( pElement instanceof IResource ) {
+ IResource res = ( IResource )pElement;
+ select &= !res.getName().startsWith( "." ); //$NON-NLS-1$
+ select &= ( res instanceof IContainer ) ||
+ ( res.getName().equals( MANIFEST_FILENAME ) );
+ }
+ return select;
+ }
+ });
+ dlg.setTitle( Messages.getString("ManifestExportPage.LoadDialogTitle") ); //$NON-NLS-1$
+ dlg.setMessage( Messages.getString("ManifestExportPage.LoadDialogMessage") ); //$NON-NLS-1$
+ dlg.setStatusLineAboveButtons( true );
+ dlg.setInput( ResourcesPlugin.getWorkspace().getRoot() );
+ if ( dlg.open() == Window.OK ) {
+ Object result = dlg.getFirstResult();
+ IFile file = ( IFile )result;
+ mLoadRowTxt.setText( file.getFullPath().toString() );
+ }
+ }
+ });
+ }
+
+ /**
+ * Change the language specific part from the selected project.
+ */
+ private void reloadLanguagePart( ) {
+ if ( mLangPart != null ) {
+ mLangPart.dispose( );
+ }
+
+ // Add the language specific controls
+ if ( mProject != null ) {
+ mLangPart = mProject.getLanguage().getExportBuildPart();
+ if ( mLangPart != null ) {
+ Composite body = ( Composite ) getControl();
+ if ( body != null ) {
+ // The body can be null before the page creation
+ mLangPart.createControls( body );
+ body.layout();
+ }
+ }
+ }
+ }
+}
diff --git a/core/source/org/openoffice/ide/eclipse/core/wizards/pages/NewUnoProjectPage.java b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/NewUnoProjectPage.java
index 21cd392..9c2215a 100755
--- a/core/source/org/openoffice/ide/eclipse/core/wizards/pages/NewUnoProjectPage.java
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/NewUnoProjectPage.java
@@ -79,12 +79,12 @@ import org.openoffice.ide.eclipse.core.gui.rows.IFieldChangedListener;
import org.openoffice.ide.eclipse.core.gui.rows.LabeledRow;
import org.openoffice.ide.eclipse.core.gui.rows.TextRow;
import org.openoffice.ide.eclipse.core.i18n.ImagesConstants;
-import org.openoffice.ide.eclipse.core.internal.helpers.LanguagesHelper;
import org.openoffice.ide.eclipse.core.internal.helpers.UnoidlProjectHelper;
import org.openoffice.ide.eclipse.core.model.IUnoFactoryConstants;
import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
+import org.openoffice.ide.eclipse.core.model.language.LanguagesHelper;
import org.openoffice.ide.eclipse.core.wizards.Messages;
import org.openoffice.ide.eclipse.core.wizards.NewUnoProjectWizard;
@@ -213,8 +213,8 @@ public class NewUnoProjectPage extends WizardNewProjectCreationPage
/**
* @return the chosen implementation language.
*/
- public ILanguage getChosenLanguage() {
- ILanguage language = null;
+ public AbstractLanguage getChosenLanguage() {
+ AbstractLanguage language = null;
if (mLanguageRow != null) {
String value = mLanguageRow.getValue();
language = LanguagesHelper.getLanguageFromName(value);
diff --git a/core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java
new file mode 100644
index 0000000..fe6147b
--- /dev/null
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java
@@ -0,0 +1,410 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.core.wizards.pages;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.internal.ide.DialogUtil;
+import org.eclipse.ui.internal.ide.dialogs.ResourceTreeAndListGroup;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
+import org.openoffice.ide.eclipse.core.model.ProjectsManager;
+import org.openoffice.ide.eclipse.core.wizards.Messages;
+
+/**
+ * First page of the new UNO extension export wizard.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
+ at SuppressWarnings("restriction")
+public class UnoPackageExportPage extends WizardPage {
+
+ private static final int DESTINATION_PART_COLS = 3;
+
+ private static final String OVERWRITE_FILES = "overwrite.files"; //$NON-NLS-1$
+ private static final String AUTODEPLOY = "autodeploy"; //$NON-NLS-1$
+ private static final String DESTINATION_HISTORY = "destination.history"; //$NON-NLS-1$
+
+ private static final int MAX_DESTINATION_STORED = 5;
+
+ private Combo mProjectsList;
+ private ResourceTreeAndListGroup mResourceGroup;
+ private Combo mDestinationCombo;
+ private Button mOverwriteBox;
+ private Button mAutodeployBox;
+
+ private IUnoidlProject mSelectedProject;
+
+ private ManifestExportPage mManifestPage;
+
+ /**
+ * Constructor.
+ *
+ * @param pPageName the page id
+ * @param pPrj the project to export
+ * @param pManifestPage the manifest page of the wizard
+ */
+ public UnoPackageExportPage( String pPageName, IUnoidlProject pPrj, ManifestExportPage pManifestPage ) {
+ super(pPageName);
+
+ setTitle( Messages.getString("UnoPackageExportPage.Title") ); //$NON-NLS-1$
+ setDescription( Messages.getString("UnoPackageExportPage.Description") ); //$NON-NLS-1$
+
+ mSelectedProject = pPrj;
+ mManifestPage = pManifestPage;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void createControl(Composite pParent) {
+ Composite body = new Composite( pParent, SWT.NONE );
+ body.setLayout( new GridLayout( ) );
+ body.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+ setControl( body );
+
+ createProjectSelection( );
+ createResourcesGroup( );
+ createDestinationGroup( );
+ createOptionsGroup( );
+
+ // Load the data into the fields
+ restoreWidgetValues();
+ loadData( );
+ }
+
+
+
+ /**
+ * Loads the data in the different controls of the page.
+ */
+ private void loadData() {
+ // Select the project
+ String[] items = mProjectsList.getItems();
+ int i = 0;
+ boolean selected = false;
+ while ( mSelectedProject != null && i < items.length && !selected ) {
+ if ( items[i].equals( mSelectedProject.getName() ) ) {
+ mProjectsList.select( i );
+ selected = true;
+ }
+ i++;
+ }
+
+ // TODO Load the previously selected paths
+
+ // TODO Load the saved checkboxes states
+ }
+
+ /**
+ * Creates the project selection part of the dialog.
+ */
+ private void createProjectSelection() {
+ Composite body = (Composite)getControl();
+ Composite selectionBody = new Composite( body, SWT.NONE );
+ selectionBody.setLayout( new GridLayout( 2, false ) );
+ selectionBody.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+
+ Label lbl = new Label( selectionBody, SWT.NORMAL );
+ lbl.setText( Messages.getString("UnoPackageExportPage.Project") ); //$NON-NLS-1$
+ lbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
+
+ IUnoidlProject[] prjs = ProjectsManager.getProjects();
+ String[] prjNames = new String[prjs.length];
+ for (int i = 0; i < prjs.length; i++) {
+ IUnoidlProject prj = prjs[i];
+ prjNames[i] = prj.getName();
+ }
+
+ mProjectsList = new Combo( selectionBody, SWT.DROP_DOWN | SWT.READ_ONLY );
+ mProjectsList.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) );
+ mProjectsList.setItems( prjNames );
+
+ mProjectsList.addModifyListener( new ModifyListener() {
+
+ public void modifyText(ModifyEvent pE) {
+ int id = mProjectsList.getSelectionIndex();
+ List<Object> input = new ArrayList<Object>();
+ if ( id != -1 ) {
+ String name = mProjectsList.getItem( id );
+ IUnoidlProject unoprj = ProjectsManager.getProject( name );
+
+ // Change the project in the manifest page
+ mManifestPage.setProject( unoprj );
+
+ // Change the resource group input
+ input.addAll( getFilteredChildren( unoprj ) );
+ mResourceGroup.setRoot( input );
+ }
+ }
+ });
+ }
+
+ /**
+ * Creates the project's resources selection part of the dialog.
+ */
+ private void createResourcesGroup() {
+ Composite body = (Composite)getControl();
+ Composite selectionBody = new Composite( body, SWT.NONE );
+ selectionBody.setLayout( new GridLayout( 2, false ) );
+ selectionBody.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+
+ mResourceGroup = new ResourceTreeAndListGroup(selectionBody, new ArrayList<Object>(),
+ getResourceProvider(IResource.FOLDER),
+ WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider(),
+ getResourceProvider(IResource.FILE), WorkbenchLabelProvider
+ .getDecoratingWorkbenchLabelProvider(), SWT.NONE,
+ DialogUtil.inRegularFontMode(selectionBody));
+ }
+
+ /**
+ * Creates the package destination part of the dialog.
+ */
+ private void createDestinationGroup() {
+ Composite body = (Composite)getControl();
+ Composite groupBody = new Composite( body, SWT.NONE );
+ groupBody.setLayout( new GridLayout( ) );
+ groupBody.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+
+ Label titleLbl = new Label( groupBody, SWT.NONE );
+ titleLbl.setText( Messages.getString("UnoPackageExportPage.SelectDestination") ); //$NON-NLS-1$
+ titleLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.BEGINNING, false, false ) );
+
+ Composite rowBody = new Composite( groupBody, SWT.NONE );
+ rowBody.setLayout( new GridLayout( DESTINATION_PART_COLS, false ) );
+ rowBody.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+
+ Label lbl = new Label( rowBody, SWT.None );
+ lbl.setText( Messages.getString("UnoPackageExportPage.OxtFile") ); //$NON-NLS-1$
+ lbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
+
+ mDestinationCombo = new Combo( rowBody, SWT.DROP_DOWN );
+ mDestinationCombo.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) );
+
+ Button btn = new Button( rowBody, SWT.PUSH );
+ btn.setText( Messages.getString("UnoPackageExportPage.Browse") ); //$NON-NLS-1$
+ btn.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
+ btn.addSelectionListener( new SelectionListener() {
+
+ public void widgetSelected(SelectionEvent pE) {
+ FileDialog dlg = new FileDialog( getShell(), SWT.SAVE );
+ String path = dlg.open();
+ if ( path != null ) {
+ mDestinationCombo.setText( path );
+ }
+ }
+
+ public void widgetDefaultSelected(SelectionEvent pE) {
+ widgetSelected( pE );
+ }
+ });
+ }
+
+ /**
+ * Creates the options part of the dialog (the one at the bottom).
+ */
+ private void createOptionsGroup() {
+ Composite body = (Composite)getControl();
+ Composite groupBody = new Composite( body, SWT.NONE );
+ groupBody.setLayout( new GridLayout( ) );
+ groupBody.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+
+ Label titleLbl = new Label( groupBody, SWT.NONE );
+ titleLbl.setText( Messages.getString("UnoPackageExportPage.Options") ); //$NON-NLS-1$
+ titleLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.BEGINNING, false, false ) );
+
+ Composite rowsBody = new Composite( groupBody, SWT.NONE );
+ rowsBody.setLayout( new GridLayout( ) );
+ rowsBody.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+
+ mOverwriteBox = new Button( rowsBody, SWT.CHECK );
+ mOverwriteBox.setText( Messages.getString("UnoPackageExportPage.OverwriteWithoutWarning") ); //$NON-NLS-1$
+ mOverwriteBox.setLayoutData( new GridData( SWT.BEGINNING, SWT.BEGINNING, false, false ) );
+
+ mAutodeployBox = new Button( rowsBody, SWT.CHECK );
+ mAutodeployBox.setText( Messages.getString("UnoPackageExportPage.AutoDeploy") ); //$NON-NLS-1$
+ mAutodeployBox.setLayoutData( new GridData( SWT.BEGINNING, SWT.BEGINNING, false, false ) );
+ }
+
+ /*
+ * Data handling and filtering methods
+ */
+
+ /**
+ * Get the children of a projects without the ones to hide in the resource selection controls.
+ *
+ * @param pUnoprj the project for which to get the children
+ * @return the resources to show
+ */
+ private List<Object> getFilteredChildren(IUnoidlProject pUnoprj) {
+ ArrayList<Object> result = new ArrayList<Object>();
+ IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( pUnoprj.getName() );
+
+ try {
+ IResource[] members = prj.members();
+ for (int i = 0; i < members.length; i++) {
+ if ( !isHiddenResource( members[i] ) ) {
+ result.add(members[i]);
+ }
+ }
+ } catch ( CoreException e ) {
+ }
+ return result;
+ }
+
+ /**
+ * @param pRes the resource to be checked
+ *
+ * @return <code>true</code> if the resource is hidden in the lists, <code>false</code>
+ * otherwise.
+ */
+ private boolean isHiddenResource( IResource pRes ) {
+ boolean hidden = false;
+
+ // Hide the binaries: they are always included from somewhere else
+ IUnoidlProject unoprj = ProjectsManager.getProject( pRes.getProject().getName() );
+ hidden |= unoprj.getFolder( unoprj.getBuildPath() ).equals( pRes );
+
+ IFolder[] bins = unoprj.getBinFolders();
+ for (IFolder bin : bins) {
+ hidden |= bin.equals( pRes );
+ }
+
+ // Hide the hidden files
+ hidden |= pRes.getName().startsWith( "." ); //$NON-NLS-1$
+
+ // Hide files which are always included in the package
+ hidden |= pRes.getName().equals( "description.xml" ); //$NON-NLS-1$
+ hidden |= pRes.getName().equals( "MANIFEST.MF" ); //$NON-NLS-1$
+ hidden |= pRes.getName().equals( "manifest.xml" ); //$NON-NLS-1$
+
+ return hidden;
+ }
+
+ /**
+ * @param pResourceType the type of the resources to return by the provider.
+ *
+ * @return a content provider for <code>IResource</code>s that returns
+ * only children of the given resource type.
+ */
+ private ITreeContentProvider getResourceProvider( final int pResourceType ) {
+ return new WorkbenchContentProvider() {
+ public Object[] getChildren( Object pObject ) {
+ ArrayList<IResource> results = new ArrayList<IResource>();
+
+ if (pObject instanceof ArrayList<?>) {
+ ArrayList<?> objs = (ArrayList<?>)pObject;
+ for (Object o : objs) {
+ if ( o instanceof IResource ) {
+ results.add( ( IResource ) o );
+ }
+ }
+ } else if (pObject instanceof IContainer) {
+ IResource[] members = null;
+ try {
+ members = ((IContainer) pObject).members();
+
+ //filter out the desired resource types
+ for (int i = 0; i < members.length; i++) {
+ //And the test bits with the resource types to see if they are what we want
+ if ((members[i].getType() & pResourceType) > 0 && !isHiddenResource( members[i] ) ) {
+ results.add(members[i]);
+ }
+ }
+ } catch (CoreException e) {
+ }
+ }
+ return results.toArray( );
+ }
+ };
+ }
+
+ /**
+ * Stores the controls values for the next instance of the page.
+ */
+ public void saveWidgetValues() {
+ IDialogSettings settings = getDialogSettings();
+ if ( settings != null ) {
+ settings.put( OVERWRITE_FILES, mOverwriteBox.getSelection() );
+ settings.put( AUTODEPLOY, mAutodeployBox.getSelection() );
+
+ String[] topItems = new String[ MAX_DESTINATION_STORED ];
+ topItems[0] = mDestinationCombo.getText();
+ int i = 0;
+ int count = mDestinationCombo.getItemCount();
+ while ( i < count && i < MAX_DESTINATION_STORED - 1 ) {
+ topItems[i + 1] = mDestinationCombo.getItem( i );
+ }
+ settings.put( DESTINATION_HISTORY, topItems );
+ }
+ }
+
+ /**
+ * Loads the saved values of the controls states.
+ */
+ public void restoreWidgetValues() {
+ IDialogSettings settings = getDialogSettings();
+ if ( settings != null ) {
+ mOverwriteBox.setSelection( settings.getBoolean( OVERWRITE_FILES ) );
+ mAutodeployBox.setSelection( settings.getBoolean( AUTODEPLOY ) );
+ String[] items = settings.getArray( DESTINATION_HISTORY );
+ for (String item : items) {
+ if ( item != null && !item.isEmpty() ) {
+ mDestinationCombo.add( item );
+ }
+ }
+ }
+ }
+}
diff --git a/cpp/source/org/openoffice/ide/eclipse/cpp/CppBuilder.java b/cpp/source/org/openoffice/ide/eclipse/cpp/CppBuilder.java
index bcca7f8..1afdb6f 100644
--- a/cpp/source/org/openoffice/ide/eclipse/cpp/CppBuilder.java
+++ b/cpp/source/org/openoffice/ide/eclipse/cpp/CppBuilder.java
@@ -60,21 +60,33 @@ public class CppBuilder implements ILanguageBuilder {
public static final String INCLUDE = "include"; //$NON-NLS-1$
+ /**
+ * {@inheritDoc}
+ */
public IPath createLibrary(IUnoidlProject pUnoProject) throws Exception {
// TODO Auto-generated method stub
return null;
}
+ /**
+ * {@inheritDoc}
+ */
public void fillUnoPackage(UnoPackage pUnoPackage, IUnoidlProject pPrj) {
// TODO Auto-generated method stub
}
+ /**
+ * {@inheritDoc}
+ */
public String[] getBuildEnv(IUnoidlProject pUnoProject) {
// TODO Auto-generated method stub
return null;
}
+ /**
+ * {@inheritDoc}
+ */
public void generateFromTypes(ISdk pSdk, IOOo pOoo, IProject pPrj,
File pTypesFile, File pBuildFolder, String pRootModule,
IProgressMonitor pMonitor) {
diff --git a/cpp/source/org/openoffice/ide/eclipse/cpp/CppProjectHandler.java b/cpp/source/org/openoffice/ide/eclipse/cpp/CppProjectHandler.java
index 68a2733..20e69d7 100644
--- a/cpp/source/org/openoffice/ide/eclipse/cpp/CppProjectHandler.java
+++ b/cpp/source/org/openoffice/ide/eclipse/cpp/CppProjectHandler.java
@@ -195,6 +195,14 @@ public class CppProjectHandler implements IProjectHandler {
}
/**
+ * {@inheritDoc}
+ */
+ public IFolder[] getBinFolders(IUnoidlProject pUnoidlProject) {
+ // TODO Auto-generated method stub
+ return new IFolder[0];
+ }
+
+ /**
* Utility method providing the necessary macros to add depending on the OS.
*
* @param pOs the OS for which to get the macros
diff --git a/cpp/source/org/openoffice/ide/eclipse/cpp/CppUI.java b/cpp/source/org/openoffice/ide/eclipse/cpp/CppUI.java
deleted file mode 100644
index 546ac5e..0000000
--- a/cpp/source/org/openoffice/ide/eclipse/cpp/CppUI.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*************************************************************************
- *
- * The Contents of this file are made available subject to the terms of
- * the GNU Lesser General Public License Version 2.1
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2009 by Novell, Inc.
- *
- * 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
- *
- * The Initial Developer of the Original Code is: Cédric Bosdonnat.
- *
- * Copyright: 2009 by Novell, Inc.
- *
- * All Rights Reserved.
- *
- ************************************************************************/
-package org.openoffice.ide.eclipse.cpp;
-
-import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
-import org.openoffice.ide.eclipse.core.model.language.ILanguageUI;
-import org.openoffice.ide.eclipse.core.model.language.LanguageWizardPage;
-
-/**
- * Class for the C++ UI extensions to the core: nothing done here.
- * @author cbosdonnat
- *
- */
-public class CppUI implements ILanguageUI {
-
- /**
- * There is no need for C++ only options: then no page.
- *
- * @param pData not used
- *
- * @return <code>null</code>
- */
- public LanguageWizardPage getWizardPage(UnoFactoryData pData) {
- return null;
- }
-}
diff --git a/cpp/source/org/openoffice/ide/eclipse/cpp/Language.java b/cpp/source/org/openoffice/ide/eclipse/cpp/Language.java
index 9c80949..dc2da7d 100644
--- a/cpp/source/org/openoffice/ide/eclipse/cpp/Language.java
+++ b/cpp/source/org/openoffice/ide/eclipse/cpp/Language.java
@@ -30,9 +30,8 @@
************************************************************************/
package org.openoffice.ide.eclipse.cpp;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
import org.openoffice.ide.eclipse.core.model.language.ILanguageBuilder;
-import org.openoffice.ide.eclipse.core.model.language.ILanguageUI;
import org.openoffice.ide.eclipse.core.model.language.IProjectHandler;
/**
@@ -41,7 +40,7 @@ import org.openoffice.ide.eclipse.core.model.language.IProjectHandler;
* @author cbosdonnat
*
*/
-public class Language implements ILanguage {
+public class Language extends AbstractLanguage {
/**
* {@inheritDoc}
@@ -53,13 +52,6 @@ public class Language implements ILanguage {
/**
* {@inheritDoc}
*/
- public ILanguageUI getLanguageUI() {
- return new CppUI( );
- }
-
- /**
- * {@inheritDoc}
- */
public IProjectHandler getProjectHandler() {
return new CppProjectHandler( );
}
diff --git a/cpp/source/org/openoffice/ide/eclipse/cpp/OOoSdkProjectJob.java b/cpp/source/org/openoffice/ide/eclipse/cpp/OOoSdkProjectJob.java
index cd5b5bd..c589cf6 100644
--- a/cpp/source/org/openoffice/ide/eclipse/cpp/OOoSdkProjectJob.java
+++ b/cpp/source/org/openoffice/ide/eclipse/cpp/OOoSdkProjectJob.java
@@ -155,31 +155,10 @@ public class OOoSdkProjectJob extends Job {
File libFile = new File( dirPath.toFile(), syslibname );
if ( libFile.exists() ) {
- String dest = folder.getFile( libname ).getLocation().toOSString();
String orig = libFile.getAbsolutePath();
// Run ln to link the files: present on all *NIX platforms
- String[] command = {
- "ln", "-s", //$NON-NLS-1$ //$NON-NLS-2$
- orig, dest
- };
- try {
- Process proc = Runtime.getRuntime().exec( command );
-
- StringBuffer buf = getErrorString( proc );
- if ( !buf.toString().trim().equals( new String( ) ) ) {
- String msg = Messages.getString("OOoSdkProjectJob.LinkError") + //$NON-NLS-1$
- libname + "\n"; //$NON-NLS-1$
- msg += buf.toString();
- PluginLogger. error( msg );
- }
-
- proc.waitFor();
-
- } catch ( Exception e ) {
- PluginLogger.error( Messages.getString("OOoSdkProjectJob.LinkError") + //$NON-NLS-1$
- libname, e );
- }
+ doLink( orig, folder, libname );
}
}
}
@@ -188,6 +167,38 @@ public class OOoSdkProjectJob extends Job {
}
/**
+ * Create the link for a library.
+ *
+ * @param pOrig the file to link from
+ * @param pFolder the folder where to create the link
+ * @param pLibname the name of the library in the new folder
+ */
+ private void doLink( String pOrig, IFolder pFolder, String pLibname ) {
+ String dest = pFolder.getFile( pLibname ).getLocation().toOSString();
+ String[] command = {
+ "ln", "-s", //$NON-NLS-1$ //$NON-NLS-2$
+ pOrig, dest
+ };
+ try {
+ Process proc = Runtime.getRuntime().exec( command );
+
+ StringBuffer buf = getErrorString( proc );
+ if ( !buf.toString().trim().equals( new String( ) ) ) {
+ String msg = Messages.getString("OOoSdkProjectJob.LinkError") + //$NON-NLS-1$
+ pLibname + "\n"; //$NON-NLS-1$
+ msg += buf.toString();
+ PluginLogger. error( msg );
+ }
+
+ proc.waitFor();
+
+ } catch ( Exception e ) {
+ PluginLogger.error( Messages.getString("OOoSdkProjectJob.LinkError") + //$NON-NLS-1$
+ pLibname, e );
+ }
+ }
+
+ /**
* Utility method creating the headers in the SDK project.
*
* @param pProject the project in which to create the headers
diff --git a/java/plugin.xml b/java/plugin.xml
index 7343ff0..6e86efb 100644
--- a/java/plugin.xml
+++ b/java/plugin.xml
@@ -5,7 +5,14 @@
point="org.openoffice.ide.eclipse.core.language">
<language
class="org.openoffice.ide.eclipse.java.Language"
- name="Java"/>
+ name="Java">
+ <newWizardPage
+ class="org.openoffice.ide.eclipse.java.JavaWizardPage">
+ </newWizardPage>
+ <exportBuildPart
+ class="org.openoffice.ide.eclipse.java.JavaExportPart">
+ </exportBuildPart>
+ </language>
</extension>
<extension
id="org.openoffice.ide.eclipse.java.builder"
diff --git a/java/source/org/openoffice/ide/eclipse/java/JavaExportPart.java b/java/source/org/openoffice/ide/eclipse/java/JavaExportPart.java
new file mode 100644
index 0000000..0df5abf
--- /dev/null
+++ b/java/source/org/openoffice/ide/eclipse/java/JavaExportPart.java
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
+package org.openoffice.ide.eclipse.java;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.openoffice.ide.eclipse.core.model.language.LanguageExportPart;
+import org.openoffice.ide.eclipse.core.wizards.pages.ManifestExportPage;
+
+/**
+ * Dialog part for the Ant scripts export configuration.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
+public class JavaExportPart extends LanguageExportPart {
+
+ private static final String DEFAULT_ANT_FILENAME = "build.xml"; //$NON-NLS-1$
+
+ private Button mSaveScripts;
+ private Composite mNameRow;
+ private Label mNameRowLbl;
+ private Text mNameRowTxt;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void createControls(Composite pParent) {
+ mSaveScripts = new Button( pParent, SWT.CHECK );
+ mSaveScripts.setText( Messages.getString("JavaExportPart.SaveAntScript") ); //$NON-NLS-1$
+ mSaveScripts.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) );
+ mSaveScripts.addSelectionListener( new SelectionListener() {
+
+ public void widgetSelected( SelectionEvent pE ) {
+ boolean enabled = mSaveScripts.getSelection();
+ mNameRowLbl.setEnabled( enabled );
+ mNameRowTxt.setEnabled( enabled );
+ }
+
+ public void widgetDefaultSelected( SelectionEvent pE ) {
+ widgetSelected( pE );
+ }
+ });
+
+ mNameRow = new Composite( pParent, SWT.NONE );
+ mNameRow.setLayout( new GridLayout( 2, false ) );
+ GridData gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false );
+ gd.horizontalIndent = ManifestExportPage.HORIZONTAL_INDENT;
+ mNameRow.setLayoutData( gd );
+
+ mNameRowLbl = new Label( mNameRow, SWT.NONE );
+ mNameRowLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) );
+ mNameRowLbl.setText( Messages.getString("JavaExportPart.AntFile") ); //$NON-NLS-1$
+ mNameRowLbl.setEnabled( false );
+
+ mNameRowTxt = new Text( mNameRow, SWT.BORDER | SWT.SINGLE );
+ mNameRowTxt.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) );
+ mNameRowTxt.setText( DEFAULT_ANT_FILENAME );
+ mNameRowTxt.setEnabled( false );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void dispose() {
+ if ( mSaveScripts != null ) {
+ mSaveScripts.dispose();
+ mNameRow.dispose();
+ }
+ }
+
+}
diff --git a/java/source/org/openoffice/ide/eclipse/java/JavaProjectHandler.java b/java/source/org/openoffice/ide/eclipse/java/JavaProjectHandler.java
index 3c8c710..36136f8 100644
--- a/java/source/org/openoffice/ide/eclipse/java/JavaProjectHandler.java
+++ b/java/source/org/openoffice/ide/eclipse/java/JavaProjectHandler.java
@@ -44,11 +44,14 @@
package org.openoffice.ide.eclipse.java;
import java.io.File;
+import java.util.ArrayList;
import java.util.Vector;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
@@ -57,6 +60,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.launching.JavaRuntime;
import org.openoffice.ide.eclipse.core.PluginLogger;
import org.openoffice.ide.eclipse.core.model.IUnoFactoryConstants;
@@ -261,6 +265,31 @@ public class JavaProjectHandler implements IProjectHandler {
public String getRegistrationClassName(IUnoidlProject pProject) {
return pProject.getProperty(P_REGISTRATION_CLASSNAME);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public IFolder[] getBinFolders(IUnoidlProject pUnoidlProject) {
+ ArrayList< IFolder > folders = new ArrayList<IFolder>();
+
+ IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot();
+ IProject prj = workspace.getProject( pUnoidlProject.getName() );
+ IJavaProject javaPrj = JavaCore.create( prj );
+ try {
+ folders.add( workspace.getFolder( javaPrj.getOutputLocation() ) );
+
+ IClasspathEntry[] entries = javaPrj.getRawClasspath();
+ for (IClasspathEntry entry : entries) {
+ if ( entry.getEntryKind() == IClasspathEntry.CPE_SOURCE &&
+ entry.getOutputLocation() != null ) {
+ folders.add( workspace.getFolder( entry.getOutputLocation() ) );
+ }
+ }
+ } catch ( JavaModelException e ) {
+ }
+
+ return folders.toArray( new IFolder[folders.size()] );
+ }
//--------------------------------------------- Jar finding private methods
diff --git a/java/source/org/openoffice/ide/eclipse/java/JavaUI.java b/java/source/org/openoffice/ide/eclipse/java/JavaUI.java
deleted file mode 100644
index cd1f1fd..0000000
--- a/java/source/org/openoffice/ide/eclipse/java/JavaUI.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: JavaUI.java,v $
- *
- * $Revision: 1.2 $
- *
- * last change: $Author: cedricbosdo $ $Date: 2007/11/25 20:32:38 $
- *
- * The Contents of this file are made available subject to the terms of
- * the GNU Lesser General Public License Version 2.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 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
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
- *
- * Copyright: 2002 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): Cedric Bosdonnat
- *
- *
- ************************************************************************/
-package org.openoffice.ide.eclipse.java;
-
-import org.openoffice.ide.eclipse.core.model.UnoFactoryData;
-import org.openoffice.ide.eclipse.core.model.language.ILanguageUI;
-import org.openoffice.ide.eclipse.core.model.language.LanguageWizardPage;
-
-/**
- * The language UI implementation for Java.
- *
- * @author cedricbosdo
- *
- */
-public class JavaUI implements ILanguageUI {
-
- /**
- * {@inheritDoc}
- */
- public LanguageWizardPage getWizardPage(UnoFactoryData pData) {
- return new JavaWizardPage(pData);
- }
-}
diff --git a/java/source/org/openoffice/ide/eclipse/java/JavaWizardPage.java b/java/source/org/openoffice/ide/eclipse/java/JavaWizardPage.java
index 313c334..cce0895 100644
--- a/java/source/org/openoffice/ide/eclipse/java/JavaWizardPage.java
+++ b/java/source/org/openoffice/ide/eclipse/java/JavaWizardPage.java
@@ -73,12 +73,9 @@ public class JavaWizardPage extends LanguageWizardPage {
/**
* Constructor.
- *
- * @param pData the uno factory data to use to set the page.
*/
- public JavaWizardPage(UnoFactoryData pData) {
+ public JavaWizardPage() {
super();
- setProjectInfos(pData);
setImageDescriptor(OOoJavaPlugin.getDefault().getImageRegistry().
getDescriptor(OOoJavaPlugin.WIZBAN));
setTitle(Messages.getString("JavaWizardPage.PageTitle")); //$NON-NLS-1$
diff --git a/java/source/org/openoffice/ide/eclipse/java/Language.java b/java/source/org/openoffice/ide/eclipse/java/Language.java
index 295ab62..6245535 100644
--- a/java/source/org/openoffice/ide/eclipse/java/Language.java
+++ b/java/source/org/openoffice/ide/eclipse/java/Language.java
@@ -43,9 +43,8 @@
************************************************************************/
package org.openoffice.ide.eclipse.java;
-import org.openoffice.ide.eclipse.core.model.language.ILanguage;
+import org.openoffice.ide.eclipse.core.model.language.AbstractLanguage;
import org.openoffice.ide.eclipse.core.model.language.ILanguageBuilder;
-import org.openoffice.ide.eclipse.core.model.language.ILanguageUI;
import org.openoffice.ide.eclipse.core.model.language.IProjectHandler;
/**
@@ -53,7 +52,7 @@ import org.openoffice.ide.eclipse.core.model.language.IProjectHandler;
*
* @author cedricbosdo
*/
-public class Language implements ILanguage {
+public class Language extends AbstractLanguage {
/**
* {@inheritDoc}
@@ -65,13 +64,6 @@ public class Language implements ILanguage {
/**
* {@inheritDoc}
*/
- public ILanguageUI getLanguageUI() {
- return new JavaUI();
- }
-
- /**
- * {@inheritDoc}
- */
public IProjectHandler getProjectHandler() {
return new JavaProjectHandler();
}
diff --git a/java/source/org/openoffice/ide/eclipse/java/build/FilesVisitor.java b/java/source/org/openoffice/ide/eclipse/java/build/FilesVisitor.java
index 605ae92..ea2f084 100644
--- a/java/source/org/openoffice/ide/eclipse/java/build/FilesVisitor.java
+++ b/java/source/org/openoffice/ide/eclipse/java/build/FilesVisitor.java
@@ -1,3 +1,33 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * the GNU Lesser General Public License Version 2.1
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2009 by Cédric Bosdonnat
+ *
+ * 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
+ *
+ * The Initial Developer of the Original Code is: Cédric Bosdonnat.
+ *
+ * Copyright: 2009 by Cédric Bosdonnat
+ *
+ * All Rights Reserved.
+ *
+ ************************************************************************/
package org.openoffice.ide.eclipse.java.build;
import java.util.ArrayList;
@@ -7,15 +37,29 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.runtime.CoreException;
+/**
+ * Resource visitor collecting the files of a directory.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
public class FilesVisitor implements IResourceVisitor {
ArrayList<IFile> mFiles = new ArrayList<IFile>();
ArrayList<IResource> mExceptions = new ArrayList<IResource>();
+ /**
+ * Adds a resource to skip during the visit.
+ *
+ * @param pRes the resource to skip
+ */
public void addException( IResource pRes ) {
mExceptions.add( pRes );
}
+ /**
+ * {@inheritDoc}
+ */
public boolean visit(IResource pResource) throws CoreException {
if ( pResource.getType() == IResource.FILE ) {
@@ -33,6 +77,9 @@ public class FilesVisitor implements IResourceVisitor {
return visitChildren;
}
+ /**
+ * @return all the files found during the visit.
+ */
public IFile[] getFiles( ) {
return mFiles.toArray( new IFile[ mFiles.size() ] );
}
diff --git a/java/source/org/openoffice/ide/eclipse/java/build/UnoManifestProvider.java b/java/source/org/openoffice/ide/eclipse/java/build/UnoManifestProvider.java
index bdc856f..b8b83f3 100644
--- a/java/source/org/openoffice/ide/eclipse/java/build/UnoManifestProvider.java
+++ b/java/source/org/openoffice/ide/eclipse/java/build/UnoManifestProvider.java
@@ -37,20 +37,34 @@ import java.util.jar.Attributes.Name;
import org.eclipse.jdt.internal.ui.jarpackager.ManifestProvider;
import org.eclipse.jdt.ui.jarpackager.JarPackageData;
+/**
+ * Class providing the MANIFEST.MF contents to the Jar writer.
+ *
+ * @author Cédric Bosdonnat
+ *
+ */
@SuppressWarnings("restriction")
public class UnoManifestProvider extends ManifestProvider {
private String mRegClass;
+ /**
+ * Constructor.
+ *
+ * @param pRegClassname the registration class name
+ */
public UnoManifestProvider( String pRegClassname ) {
mRegClass = pRegClassname;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
- protected void putAdditionalEntries(Manifest manifest,
- JarPackageData jarPackage) {
+ protected void putAdditionalEntries(Manifest pManifest,
+ JarPackageData pJarPackage) {
Name name = new Attributes.Name( "RegistrationClassName" ); //$NON-NLS-1$
- manifest.getMainAttributes().put( name, mRegClass );
+ pManifest.getMainAttributes().put( name, mRegClass );
}
}
diff --git a/java/source/org/openoffice/ide/eclipse/java/client/JODContainerPage.java b/java/source/org/openoffice/ide/eclipse/java/client/JODContainerPage.java
index 0269ed1..0023394 100644
--- a/java/source/org/openoffice/ide/eclipse/java/client/JODContainerPage.java
+++ b/java/source/org/openoffice/ide/eclipse/java/client/JODContainerPage.java
@@ -104,7 +104,8 @@ public class JODContainerPage extends WizardPage implements
body.setLayout( new GridLayout( LAYOUT_COLS, false ) );
// SLF4J boolean row
- mSlf4jRow = new BooleanRow( body, new String(), Messages.getString("JODContainerPage.SLF4JLabel") ); //$NON-NLS-1$
+ mSlf4jRow = new BooleanRow( body, new String(),
+ Messages.getString("JODContainerPage.SLF4JLabel") ); //$NON-NLS-1$
mSlf4jRow.setValue( mSlf4j );
mSlf4jRow.setFieldChangedListener( new IFieldChangedListener() {
diff --git a/java/source/org/openoffice/ide/eclipse/java/messages.properties b/java/source/org/openoffice/ide/eclipse/java/messages.properties
index a49c3f6..383268b 100644
--- a/java/source/org/openoffice/ide/eclipse/java/messages.properties
+++ b/java/source/org/openoffice/ide/eclipse/java/messages.properties
@@ -3,6 +3,8 @@ Language.NatureSettingFailed=Setting Java nature failed
Language.UnreadableOutputError=Unreadable output error
Language.CreateCodeError=Code generation failed
Language.GetClasspathError=Failed to get the project classpath
+JavaExportPart.AntFile=Ant build file
+JavaExportPart.SaveAntScript=Save as Ant script
JavaWizardPage.IncludeTestClasses=Include base classes for tests
JavaWizardPage.JavaVersion=Java version
JavaWizardPage.JavaVersionTooltip=Defines the minimal required java version of the project.
More information about the ooo-build-commit
mailing list