[jbosstools-commits] JBoss Tools SVN: r42694 - in trunk/maven/plugins: org.jboss.tools.maven.conversion.ui and 13 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Tue Jul 24 12:47:41 EDT 2012
Author: fbricon
Date: 2012-07-24 12:47:41 -0400 (Tue, 24 Jul 2012)
New Revision: 42694
Added:
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.classpath
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.gitignore
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.project
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.jdt.core.prefs
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.m2e.core.prefs
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/META-INF/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/META-INF/MANIFEST.MF
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/build.properties
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/error_st_obj.gif
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/find_obj.gif
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/jar_obj.gif
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/loader.gif
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/passed.png
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/projects.gif
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.properties
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.xml
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/pom.xml
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/Messages.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConversionUtils.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConvertToMavenDependencyWizard.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/DependencyConversionPreviewPage.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/EditDependencyDialog.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/IdentifyMavenDependencyPage.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/ConvertToMavenDependencyHandler.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/IdentifyJarJob.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/ClasspathConversionParticipant.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/GenericCommandActionDelegate.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/MavenDependencyConversionActivator.java
trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/messages.properties
Modified:
trunk/maven/plugins/pom.xml
Log:
JBIDE-8973 : initial jar conversion plugin import
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui
___________________________________________________________________
Added: svn:ignore
+ target
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.classpath
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.classpath (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.classpath 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src/"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.gitignore
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.gitignore (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.gitignore 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,2 @@
+/target
+/bin
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.project
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.project (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.project 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.maven.conversion.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.jdt.core.prefs 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.m2e.core.prefs
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.m2e.core.prefs (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/.settings/org.eclipse.m2e.core.prefs 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/META-INF/MANIFEST.MF (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/META-INF/MANIFEST.MF 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %BundleName
+Bundle-SymbolicName: org.jboss.tools.maven.conversion.ui;singleton:=true
+Bundle-Version: 1.4.0.qualifier
+Bundle-Activator: org.jboss.tools.maven.conversion.ui.internal.MavenDependencyConversionActivator
+Require-Bundle: org.eclipse.ui;bundle-version="3.7.0",
+ org.eclipse.core.runtime;bundle-version="3.7.0",
+ org.eclipse.jdt.core;bundle-version="3.7.0",
+ org.eclipse.jdt.ui;bundle-version="3.7.0",
+ org.eclipse.core.variables;bundle-version="3.2.500",
+ org.eclipse.core.resources,
+ org.eclipse.jst.j2ee.ui;bundle-version="1.1.500",
+ org.eclipse.ui.ide;bundle-version="3.7.0",
+ org.jboss.tools.maven.sourcelookup.core;bundle-version="1.4.0",
+ org.eclipse.m2e.core.ui;bundle-version="1.1.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: %BundleVendor
+Bundle-Localization: plugin
+Export-Package: org.jboss.tools.maven.conversion.ui,
+ org.jboss.tools.maven.conversion.ui.dialog,
+ org.jboss.tools.maven.conversion.ui.handlers
+Bundle-ActivationPolicy: lazy
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/build.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/build.properties (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/build.properties 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties,\
+ icons/
+src.includes = src/
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/error_st_obj.gif
===================================================================
(Binary files differ)
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/error_st_obj.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/find_obj.gif
===================================================================
(Binary files differ)
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/find_obj.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/jar_obj.gif
===================================================================
(Binary files differ)
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/jar_obj.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/loader.gif
===================================================================
(Binary files differ)
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/loader.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/passed.png
===================================================================
(Binary files differ)
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/passed.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/projects.gif
===================================================================
(Binary files differ)
Property changes on: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/icons/projects.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.properties (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.properties 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,3 @@
+#Properties file for org.jboss.tools.maven.conversion.ui
+BundleVendor = JBoss by Red Hat
+BundleName = JBoss Tools Maven Conversion UI
\ No newline at end of file
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.xml
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.xml (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/plugin.xml 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.5"?>
+<plugin>
+ <extension point="org.eclipse.ui.commands">
+ <command
+ id="org.jboss.tools.maven.conversion.ui.commands.convertToMavenDependencies"
+ name="Convert to Maven Dependency..."
+ defaultHandler="org.jboss.tools.maven.conversion.ui.handlers.ConvertToMavenDependencyHandler"
+ >
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.ui.popup.any?after=additions">
+
+ <command
+ commandId="org.jboss.tools.maven.conversion.ui.commands.convertToMavenDependencies"
+ style="push">
+ <visibleWhen>
+ <or>
+ <with variable="activeMenuSelection">
+ <iterate>
+ <or>
+ <adapt type="org.eclipse.jdt.internal.ui.packageview.ClassPathContainer" />
+ <adapt type="org.eclipse.jdt.core.IPackageFragmentRoot"/>
+ </or>
+ </iterate>
+ </with>
+ </or>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+
+
+ <extension
+ point="org.eclipse.m2e.core.projectConversionParticipants">
+ <projectConversionParticipant
+ class="org.jboss.tools.maven.conversion.ui.internal.ClasspathConversionParticipant"
+ id="org.jboss.tools.maven.conversion.ui.internal.ClasspathConversionParticipant"
+ name="Classpath conversion participant"
+ nature="org.eclipse.jdt.core.javanature">
+ </projectConversionParticipant>
+ </extension>
+</plugin>
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/pom.xml
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/pom.xml (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/pom.xml 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools.maven</groupId>
+ <artifactId>plugins</artifactId>
+ <version>1.4.0-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.maven.plugins</groupId>
+ <artifactId>org.jboss.tools.maven.conversion.ui</artifactId>
+
+ <packaging>eclipse-plugin</packaging>
+</project>
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/Messages.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/Messages.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/Messages.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,44 @@
+/*************************************************************************************
+ * Copyright (c) 2008-2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.maven.conversion.ui;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ *
+ * @author Fred Bricon
+ *
+ */
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.jboss.tools.maven.conversion.ui.messages"; //$NON-NLS-1$
+
+ public static String Convert_Maven_Dependency;
+
+ public static String Maven_Configuration_Warning;
+
+ public static String Maven_Configuration_Dialog_Warning;
+
+ public static String Jre_Warning;
+
+ public static String Jre_Dialog_Warning;
+
+ public static String Gradle_Configuration_Warning;
+
+ public static String Gradle_Configuration_Dialog_Warning;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConversionUtils.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConversionUtils.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConversionUtils.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Theodora Yeung (tyeung at bea.com) - ensure that JarPackageFragmentRoot make it into cache
+ * before its contents
+ * (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=102422)
+ * Stephan Herrmann - Contribution for Bug 346010 - [model] strange initialization dependency in OptionTests
+ * Terry Parker <tparker at google.com> - DeltaProcessor misses state changes in archive files, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=357425
+ * Red Hat - copied code from {@link org.eclipse.jdt.internal.core.JavaModelManager.#getZipFile(IPath)}
+ *******************************************************************************/
+package org.jboss.tools.maven.conversion.ui.dialog;
+
+import java.io.File;
+import java.net.URI;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.internal.core.util.Messages;
+import org.eclipse.jdt.internal.core.util.Util;
+import org.jboss.tools.maven.conversion.ui.internal.MavenDependencyConversionActivator;
+
+ at SuppressWarnings("restriction")
+public class ConversionUtils {
+
+
+ /**
+ * Returns the underlying {@link File} from a {@link IClasspathEntry}.
+ * <br/>
+ * Part of the code comes from {@link org.eclipse.jdt.internal.core.JavaModelManager.#getZipFile(IPath)}
+ * @param cpe
+ * @return
+ * @throws CoreException
+ */
+ public static File getFile(IClasspathEntry cpe) throws CoreException {
+ IPath path = cpe.getPath();
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ IResource file = root.findMember(path);
+ File localFile = null;
+ if (file != null) {
+ // internal resource
+ URI location;
+ if (file.getType() != IResource.FILE || (location = file.getLocationURI()) == null) {
+ throw new CoreException(new Status(IStatus.ERROR, MavenDependencyConversionActivator.PLUGIN_ID, -1, Messages.bind(Messages.file_notFound, path.toString()), null));
+ }
+ localFile = Util.toLocalFile(location, null/*no progress availaible*/);
+ if (localFile == null)
+ throw new CoreException(new Status(IStatus.ERROR, MavenDependencyConversionActivator.PLUGIN_ID, -1, Messages.bind(Messages.file_notFound, path.toString()), null));
+ } else {
+ // external resource -> it is ok to use toFile()
+ localFile= path.toFile();
+ }
+ return localFile;
+ }
+
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConvertToMavenDependencyWizard.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConvertToMavenDependencyWizard.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/ConvertToMavenDependencyWizard.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,56 @@
+package org.jboss.tools.maven.conversion.ui.dialog;
+
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.model.Dependency;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jface.wizard.Wizard;
+
+public class ConvertToMavenDependencyWizard extends Wizard {
+
+ private IProject project;
+ private Set<IClasspathEntry> entries;
+
+
+ IdentifyMavenDependencyPage identificationPage;
+ private List<Dependency> dependencies;
+
+ public ConvertToMavenDependencyWizard(IProject project, Set<IClasspathEntry> entries) {
+ this.project = project;
+ this.entries = entries;
+ String title = "Convert to Maven ";
+ if (entries.size() > 1) {
+ title += "Dependencies";
+ } else {
+ title += "Dependency";
+ }
+ setWindowTitle(title);
+ }
+
+
+ @Override
+ public void addPages() {
+ identificationPage = new IdentifyMavenDependencyPage(project, entries);
+ addPage(identificationPage);
+ //DependencyConversionPreviewPage page2 = new DependencyConversionPreviewPage("Foo");
+ //addPage(page2);
+ }
+
+
+ @Override
+ public boolean performFinish() {
+ if (identificationPage != null) {
+ dependencies = identificationPage.getDependencies();
+ }
+ return true;
+ }
+
+
+ public List<Dependency> getDependencies() {
+ return dependencies;
+ }
+
+
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/DependencyConversionPreviewPage.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/DependencyConversionPreviewPage.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/DependencyConversionPreviewPage.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,47 @@
+package org.jboss.tools.maven.conversion.ui.dialog;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+public class DependencyConversionPreviewPage extends WizardPage {
+
+ private Button deleteJarsBtn;
+
+ private boolean deleteJars;
+
+ protected DependencyConversionPreviewPage(String pageName) {
+ super(pageName);
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NONE);
+ container.setEnabled(true);
+ setControl(container);
+
+ deleteJarsBtn = addCheckButton(container, "Delete local project jars after conversion", deleteJars);
+
+ }
+
+ private Button addCheckButton(Composite container, String label,
+ boolean selected) {
+ Button checkBtn = new Button(container, SWT.CHECK);
+ checkBtn.setText(label);
+ checkBtn.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1));
+ checkBtn.setSelection(selected);
+ return checkBtn;
+ }
+
+ @Override
+ public boolean isPageComplete() {
+ return false;
+ }
+
+ public boolean isDeleteJars() {
+ return deleteJars;
+ }
+
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/EditDependencyDialog.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/EditDependencyDialog.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/EditDependencyDialog.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2008-2011 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sonatype, Inc. - initial API and implementation
+ *******************************************************************************/
+
+package org.jboss.tools.maven.conversion.ui.dialog;
+
+import static org.eclipse.m2e.core.ui.internal.util.Util.nvl;
+
+import org.apache.maven.model.Dependency;
+import org.eclipse.m2e.core.ui.internal.Messages;
+import org.eclipse.m2e.core.ui.internal.util.M2EUIUtils;
+import org.eclipse.swt.SWT;
+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.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+
+
+public class EditDependencyDialog extends SelectionStatusDialog {
+ private static final String[] TYPES = new String[] {"jar", "war", "rar", "ear", "par", "ejb", "ejb-client", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ "test-jar", "java-source", "javadoc", "maven-plugin", "pom"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+
+ private String[] scopes = new String[] {"compile", "provided", "runtime", "test", "system"};
+
+ protected Text groupIdText;
+
+ protected Text artifactIdText;
+
+ protected Text versionText;
+
+ protected Text classifierText;
+
+ protected Combo typeCombo;
+
+ protected Combo scopeCombo;
+
+ protected Text systemPathText;
+
+ protected Button optionalButton;
+
+ private Dependency dependency;
+
+/**
+ *
+ * @param parent
+ * @param dependencyManagement
+ * @param project can be null, only used for indexer search as scope
+ * @param mavenProject
+ */
+ public EditDependencyDialog(Shell parent) {
+ super(parent);
+ setShellStyle(getShellStyle() | SWT.RESIZE);
+ setTitle("Edit dependency");
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Composite superComposite = (Composite) super.createDialogArea(parent);
+
+ Composite composite = new Composite(superComposite, SWT.NONE);
+ composite.setLayout(new GridLayout(3, false));
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ Label groupIdLabel = new Label(composite, SWT.NONE);
+ groupIdLabel.setText(Messages.EditDependencyDialog_groupId_label);
+
+ groupIdText = new Text(composite, SWT.BORDER);
+ GridData gd_groupIdText = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
+ gd_groupIdText.horizontalIndent = 4;
+ groupIdText.setLayoutData(gd_groupIdText);
+ //ProposalUtil.addGroupIdProposal(project, groupIdText, Packaging.ALL);
+ M2EUIUtils.addRequiredDecoration(groupIdText);
+
+ Label artifactIdLabel = new Label(composite, SWT.NONE);
+ artifactIdLabel.setText("Artifact Id");
+
+ artifactIdText = new Text(composite, SWT.BORDER);
+ GridData gd_artifactIdText = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
+ gd_artifactIdText.horizontalIndent = 4;
+ artifactIdText.setLayoutData(gd_artifactIdText);
+ //ProposalUtil.addArtifactIdProposal(project, groupIdText, artifactIdText, Packaging.ALL);
+ M2EUIUtils.addRequiredDecoration(artifactIdText);
+
+ Label versionLabel = new Label(composite, SWT.NONE);
+ versionLabel.setText(Messages.EditDependencyDialog_version_label);
+
+ versionText = new Text(composite, SWT.BORDER);
+ GridData versionTextData = new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1);
+ versionTextData.horizontalIndent = 4;
+ versionTextData.widthHint = 200;
+ versionText.setLayoutData(versionTextData);
+ //ProposalUtil.addVersionProposal(project, mavenproject, groupIdText, artifactIdText, versionText, Packaging.ALL);
+
+ Label classifierLabel = new Label(composite, SWT.NONE);
+ classifierLabel.setText(Messages.EditDependencyDialog_classifier_label);
+
+ classifierText = new Text(composite, SWT.BORDER);
+ GridData gd_classifierText = new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1);
+ gd_classifierText.horizontalIndent = 4;
+ gd_classifierText.widthHint = 200;
+ classifierText.setLayoutData(gd_classifierText);
+ //ProposalUtil
+ // .addClassifierProposal(project, groupIdText, artifactIdText, versionText, classifierText, Packaging.ALL);
+
+ Label typeLabel = new Label(composite, SWT.NONE);
+ typeLabel.setText(Messages.EditDependencyDialog_type_label);
+
+ typeCombo = new Combo(composite, SWT.NONE);
+ typeCombo.setItems(TYPES);
+ GridData gd_typeText = new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1);
+ gd_typeText.horizontalIndent = 4;
+ gd_typeText.widthHint = 120;
+ typeCombo.setLayoutData(gd_typeText);
+
+ Label scopeLabel = new Label(composite, SWT.NONE);
+ scopeLabel.setText(Messages.EditDependencyDialog_scope_label);
+
+ scopeCombo = new Combo(composite, SWT.NONE);
+ scopeCombo.setItems(scopes);
+ GridData gd_scopeText = new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1);
+ gd_scopeText.horizontalIndent = 4;
+ gd_scopeText.widthHint = 120;
+ scopeCombo.setLayoutData(gd_scopeText);
+
+ Label systemPathLabel = new Label(composite, SWT.NONE);
+ systemPathLabel.setText(Messages.EditDependencyDialog_systemPath_label);
+
+ systemPathText = new Text(composite, SWT.BORDER);
+ GridData gd_systemPathText = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
+ gd_systemPathText.horizontalIndent = 4;
+ gd_systemPathText.widthHint = 200;
+ systemPathText.setLayoutData(gd_systemPathText);
+
+// selectSystemPathButton = new Button(composite, SWT.NONE);
+// selectSystemPathButton.setText("Select...");
+
+ new Label(composite, SWT.NONE);
+
+ optionalButton = new Button(composite, SWT.CHECK);
+ optionalButton.setText(Messages.EditDependencyDialog_optional_checkbox);
+ GridData gd_optionalButton = new GridData(SWT.LEFT, SWT.TOP, false, false, 2, 1);
+ gd_optionalButton.horizontalIndent = 4;
+ optionalButton.setLayoutData(gd_optionalButton);
+
+ composite.setTabList(new Control[] {groupIdText, artifactIdText, versionText, classifierText, typeCombo,
+ scopeCombo, systemPathText, /*selectSystemPathButton,*/optionalButton});
+
+ setDependency(dependency);
+
+ return superComposite;
+ }
+
+ @Override
+ protected void computeResult() {
+ if (dependency == null) {
+ dependency = new Dependency();
+ }
+ final String groupId = valueOrNull(groupIdText.getText());
+ final String artifactId = valueOrNull(artifactIdText.getText());
+ final String version = valueOrNull(versionText.getText());
+ final String type = valueOrNull(typeCombo.getText());
+ final String scope = valueOrNull(scopeCombo.getText());
+ final String classifier = valueOrNull(classifierText.getText());
+ final String system = valueOrNull(systemPathText.getText());
+
+ dependency.setArtifactId(artifactId);
+ dependency.setGroupId(groupId);
+ dependency.setType(type);
+ dependency.setVersion(version);
+ dependency.setScope(scope);
+ dependency.setClassifier(classifier);
+ dependency.setSystemPath(system);
+ boolean optional = optionalButton.getSelection();
+ if (optional != dependency.isOptional()) {
+ dependency.setOptional(optional);
+ }
+ }
+
+ private String valueOrNull(String value) {
+ if (value != null) {
+ value = value.trim();
+ if (value.length() == 0) {
+ value = null;
+ }
+ }
+ return value;
+ }
+
+
+ public void setDependency(Dependency dependency) {
+ this.dependency = dependency;
+
+ if(dependency != null
+ && groupIdText != null
+ && !groupIdText.isDisposed()) {
+ groupIdText.setText(nvl(dependency.getGroupId()));
+ artifactIdText.setText(nvl(dependency.getArtifactId()));
+ versionText.setText(nvl(dependency.getVersion()));
+ classifierText.setText(nvl(dependency.getClassifier()));
+ typeCombo.setText("".equals(nvl(dependency.getType())) ? "jar" : dependency.getType()); //$NON-NLS-1$ //$NON-NLS-2$
+ scopeCombo.setText("".equals(nvl(dependency.getScope())) ? "compile" : dependency.getScope()); //$NON-NLS-1$ //$NON-NLS-2$
+ systemPathText.setText(nvl(dependency.getSystemPath()));
+
+ boolean optional = Boolean.parseBoolean(dependency.getOptional());
+ if(optionalButton.getSelection() != optional) {
+ optionalButton.setSelection(optional);
+ }
+ }
+ }
+
+ /**
+ * @return the dependency
+ */
+ public Dependency getDependency() {
+ return dependency;
+ }
+
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/IdentifyMavenDependencyPage.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/IdentifyMavenDependencyPage.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/dialog/IdentifyMavenDependencyPage.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,500 @@
+/*************************************************************************************
+ * Copyright (c) 2009-2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.maven.conversion.ui.dialog;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.maven.model.Dependency;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.IJobChangeListener;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.DialogCellEditor;
+import org.eclipse.jface.viewers.ICellModifier;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+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.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.jboss.tools.maven.conversion.ui.handlers.IdentifyJarJob;
+import org.jboss.tools.maven.conversion.ui.internal.MavenDependencyConversionActivator;
+import org.jboss.tools.maven.sourcelookup.identification.IFileIdentificationManager;
+import org.jboss.tools.maven.sourcelookup.identification.IdentificationUtil;
+import org.jboss.tools.maven.sourcelookup.internal.identification.FileIdentificationManager;
+
+public class IdentifyMavenDependencyPage extends WizardPage {
+
+ private static final String SOURCE_PROPERTY = "SOURCE_PROPERTY";
+
+ private static final String DEPENDENCY_PROPERTY = "DEPENDENCY_PROPERTY";
+
+ private static final int DEPENDENCY_COLUMN = 2;
+
+ private Map<IClasspathEntry, Dependency> dependencyMap;
+
+ private Map<IClasspathEntry, IdentifyJarJob> identificationJobs;
+
+ private Set<IClasspathEntry> initialEntries;
+
+ private IProject project;
+
+ private Image jarImage;
+ private Image projectImage;
+ private Image okImage;
+ private Image failedImage;
+ private Image loadingImage;
+
+ private CheckboxTableViewer dependenciesViewer;
+
+ public IdentifyMavenDependencyPage(IProject project, Set<IClasspathEntry> entries) {
+ super("");
+ this.project = project;
+ initialEntries = Collections.unmodifiableSet(entries);
+ initDependencyMap();
+ }
+
+ private void initDependencyMap() {
+ dependencyMap = new LinkedHashMap<IClasspathEntry, Dependency>(initialEntries.size());
+ IJavaProject javaProject = JavaCore.create(project);
+ try {
+
+ for (IClasspathEntry entry : initialEntries) {
+ if ((entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY && entry.getPath() != null)
+ || (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT)) {
+ dependencyMap.put(entry, null);
+ } else if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
+ IClasspathContainer container = JavaCore.getClasspathContainer(entry.getPath(), javaProject );
+ if (container != null) {
+ for (IClasspathEntry cpe: container.getClasspathEntries()) {
+ dependencyMap.put(cpe, null);
+ }
+ }
+ }
+ }
+
+ } catch(Exception e) {
+ setMessage(e.getLocalizedMessage());
+ }
+ }
+
+ private void initImages() {
+ jarImage = MavenDependencyConversionActivator.getJarIcon();
+ projectImage = MavenDependencyConversionActivator.getProjectIcon();
+ okImage = MavenDependencyConversionActivator.getOkIcon();
+ failedImage = MavenDependencyConversionActivator.getFailedIcon();
+ loadingImage = MavenDependencyConversionActivator.getLoadingIcon();
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+
+ setTitle("Identify Maven dependencies");
+
+ initImages();
+
+ Composite container = new Composite(parent, SWT.NONE);
+ container.setEnabled(true);
+ setControl(container);
+
+ GridLayout layout = new GridLayout(3, false);
+ layout.marginLeft = 12;
+ container.setLayout(layout);
+ container.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ String message = "Identify existing classpath entries as Maven dependencies";
+ setMessage(message);
+
+ displayDependenciesTable(container);
+
+ runIdentificationJobs();
+ }
+
+
+ private void displayDependenciesTable(Composite container) {
+ GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 4);
+ gd.heightHint = 500;
+ gd.widthHint = 545;
+
+ dependenciesViewer = CheckboxTableViewer.newCheckList(container,
+ SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION );
+ Table table = dependenciesViewer.getTable();
+ table.setFocus();
+ table.setLayoutData(gd);
+ table.setLinesVisible(true);
+ table.setHeaderVisible(true);
+
+ TableColumn emptyColumn = new TableColumn(table, SWT.NONE);
+ emptyColumn.setWidth(20);
+
+ TableViewerColumn sourceColumn = new TableViewerColumn(dependenciesViewer, SWT.NONE);
+ sourceColumn.getColumn().setText("Classpath Entry ");
+ sourceColumn.getColumn().setWidth(270);
+ sourceColumn.setLabelProvider(new ColumnLabelProvider(){
+ @Override
+ @SuppressWarnings("unchecked")
+ public String getText(Object element) {
+ Map.Entry<IClasspathEntry, Dependency> entry = (Map.Entry<IClasspathEntry, Dependency>) element;
+ return entry.getKey().getPath().lastSegment();
+ }
+
+ @Override
+ public String getToolTipText(Object element) {
+ try {
+ return "SHA1 Checksum : "+IdentificationUtil.getSHA1(ConversionUtils.getFile(((Map.Entry<IClasspathEntry, Dependency>) element).getKey()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return "Unable to compute SHA1 Checksum";
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public Image getImage(Object element) {
+ Map.Entry<IClasspathEntry, String> entry = (Map.Entry<IClasspathEntry, String>) element;
+ Image img;
+ if (entry.getKey().getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
+ img = jarImage;
+ } else {
+ img = projectImage;
+ }
+ return img;
+ }
+ });
+
+ TableViewerColumn dependencyColumn = new TableViewerColumn(dependenciesViewer, SWT.NONE);
+ dependencyColumn.getColumn().setText("Maven Dependency");
+ dependencyColumn.getColumn().setWidth(270);
+ dependencyColumn.setLabelProvider(new ColumnLabelProvider() {
+ @Override
+ @SuppressWarnings("unchecked")
+ public String getText(Object element) {
+ Map.Entry<IClasspathEntry, Dependency> entry = (Map.Entry<IClasspathEntry, Dependency>) element;
+ IdentifyJarJob job = identificationJobs ==null? null:identificationJobs.get(entry.getKey());
+ if (job != null) {
+ int jobState = job.getState();
+ if (jobState == Job.RUNNING || jobState == Job.WAITING) {
+ return "Identification in progress...";
+ }
+ }
+ return IdentifyMavenDependencyPage.toString(entry.getValue());
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public Image getImage(Object element) {
+ Map.Entry<IClasspathEntry, String> entry = (Map.Entry<IClasspathEntry, String>) element;
+ IdentifyJarJob job = identificationJobs ==null? null:identificationJobs.get(entry.getKey());
+ if (job != null) {
+ int jobState = job.getState();
+ if (jobState == Job.RUNNING || jobState == Job.WAITING) {
+ return loadingImage;
+ }
+ }
+ if (entry.getValue() == null) {
+ return failedImage;
+ } else {
+ return okImage;
+ }
+ }
+ });
+
+ dependenciesViewer.setContentProvider(ArrayContentProvider.getInstance());
+ dependenciesViewer.addCheckStateListener(new ICheckStateListener() {
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ refresh();
+ }
+ });
+ dependenciesViewer.setInput(dependencyMap.entrySet());
+ dependenciesViewer.setAllChecked(true);
+
+ addSelectionButton(container, "Select All", true);
+ addSelectionButton(container, "Deselect All", false);
+ addIdentifyButton(container, "Identify dependencies");
+ //addResetButton(container, "Reset");
+
+ addCellEditors();
+ }
+
+
+ @Override
+ public boolean isPageComplete() {
+ return true;
+ }
+
+ protected void addCellEditors() {
+ dependenciesViewer.setColumnProperties(
+ new String[] { "EMPTY", SOURCE_PROPERTY, DEPENDENCY_PROPERTY });
+
+ DependencyCellEditor dce = new DependencyCellEditor(dependenciesViewer.getTable());
+ CellEditor[] editors = new CellEditor[] { null, null, dce};
+ dependenciesViewer.setCellEditors(editors);
+ dependenciesViewer.setCellModifier(new DependencyCellModifier());
+ }
+
+ private class DependencyCellModifier implements ICellModifier {
+
+ public boolean canModify(Object element, String property) {
+ return DEPENDENCY_PROPERTY.equals(property);
+ }
+
+ public Object getValue(Object element, String property) {
+ Map.Entry<IClasspathEntry, Dependency> entry = (Map.Entry<IClasspathEntry, Dependency>) element;
+ if (property.equals(SOURCE_PROPERTY)) {
+ return entry.getKey().getPath().toOSString();
+ } else if (property.equals(DEPENDENCY_PROPERTY)) {
+ return IdentifyMavenDependencyPage.toString(entry.getValue());
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public void modify(Object element, String property, Object value) {
+ if (property.equals(DEPENDENCY_PROPERTY)) {
+ TableItem item = (TableItem) element;
+ Map.Entry<IClasspathEntry, Dependency> entry = (Map.Entry<IClasspathEntry, Dependency>) item.getData();
+ if (value instanceof Dependency) {
+ entry.setValue((Dependency)value);
+ refresh();
+ }
+ }
+ }
+ }
+
+ private class DependencyCellEditor extends DialogCellEditor {
+
+ DependencyCellEditor (Composite parent) {
+ super(parent);
+ }
+
+ protected Button createButton(Composite parent) {
+ Button result = new Button(parent, SWT.DOWN);
+ result.setText("Edit..."); //$NON-NLS-1$
+ return result;
+ }
+
+ @Override
+ protected Object openDialogBox(Control cellEditorWindow) {
+ Table table = (Table)cellEditorWindow.getParent();
+ int idx = table.getSelectionIndex();
+ Dependency d= ((Map.Entry<IClasspathEntry, Dependency>) table.getItem(idx).getData()).getValue();
+ EditDependencyDialog editDependencyDialog = new EditDependencyDialog(cellEditorWindow.getShell());
+ editDependencyDialog.setDependency(d);
+ if(editDependencyDialog.open() == Window.OK) {
+ return editDependencyDialog.getDependency();
+ }
+ return d;
+ }
+
+ }
+
+
+ private Button addSelectionButton(Composite container, String label,
+ final boolean ischecked) {
+ Button button = new Button(container, SWT.NONE);
+ button.setLayoutData(new GridData(SWT.FILL, SWT.UP, false, false, 1, 1));
+ button.setText(label);
+ button.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ dependenciesViewer.setAllChecked(ischecked);
+ refresh();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+
+ }
+ });
+
+ return button;
+ }
+
+ private Button addResetButton(Composite container, String label) {
+ Button button = new Button(container, SWT.NONE);
+ button.setLayoutData(new GridData(SWT.FILL, SWT.UP, false, false, 1, 1));
+ button.setText(label);
+ button.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ initDependencyMap( );
+ dependenciesViewer.setInput(dependencyMap.entrySet());
+ dependenciesViewer.setAllChecked(true);
+ refresh();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+
+ }
+ });
+
+ return button;
+ }
+
+
+ private Button addIdentifyButton(Composite container, String label) {
+ Button button = new Button(container, SWT.NONE);
+ button.setLayoutData(new GridData(SWT.FILL, SWT.UP, false, false, 1, 1));
+ button.setText(label);
+ button.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ runIdentificationJobs();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+
+ }
+ });
+
+ return button;
+ }
+
+ protected void runIdentificationJobs() {
+
+ initJobs();
+ for (Map.Entry<IClasspathEntry, Dependency> entry : dependencyMap.entrySet()) {
+ if (entry.getValue() != null) {
+ //don't need to run identification
+ continue;
+ }
+ IdentifyJarJob job = identificationJobs.get(entry.getKey());
+ if (job != null) {
+ int jobState = job.getState();
+ if (jobState == Job.NONE) {
+ job.schedule();
+ }
+ }
+ }
+
+ }
+
+ protected void refresh() {
+ if (dependenciesViewer != null && !dependenciesViewer.getTable().isDisposed()) {
+ dependenciesViewer.refresh();
+ }
+ }
+
+
+ static String toString(Dependency d) {
+ if (d == null) {
+ return " Unidentified dependency";
+ }
+ StringBuilder text = new StringBuilder(" ");
+ text.append(d.getGroupId())
+ .append(":")
+ .append(d.getArtifactId())
+ .append(":")
+ .append(d.getVersion());
+ return text.toString();
+ }
+
+ void initJobs() {
+ if (identificationJobs == null) {
+ identificationJobs = new HashMap<IClasspathEntry, IdentifyJarJob>(dependencyMap.size());
+
+ Table t = dependenciesViewer.getTable();
+ IFileIdentificationManager fileIdentificationManager = new FileIdentificationManager();
+
+ for (final TableItem item : t.getItems()) {
+ final Map.Entry<IClasspathEntry, Dependency> entry = (Map.Entry<IClasspathEntry, Dependency>)item.getData();
+ if (entry.getValue() != null) {
+ //already identified
+ continue;
+ }
+ File jar;
+ try {
+ jar = ConversionUtils.getFile(entry.getKey());
+
+ final IdentifyJarJob job = new IdentifyJarJob("Search the Maven coordinates for "+jar.getAbsolutePath(), fileIdentificationManager, jar);
+ job.addJobChangeListener(new IJobChangeListener() {
+
+ @Override
+ public void sleeping(IJobChangeEvent event) {
+ }
+
+ @Override
+ public void scheduled(IJobChangeEvent event) {
+ item.setImage(DEPENDENCY_COLUMN, loadingImage);
+ item.setText(DEPENDENCY_COLUMN, "Identification in progress...");
+ }
+
+ @Override
+ public void running(IJobChangeEvent event) {
+ }
+
+ @Override
+ public void done(IJobChangeEvent event) {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ Dependency d = job.getDependency();
+ dependencyMap.put(entry.getKey(), d);
+ refresh();
+ }
+ });
+ }
+
+ @Override
+ public void awake(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void aboutToRun(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+ identificationJobs.put(entry.getKey(), job);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+
+ public List<Dependency> getDependencies() {
+
+ Object[] selection = dependenciesViewer.getCheckedElements();
+ List<Dependency> dependencies = new ArrayList<Dependency>(selection.length);
+ for (Object o : selection) {
+ Map.Entry<IClasspathEntry, Dependency> entry = (Map.Entry<IClasspathEntry, Dependency>) o;
+ dependencies.add(entry.getValue());
+ }
+ return dependencies;
+ }
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/ConvertToMavenDependencyHandler.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/ConvertToMavenDependencyHandler.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/ConvertToMavenDependencyHandler.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,127 @@
+/*************************************************************************************
+ * Copyright (c) 2008-2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.maven.conversion.ui.handlers;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
+import org.eclipse.jface.dialogs.MessageDialogWithToggle;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.m2e.jdt.internal.MavenClasspathHelpers;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.jboss.tools.maven.conversion.ui.dialog.ConvertToMavenDependencyWizard;
+
+/**
+ * Materialize Library Handler.
+ *
+ * @author Fred Bricon
+ */
+
+ at SuppressWarnings("restriction")
+public class ConvertToMavenDependencyHandler extends AbstractHandler {
+
+ @Override
+ public Object execute(final ExecutionEvent event) throws ExecutionException {
+
+ final IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
+
+ ISelection selection = HandlerUtil.getCurrentSelection(event);
+
+ Set<IClasspathEntry> entries = getSelectedClasspathEntries(selection);
+
+ //System.err.println(entries);
+
+ if (entries == null || entries.isEmpty()) {
+ MessageDialogWithToggle.openInformation(window.getShell(), "Convert to Maven Dependency", "Nothing to convert");
+ return null;
+ }
+
+ /*
+ IPath path = libraryFromUI.getClasspathEntry().getPath();
+
+ IJavaProject javaProject = libraryFromUI.getJavaProject();
+
+ final String libName = libraryFromUI.getLabel();
+ */
+ /*
+ IClasspathContainer containerToMaterialize = JavaCore.getClasspathContainer(path, javaProject);
+
+ IProject project = javaProject.getProject();
+
+ */
+ ConvertToMavenDependencyWizard wizard = new ConvertToMavenDependencyWizard(
+ null, //project,
+ entries
+ );
+
+ WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
+ dialog.open();
+ return null;
+ }
+
+
+ private Set<IClasspathEntry> getSelectedClasspathEntries(ISelection selection) {
+ Set<IClasspathEntry> files = null;
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ files = new LinkedHashSet<IClasspathEntry>(structuredSelection.size());
+ Iterator<?> ite = structuredSelection.iterator();
+ while(ite.hasNext()) {
+ Object o = ite.next();
+ if (o instanceof IPackageFragmentRoot) {
+ ((IPackageFragmentRoot) o).getPath();
+ addClasspathEntry((IPackageFragmentRoot)o, files);
+ }
+ else if (o instanceof ClassPathContainer) {
+ ClassPathContainer container = (ClassPathContainer) o;
+ if (isValid(container)) {
+ for (IPackageFragmentRoot pfr : container.getPackageFragmentRoots()) {
+ addClasspathEntry(pfr, files);
+ }
+ }
+ }
+ }
+ }
+ return files;
+ }
+
+
+ private boolean isValid(ClassPathContainer container) {
+ return !MavenClasspathHelpers.isMaven2ClasspathContainer(container.getClasspathEntry().getPath());
+ }
+
+ private void addClasspathEntry(IPackageFragmentRoot pfr, Collection<IClasspathEntry> entries) {
+ if (pfr.isArchive()) {
+ pfr.getResource();
+ try {
+ IClasspathEntry cpe = pfr.getResolvedClasspathEntry();
+ if (cpe != null && cpe.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
+ entries.add(cpe);
+ }
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+}
\ No newline at end of file
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/IdentifyJarJob.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/IdentifyJarJob.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/handlers/IdentifyJarJob.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,52 @@
+package org.jboss.tools.maven.conversion.ui.handlers;
+
+import java.io.File;
+
+import org.apache.maven.model.Dependency;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.m2e.core.embedder.ArtifactKey;
+import org.jboss.tools.maven.conversion.ui.internal.MavenDependencyConversionActivator;
+import org.jboss.tools.maven.sourcelookup.identification.IFileIdentificationManager;
+
+public class IdentifyJarJob extends Job {
+
+ private File file;
+
+ private IFileIdentificationManager fileIdentificationManager;
+
+ private Dependency dependency;
+
+ public IdentifyJarJob(String name, IFileIdentificationManager fileIdentificationManager, File file) {
+ super(name);
+ this.fileIdentificationManager = fileIdentificationManager;
+ this.file = file;
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+
+ ArtifactKey artifactKey;
+ try {
+ artifactKey = fileIdentificationManager.identify(file, monitor);
+ } catch (CoreException e) {
+ return new Status(IStatus.ERROR, MavenDependencyConversionActivator.PLUGIN_ID, e.getMessage(), e);
+ }
+ if (artifactKey != null) {
+ dependency = new Dependency();
+ dependency.setArtifactId(artifactKey.getArtifactId());
+ dependency.setGroupId(artifactKey.getGroupId());
+ dependency.setVersion(artifactKey.getVersion());
+ dependency.setClassifier(artifactKey.getClassifier());
+ }
+ return Status.OK_STATUS;
+ }
+
+ public Dependency getDependency() {
+ return dependency;
+ }
+
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/ClasspathConversionParticipant.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/ClasspathConversionParticipant.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/ClasspathConversionParticipant.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,82 @@
+package org.jboss.tools.maven.conversion.ui.internal;
+
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.m2e.core.project.conversion.AbstractProjectConversionParticipant;
+import org.eclipse.m2e.jdt.internal.MavenClasspathHelpers;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.tools.maven.conversion.ui.dialog.ConvertToMavenDependencyWizard;
+
+public class ClasspathConversionParticipant extends
+ AbstractProjectConversionParticipant {
+
+ @Override
+ public boolean accept(IProject project) throws CoreException {
+ return project.hasNature(JavaCore.NATURE_ID);
+ }
+
+ @Override
+ public void convert(final IProject project, final Model model, final IProgressMonitor monitor)
+ throws CoreException {
+
+ if (accept(project)) {
+ IJavaProject javaProject = JavaCore.create(project);
+ IClasspathEntry[] classpath = javaProject.getRawClasspath();
+ Set<IClasspathEntry> entries = new LinkedHashSet<IClasspathEntry>(classpath.length);
+ for (IClasspathEntry cpe : classpath) {
+ if (isValid(cpe)) {
+ entries.add(cpe);
+ }
+ }
+
+ if (entries.isEmpty()) {
+ return;
+ }
+
+ final ConvertToMavenDependencyWizard conversionWizard = new ConvertToMavenDependencyWizard(project, entries);
+ Display.getDefault().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+ WizardDialog dialog = new WizardDialog(shell, conversionWizard);
+ if (dialog.open() == Window.OK) {
+ List<Dependency> dependencies = conversionWizard.getDependencies();
+ if (dependencies != null && !dependencies.isEmpty()) {
+ model.setDependencies(dependencies);
+ }
+ }
+ }
+ });
+ }
+ }
+
+ private boolean isValid(IClasspathEntry cpe) {
+
+ if(IClasspathEntry.CPE_CONTAINER == cpe.getEntryKind()
+ && ("org.eclipse.jdt.launching.JRE_CONTAINER".equals(cpe.getPath().segment(0))
+ || MavenClasspathHelpers.isMaven2ClasspathContainer(cpe.getPath()))) {
+ return false;
+ }
+ if (IClasspathEntry.CPE_SOURCE == cpe.getEntryKind()) {
+ return false;
+ }
+ return true;
+ }
+
+}
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/GenericCommandActionDelegate.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/GenericCommandActionDelegate.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/GenericCommandActionDelegate.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,248 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Red Hat - minor refactoring
+ *
+ * Original code taken from <a href="http://wiki.eclipse.org/Platform_Command_Framework#Using_an_IActionDelegate_to_execute_a_command">
+ * http://wiki.eclipse.org/Platform_Command_Framework#Using_an_IActionDelegate_to_execute_a_command</a>
+ ******************************************************************************/
+package org.jboss.tools.maven.conversion.ui.internal;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.IParameter;
+import org.eclipse.core.commands.Parameterization;
+import org.eclipse.core.commands.ParameterizedCommand;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IEditorActionDelegate;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
+
+/**
+ * This action delegate can be used to specify a command with or without
+ * parameters be called from an <action/> specified in actionSets,
+ * editorActions, viewActions, or popupMenus.
+ */
+public class GenericCommandActionDelegate implements
+ IWorkbenchWindowActionDelegate, IViewActionDelegate,
+ IEditorActionDelegate, IObjectActionDelegate, IExecutableExtension {
+
+ /**
+ * The commandId parameter needed when using the <class/> form for
+ * this IActionDelegate. Value is "commandId".
+ */
+ public static final String PARM_COMMAND_ID = "commandId"; //$NON-NLS-1$
+
+ private String commandId = null;
+
+ private Map<?, ?> parameterMap = null;
+
+ private ParameterizedCommand parameterizedCommand = null;
+
+ private IHandlerService handlerService = null;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
+ */
+ public void dispose() {
+ handlerService = null;
+ parameterizedCommand = null;
+ parameterMap = null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ public void run(IAction action) {
+ if (handlerService == null) {
+ // what, no handler service ... no problem
+ return;
+ }
+ try {
+ if (commandId != null) {
+ handlerService.executeCommand(commandId, null);
+ } else if (parameterizedCommand != null) {
+ handlerService.executeCommand(parameterizedCommand, null);
+ }
+ // else there is no command for this delegate
+ } catch (Exception e) {
+ // exceptions reduced for brevity
+ // and we won't just do a print out :-)
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // we don't care, handlers get their selection from the
+ // ExecutionEvent application context
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
+ * java.lang.String, java.lang.Object)
+ */
+ public void setInitializationData(IConfigurationElement config,
+ String propertyName, Object data) throws CoreException {
+ String id = config.getAttribute(IWorkbenchRegistryConstants.ATT_ID);
+ // save the data until our init(*) call, where we can get
+ // the services.
+ if (data instanceof String) {
+ commandId = (String) data;
+ } else if (data instanceof Map) {
+ parameterMap = (Map<?, ?>) data;
+ if (parameterMap.get(PARM_COMMAND_ID) == null) {
+ Status status = new Status(IStatus.ERROR,
+ "org.jboss.tools.maven.ui.generic", "The '" + id
+ + "' action won't work without a commandId");
+ throw new CoreException(status);
+ }
+ } else {
+ Status status = new Status(
+ IStatus.ERROR,
+ "org.jboss.tools.maven.ui.generic",
+ "The '"
+ + id
+ + "' action won't work without some initialization parameters");
+ throw new CoreException(status);
+ }
+ }
+
+ /**
+ * Build a command from the executable extension information.
+ *
+ * @param commandService
+ * to get the Command object
+ */
+ private void createCommand(ICommandService commandService) {
+ String id = (String) parameterMap.get(PARM_COMMAND_ID);
+ if (id == null) {
+ return;
+ }
+ if (parameterMap.size() == 1) {
+ commandId = id;
+ return;
+ }
+ try {
+ Command cmd = commandService.getCommand(id);
+ if (!cmd.isDefined()) {
+ // command not defined? no problem ...
+ return;
+ }
+ ArrayList<Parameterization> parameters = new ArrayList<Parameterization>();
+ Iterator<?> i = parameterMap.keySet().iterator();
+ while (i.hasNext()) {
+ String parmName = (String) i.next();
+ if (PARM_COMMAND_ID.equals(parmName)) {
+ continue;
+ }
+ IParameter parm = cmd.getParameter(parmName);
+ if (parm == null) {
+ // asking for a bogus parameter? No problem
+ return;
+ }
+ parameters.add(new Parameterization(parm, (String) parameterMap
+ .get(parmName)));
+ }
+ parameterizedCommand = new ParameterizedCommand(cmd,
+ (Parameterization[]) parameters
+ .toArray(new Parameterization[parameters.size()]));
+ } catch (NotDefinedException e) {
+ // command is bogus? No problem, we'll do nothing.
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
+ */
+ public void init(IWorkbenchWindow window) {
+ if (handlerService != null) {
+ // already initialized
+ return;
+ }
+
+ handlerService = (IHandlerService) window
+ .getService(IHandlerService.class);
+ if (parameterMap != null) {
+ ICommandService commandService = (ICommandService) window
+ .getService(ICommandService.class);
+ createCommand(commandService);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ init(view.getSite().getWorkbenchWindow());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IEditorActionDelegate#setActiveEditor(org.eclipse.jface.action.IAction,
+ * org.eclipse.ui.IEditorPart)
+ */
+ public void setActiveEditor(IAction action, IEditorPart targetEditor) {
+ // we don't actually care about the active editor, since that
+ // information is in the ExecutionEvent application context
+ // but we need to make sure we're initialized.
+ if (targetEditor != null) {
+ init(targetEditor.getSite().getWorkbenchWindow());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction,
+ * org.eclipse.ui.IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // we don't actually care about the active part, since that
+ // information is in the ExecutionEvent application context
+ // but we need to make sure we're initialized.
+ if (targetPart != null) {
+ init(targetPart.getSite().getWorkbenchWindow());
+ }
+ }
+}
+
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/MavenDependencyConversionActivator.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/MavenDependencyConversionActivator.java (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/internal/MavenDependencyConversionActivator.java 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,106 @@
+/*************************************************************************************
+ * Copyright (c) 2008-2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.maven.conversion.ui.internal;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class MavenDependencyConversionActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.maven.conversion.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static MavenDependencyConversionActivator plugin;
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static MavenDependencyConversionActivator getDefault() {
+ return plugin;
+ }
+
+ public static void log(Exception e, String message) {
+ IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, message, e);
+ plugin.getLog().log(status);
+ }
+
+ public static void logWarning(String message) {
+ IStatus status = new Status(IStatus.WARNING, PLUGIN_ID, message);
+ plugin.getLog().log(status);
+ }
+
+ public static void log(Throwable e) {
+ IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, e
+ .getLocalizedMessage(), e);
+ plugin.getLog().log(status);
+ }
+
+ public static Image getJarIcon() {
+ return getIcon("icons/jar_obj.gif");
+ }
+
+ public static Image getProjectIcon() {
+ return getIcon("icons/projects.gif");
+ }
+
+ public static Image getOkIcon() {
+ return getIcon("icons/passed.png");
+ }
+
+ public static Image getFailedIcon() {
+ return getIcon("icons/error_st_obj.gif");
+ }
+
+
+ public static Image getLoadingIcon() {
+ //animated gifs (loader.gif) )are not animated when used inside cells of tableviewer
+ //using an alternate icon to represent search
+ return getIcon("icons/find_obj.gif");
+ }
+
+ public static Image getIcon(String pathToIcon) {
+ Image img = null;
+ ImageDescriptor descriptor = imageDescriptorFromPlugin(PLUGIN_ID, pathToIcon);
+ if(descriptor != null) {
+ img = descriptor.createImage();
+ }
+ return img;
+ }
+
+}
\ No newline at end of file
Added: trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/messages.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/messages.properties (rev 0)
+++ trunk/maven/plugins/org.jboss.tools.maven.conversion.ui/src/org/jboss/tools/maven/conversion/ui/messages.properties 2012-07-24 16:47:41 UTC (rev 42694)
@@ -0,0 +1,9 @@
+Convert_Maven_Dependency=Convert to Maven Dependencies
+
+Maven_Configuration_Warning =This will also remove the Maven configuration from this project.
+Maven_Configuration_Dialog_Warning = This will also remove the Maven configuration from this project.\nThis operation cannot be undone, are you sure ?
+Gradle_Configuration_Warning =This will also remove the Gradle configuration from this project.
+Gradle_Configuration_Dialog_Warning = This will also remove the Gradle configuration from this project.\nThis operation cannot be undone, are you sure ?
+Jre_Warning = Materializing {0} might have unexpected consequences and is not recommended.
+Jre_Dialog_Warning = Materializing {0} might have unexpected consequences and is not recommended. Are you sure?
+
Modified: trunk/maven/plugins/pom.xml
===================================================================
--- trunk/maven/plugins/pom.xml 2012-07-24 16:31:18 UTC (rev 42693)
+++ trunk/maven/plugins/pom.xml 2012-07-24 16:47:41 UTC (rev 42694)
@@ -30,6 +30,7 @@
<module>org.jboss.tools.maven.gwt</module>
<module>org.jboss.tools.maven.sourcelookup.core</module>
<module>org.jboss.tools.maven.sourcelookup.ui</module>
+ <module>org.jboss.tools.maven.conversion.ui</module>
<module>org.jboss.tools.maven.jdt</module>
</modules>
</project>
More information about the jbosstools-commits
mailing list