[ooo-build-commit] ooeclipse: Branch 'master' - 2 commits

Cédric Bosdonnat cbosdo at kemper.freedesktop.org
Tue Nov 30 13:26:27 PST 2010


 core/source/org/openoffice/ide/eclipse/core/gui/PackageContentSelector.java         |   68 ++++++++--
 core/source/org/openoffice/ide/eclipse/core/launch/office/OfficeLaunchDelegate.java |   67 ++-------
 core/source/org/openoffice/ide/eclipse/core/launch/office/PackageConfigTab.java     |   53 +++++--
 core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java |   40 -----
 packager/META-INF/MANIFEST.MF                                                       |    1 
 packager/build.properties                                                           |    7 -
 6 files changed, 127 insertions(+), 109 deletions(-)

New commits:
commit 6f25a7248561976c60be27255797b8b440d6efae
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Tue Nov 30 22:25:47 2010 +0100

    [Core] Shared some code between the export wizard and oolaunch

diff --git a/core/source/org/openoffice/ide/eclipse/core/gui/PackageContentSelector.java b/core/source/org/openoffice/ide/eclipse/core/gui/PackageContentSelector.java
index b1194b6..3271a16 100644
--- a/core/source/org/openoffice/ide/eclipse/core/gui/PackageContentSelector.java
+++ b/core/source/org/openoffice/ide/eclipse/core/gui/PackageContentSelector.java
@@ -30,6 +30,7 @@
  ************************************************************************/
 package org.openoffice.ide.eclipse.core.gui;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -50,9 +51,13 @@ 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.PluginLogger;
+import org.openoffice.ide.eclipse.core.internal.helpers.UnoidlProjectHelper;
 import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
 import org.openoffice.ide.eclipse.core.model.ProjectsManager;
+import org.openoffice.ide.eclipse.core.model.language.ILanguageBuilder;
+import org.openoffice.ide.eclipse.core.model.utils.SystemHelper;
 import org.openoffice.ide.eclipse.core.utils.FilesFinder;
+import org.openoffice.plugin.core.model.UnoPackage;
 
 /**
  * Common helper GUI part to select elements to add in the UNO package to be exported.
@@ -64,6 +69,7 @@ import org.openoffice.ide.eclipse.core.utils.FilesFinder;
 public class PackageContentSelector extends Composite {
     
     private ResourceTreeAndListGroup mResourceGroup;
+    private IUnoidlProject mProject;
     
     /**
      * Constructor based on SWT composite's one.
@@ -90,22 +96,22 @@ public class PackageContentSelector extends Composite {
      * 
      * @param pPrj the project to show.
      */
