[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 &lt;action/&gt; specified in actionSets,
+ * editorActions, viewActions, or popupMenus.
+ */
+public class GenericCommandActionDelegate implements
+		IWorkbenchWindowActionDelegate, IViewActionDelegate,
+		IEditorActionDelegate, IObjectActionDelegate, IExecutableExtension {
+
+	/**
+	 * The commandId parameter needed when using the &lt;class/&gt; 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