-    public void setProject(IProject pPrj) {
-        mResourceGroup.setRoot( pPrj );
+    public void setProject(IUnoidlProject pPrj) {
+        mProject = pPrj;
+        IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( mProject.getName() );
+        mResourceGroup.setRoot( prj );
     }
     
     /**
-     * Populate the resource view with some fresh data.
-     * 
-     * @param pSelectedProject the UNO project for which to show the resources
+     * Populate the resource view with some default data (mainly the XCU / XCS files).
      */
-    public void loadData( IUnoidlProject pSelectedProject ) {
+    public void loadDefaults( ) {
         // Select the XCU / XCS files by default
-        IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( pSelectedProject.getName() );
+        IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( mProject.getName() );
         FilesFinder finder = new FilesFinder( 
             new String[] { IUnoidlProject.XCU_EXTENSION, IUnoidlProject.XCS_EXTENSION } );
         try {
-            finder.addExclude( pSelectedProject.getDistFolder().getFullPath() );
+            finder.addExclude( mProject.getDistFolder().getFullPath() );
             prj.accept( finder );
         } catch (CoreException e) {
             PluginLogger.error("Could not visit the project's content.", e);
@@ -137,6 +143,52 @@ public class PackageContentSelector extends Composite {
     }
     
     /**
+     * Convenience method to create and populate the UnoPackage.
+     * 
+     * @param pProject the project to export
+     * @param pDestFile the file to export to
+     * @param pResources the files and folder to add to the OXT
+     * 
+     * @return the populated package model
+     * 
+     * @throws Exception if anything goes wrong.
+     */
+    public static UnoPackage createPackage( IUnoidlProject pProject, File pDestFile, 
+                    List<?> pResources ) throws Exception {
+        UnoPackage pack = null;
+        
+        File prjFile = SystemHelper.getFile( pProject );
+        
+        // Export the library
+        IFile library = null;
+        ILanguageBuilder langBuilder = pProject.getLanguage().getLanguageBuidler();
+        library = langBuilder.createLibrary( pProject );
+
+        // Create the package model
+        pack = UnoidlProjectHelper.createMinimalUnoPackage( pProject, pDestFile );
+        pack.addToClean( SystemHelper.getFile( library ) );
+        
+        IFile descrFile = pProject.getFile( IUnoidlProject.DESCRIPTION_FILENAME );
+        if ( descrFile.exists() ) {
+            File resFile = SystemHelper.getFile( descrFile );
+            pack.addContent( UnoPackage.getPathRelativeToBase( resFile, prjFile ),
+                            resFile );
+        }
+
+        // Add the additional content to the package
+        for (Object item : pResources) {
+            if ( item instanceof IResource ) {
+                File resFile = SystemHelper.getFile( (IResource)item );
+                pack.addContent( UnoPackage.getPathRelativeToBase( resFile, prjFile ),
+                                resFile );
+            }
+        }
+        
+        
+        return pack;
+    }
+    
+    /**
      * @param pResourceType the type of the resources to return by the provider.
      * 
      * @return a content provider for <code>IResource</code>s that returns 
diff --git a/core/source/org/openoffice/ide/eclipse/core/launch/office/OfficeLaunchDelegate.java b/core/source/org/openoffice/ide/eclipse/core/launch/office/OfficeLaunchDelegate.java
index b6bf935..89b12b3 100644
--- a/core/source/org/openoffice/ide/eclipse/core/launch/office/OfficeLaunchDelegate.java
+++ b/core/source/org/openoffice/ide/eclipse/core/launch/office/OfficeLaunchDelegate.java
@@ -33,11 +33,11 @@ package org.openoffice.ide.eclipse.core.launch.office;
 import java.io.File;
 import java.io.IOException;
 import java.text.MessageFormat;
-import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
-import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -50,15 +50,12 @@ import org.eclipse.debug.core.model.LaunchConfigurationDelegate;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
 import org.openoffice.ide.eclipse.core.PluginLogger;
-import org.openoffice.ide.eclipse.core.internal.helpers.UnoidlProjectHelper;
-import org.openoffice.ide.eclipse.core.internal.model.UnoidlProject;
+import org.openoffice.ide.eclipse.core.gui.PackageContentSelector;
 import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
 import org.openoffice.ide.eclipse.core.model.ProjectsManager;
 import org.openoffice.ide.eclipse.core.model.config.IOOo;
 import org.openoffice.ide.eclipse.core.model.config.NullExtraOptionsProvider;
-import org.openoffice.ide.eclipse.core.model.language.ILanguageBuilder;
 import org.openoffice.ide.eclipse.core.model.utils.SystemHelper;
-import org.openoffice.ide.eclipse.core.utils.FilesFinder;
 import org.openoffice.plugin.core.model.UnoPackage;
 
 /**
@@ -91,7 +88,7 @@ public class OfficeLaunchDelegate extends LaunchConfigurationDelegate {
                 return;
             }
 
-            String prjName = pConfiguration.getAttribute(IOfficeLaunchConstants.PROJECT_NAME, ""); //$NON-NLS-1$
+            String prjName = pConfiguration.getAttribute(IOfficeLaunchConstants.PROJECT_NAME, new String() );
             boolean useCleanUserInstalation = pConfiguration.getAttribute(
                             IOfficeLaunchConstants.CLEAN_USER_INSTALLATION, false);
 
@@ -105,7 +102,8 @@ public class OfficeLaunchDelegate extends LaunchConfigurationDelegate {
                         userInstallation = userInstallationFolder.getLocation();
                     }
 
-                    File destFile = exportComponent(pMonitor, prj);
+                    List<IResource> resources = PackageConfigTab.getResources( pConfiguration );
+                    File destFile = exportComponent( prj, resources );
                     pMonitor.worked(1);
 
                     // Try to source ooenv if it exists
@@ -191,51 +189,26 @@ public class OfficeLaunchDelegate extends LaunchConfigurationDelegate {
     }
 
     /**
-     * Will bild and export the .oxt file.
+     * Will build and export the .oxt file.
      * 
-     * @param pMonitor
-     *            a monitor to report progress to.
      * @param pPrj
-     *            te target project.
+     *            the target project.
+     * @param pResources
+     *            the resources to add to the package
+     *            
      * @return the file containing the .oxt file.
      * @throws Exception
      *             if something goes wrong.
      */
-    private File exportComponent(IProgressMonitor pMonitor, IUnoidlProject pPrj) throws Exception {
-
-        // TODO Repair this one!
-//        ILanguageBuilder langBuilder = pPrj.getLanguage().getLanguageBuidler();
-//        IPath libraryPath = langBuilder.createLibrary(pPrj);
-//
-//        IFolder distFolder = pPrj.getFolder(pPrj.getDistPath());
-//
-//        File destFile = distFolder.getFile(pPrj.getName() + ".oxt").getLocation().toFile();
-//        UnoPackage pack = UnoidlProjectHelper.createMinimalUnoPackage(pPrj, destFile);
-//        pack.addToClean(libraryPath);
-//
-//        // FIXME this code is duplicated.
-//        IFile descrFile = pPrj.getFile(IUnoidlProject.DESCRIPTION_FILENAME);
-//        if (descrFile.exists()) {
-//            pack.addContent(descrFile);
-//        }
-//
-//        // Select the XCU / XCS files by default
-//        FilesFinder finder = new FilesFinder(
-//                        new String[] { IUnoidlProject.XCU_EXTENSION, IUnoidlProject.XCS_EXTENSION });
-//        finder.addExclude(pPrj.getDistFolder().getFullPath());
-//        try {
-//            ((UnoidlProject) pPrj).getProject().accept(finder);
-//        } catch (CoreException e) {
-//            // Nothing to log here
-//        }
-//        ArrayList<IFile> files = finder.getResults();
-//        for (IFile aFile : files) {
-//            pack.addContent(aFile);
-//        }
-//
-//        pack.close(pMonitor);
-//        return destFile;
-        return null;
+    private File exportComponent(IUnoidlProject pPrj, List<IResource> pResources) throws Exception {
+
+        IFolder distFolder = pPrj.getFolder(pPrj.getDistPath());
+        File destFile = distFolder.getFile(pPrj.getName() + ".oxt").getLocation().toFile();
+        
+        UnoPackage pack = PackageContentSelector.createPackage( pPrj, destFile, pResources );
+
+        pack.close( );
+        return destFile;
     }
 
 }
diff --git a/core/source/org/openoffice/ide/eclipse/core/launch/office/PackageConfigTab.java b/core/source/org/openoffice/ide/eclipse/core/launch/office/PackageConfigTab.java
index b463f44..a27d535 100644
--- a/core/source/org/openoffice/ide/eclipse/core/launch/office/PackageConfigTab.java
+++ b/core/source/org/openoffice/ide/eclipse/core/launch/office/PackageConfigTab.java
@@ -62,6 +62,35 @@ public class PackageConfigTab extends AbstractLaunchConfigurationTab {
     PackageContentSelector mContentSelector;
     
     /**
+     * Get the selected resources stored in a launch configuration.
+     *  
+     * @param pConfiguration the configuration to extract the infos from
+     * 
+     * @return the list of resources extracted
+     * 
+     * @throws CoreException if any of the needed properties is missing in 
+     *      the launch configuration
+     */
+    public static List<IResource> getResources( ILaunchConfiguration pConfiguration ) throws CoreException {
+        ArrayList<IResource> selected = new ArrayList<IResource>();
+        
+        String prjName = pConfiguration.getAttribute( IOfficeLaunchConstants.PROJECT_NAME, new String() );
+        IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( prjName );
+        
+        String paths = pConfiguration.getAttribute( IOfficeLaunchConstants.CONTENT_PATHS, new String() );
+        String[] pathsItems = paths.split( IOfficeLaunchConstants.PATHS_SEPARATOR );
+            
+        for (String path : pathsItems) {
+            IResource res = prj.findMember( path );
+            if ( res != null ) {
+                selected.add( res );
+            }
+        }
+        
+        return selected;
+    }
+    
+    /**
      * {@inheritDoc}
      */
     public void createControl(Composite pParent) {
@@ -89,28 +118,19 @@ public class PackageConfigTab extends AbstractLaunchConfigurationTab {
     public Image getImage() {
         return OOEclipsePlugin.getImage(ImagesConstants.PACKAGE_CONTENT);
     }
-
+    
     /**
      * {@inheritDoc}
      */
     public void initializeFrom(ILaunchConfiguration pConfiguration) {
         try {
             String prjName = pConfiguration.getAttribute( IOfficeLaunchConstants.PROJECT_NAME, new String() );
-            IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( prjName );
-            mContentSelector.setProject( prj );
+            mContentSelector.setProject( ProjectsManager.getProject( prjName ) );
             
-            String paths = pConfiguration.getAttribute( IOfficeLaunchConstants.CONTENT_PATHS, new String() );
-            if ( paths.isEmpty() ) {
-                mContentSelector.loadData( ProjectsManager.getProject( prjName ) );
+            List<IResource> selected = getResources( pConfiguration );
+            if ( selected.isEmpty() ) {
+                mContentSelector.loadDefaults();
             } else {
-                String[] pathsItems = paths.split( IOfficeLaunchConstants.PATHS_SEPARATOR );
-                ArrayList<IResource> selected = new ArrayList<IResource>();
-                for (String path : pathsItems) {
-                    IResource res = prj.findMember( path );
-                    if ( res != null ) {
-                        selected.add( res );
-                    }
-                }
                 mContentSelector.setSelected( selected );
             }
         } catch (CoreException e) {
@@ -144,10 +164,9 @@ public class PackageConfigTab extends AbstractLaunchConfigurationTab {
         try {
             String prjName = pConfiguration.getAttribute( IOfficeLaunchConstants.PROJECT_NAME, new String() );
             if ( !prjName.isEmpty() ) {
-                IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( prjName );
-                mContentSelector.setProject( prj );
+                mContentSelector.setProject( ProjectsManager.getProject( prjName ) );
                 
-                mContentSelector.loadData( ProjectsManager.getProject( prjName ) );
+                mContentSelector.loadDefaults();
             }
         } catch (CoreException e) {
             // Don't do anything in that case
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
index 17be342..7c1a624 100644
--- a/core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java
+++ b/core/source/org/openoffice/ide/eclipse/core/wizards/pages/UnoPackageExportPage.java
@@ -32,9 +32,7 @@ package org.openoffice.ide.eclipse.core.wizards.pages;
 
 import java.io.File;
 import java.text.MessageFormat;
-import java.util.List;
 
-import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -59,12 +57,9 @@ import org.openoffice.ide.eclipse.core.OOEclipsePlugin;
 import org.openoffice.ide.eclipse.core.PluginLogger;
 import org.openoffice.ide.eclipse.core.gui.PackageContentSelector;
 import org.openoffice.ide.eclipse.core.i18n.ImagesConstants;
-import org.openoffice.ide.eclipse.core.internal.helpers.UnoidlProjectHelper;
 import org.openoffice.ide.eclipse.core.model.IUnoidlProject;
 import org.openoffice.ide.eclipse.core.model.ProjectsManager;
 import org.openoffice.ide.eclipse.core.model.config.IOOo;
-import org.openoffice.ide.eclipse.core.model.language.ILanguageBuilder;
-import org.openoffice.ide.eclipse.core.model.utils.SystemHelper;
 import org.openoffice.ide.eclipse.core.wizards.Messages;
 import org.openoffice.plugin.core.model.UnoPackage;
 
@@ -150,7 +145,7 @@ public class UnoPackageExportPage extends WizardPage {
             i++;
         }
         
-        mContentSelector.loadData( mSelectedProject );
+        mContentSelector.loadDefaults( );
         
         restoreWidgetValues();
     }
@@ -183,7 +178,6 @@ public class UnoPackageExportPage extends WizardPage {
             
             public void modifyText(ModifyEvent pE) {
                 int id = mProjectsList.getSelectionIndex();
-                IProject prj = ResourcesPlugin.getWorkspace().getRoot().getProject( mSelectedProject.getName() );
                 if ( id != -1 ) {
                     String name = mProjectsList.getItem( id );
                     IUnoidlProject unoprj = ProjectsManager.getProject( name );
@@ -191,8 +185,7 @@ public class UnoPackageExportPage extends WizardPage {
                     
                     // Change the project in the manifest page
                     mManifestPage.setProject( unoprj );
-                    
-                    mContentSelector.setProject( prj );
+                    mContentSelector.setProject( unoprj );
                 }
                 
                 setPageComplete( checkPageCompletion() );
@@ -349,33 +342,8 @@ public class UnoPackageExportPage extends WizardPage {
             }
 
             if ( doit ) {
-                File prjFile = SystemHelper.getFile( mSelectedProject );
-                
-                // Export the library
-                IFile library = null;
-                ILanguageBuilder langBuilder = mSelectedProject.getLanguage().getLanguageBuidler();
-                library = langBuilder.createLibrary( mSelectedProject );
-
-                // Create the package model
-                pack = UnoidlProjectHelper.createMinimalUnoPackage( mSelectedProject, destFile );
-                pack.addToClean( SystemHelper.getFile( library ) );
-                
-                IFile descrFile = mSelectedProject.getFile( IUnoidlProject.DESCRIPTION_FILENAME );
-                if ( descrFile.exists() ) {
-                    File resFile = SystemHelper.getFile( descrFile );
-                    pack.addContent( UnoPackage.getPathRelativeToBase( resFile, prjFile ),
-                                    resFile );
-                }
-
-                // Add the additional content to the package
-                List<?> items = mContentSelector.getSelected();
-                for (Object item : items) {
-                    if ( item instanceof IResource ) {
-                        File resFile = SystemHelper.getFile( (IResource)item );
-                        pack.addContent( UnoPackage.getPathRelativeToBase( resFile, prjFile ),
-                                        resFile );
-                    }
-                }
+                pack = PackageContentSelector.createPackage( mSelectedProject, destFile, 
+                                mContentSelector.getSelected());
                 
                 // Run the deployer
                 if ( mAutodeployBox.getSelection() ) {
commit d907aafe0fce19a3b50bf9c073545f4e95681852
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Tue Nov 30 22:24:02 2010 +0100

    [Packager] Fixed some plugin runtime problems

diff --git a/packager/META-INF/MANIFEST.MF b/packager/META-INF/MANIFEST.MF
index a271484..4c698c3 100644
--- a/packager/META-INF/MANIFEST.MF
+++ b/packager/META-INF/MANIFEST.MF
@@ -8,3 +8,4 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.openoffice.plugin.core.model,
  org.openoffice.plugin.core.utils
+Bundle-ClassPath: source/ooo-plugin-packager-core/src/main/java/
diff --git a/packager/build.properties b/packager/build.properties
index b2b1ead..a7395f8 100644
--- a/packager/build.properties
+++ b/packager/build.properties
@@ -1,2 +1,7 @@
 output.. = bin/
-bin.includes = META-INF/
+bin.includes = META-INF/,\
+               bin/org/,\
+               source/ooo-plugin-packager-core/src/main/java/
+src.includes = bin/org/,\
+               source/,\
+               META-INF/


More information about the ooo-build-commit mailing list