You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by xa...@apache.org on 2008/01/03 10:36:41 UTC
svn commit: r608392 - in /ant/ivy/ivyde/trunk: ./
src/java/org/apache/ivyde/eclipse/
src/java/org/apache/ivyde/eclipse/cpcontainer/
src/java/org/apache/ivyde/eclipse/ui/actions/
src/java/org/apache/ivyde/eclipse/ui/views/
Author: xavier
Date: Thu Jan 3 01:36:39 2008
New Revision: 608392
URL: http://svn.apache.org/viewvc?rev=608392&view=rev
Log:
FIX: IvyDE is using some internal classes of Eclipse (IVYDE-68) (thanks to Nicolas Lalevée)
Modified:
ant/ivy/ivyde/trunk/CHANGES.txt
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/IvyPlugin.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainer.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathUtil.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/CreateContainerAction.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/OpenIvyFileAction.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/RefreshAction.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAction.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAllAction.java
ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/views/ReportView.java
Modified: ant/ivy/ivyde/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/CHANGES.txt?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/CHANGES.txt (original)
+++ ant/ivy/ivyde/trunk/CHANGES.txt Thu Jan 3 01:36:39 2008
@@ -10,6 +10,7 @@
- IMPROVE: Support javadoc and sources even in modules where they are not declared (IVYDE-46)
- IMPROVE: Simplify the resolve process (IVYDE-64) (thanks to Nicolas Lalevée)
+- FIX: IvyDE is using some internal classes of Eclipse (IVYDE-68) (thanks to Nicolas Lalevée)
- FIX: "Add Ivy library" not working in eclipse 3.3 (IVYDE-57)
- FIX: Automatic javadoc attachment is not working (IVYDE-55)
- FIX: On startup IvyIDE can freeze eclipse (IVYDE-63) (thanks to Nicolas Lalevée)
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/IvyPlugin.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/IvyPlugin.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/IvyPlugin.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/IvyPlugin.java Thu Jan 3 01:36:39 2008
@@ -15,7 +15,6 @@
import java.util.Set;
import org.apache.ivy.Ivy;
-import org.apache.ivy.core.IvyContext;
import org.apache.ivy.core.module.descriptor.Artifact;
import org.apache.ivy.util.Message;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
@@ -25,14 +24,16 @@
import org.apache.ivyde.eclipse.ui.preferences.PreferenceConstants;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.jdt.core.IJavaModel;
import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.JavaModelManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.IPropertyChangeListener;
@@ -59,9 +60,10 @@
//Resource bundle.
private ResourceBundle resourceBundle;
private IvyConsole console;
-
-
- /**
+
+ private IJavaModel javaModel;
+
+ /**
* The constructor.
*/
public IvyPlugin() {
@@ -93,6 +95,7 @@
}
}
});
+ javaModel = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
log(IStatus.INFO, "IvyDE plugin started", null);
}
@@ -209,7 +212,7 @@
public static void ivyConfPathChanged() {
try {
- IJavaProject[] projects = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProjects();
+ IJavaProject[] projects = plugin.javaModel.getJavaProjects();
String defaultConfURL = getIvyconfURL();
for (int i = 0; i < projects.length; i++) {
if (getStrictIvyconfURL(projects[i]) == null) {
@@ -222,7 +225,7 @@
public static void typesChanged(String typesCode) {
try {
- IJavaProject[] projects = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProjects();
+ IJavaProject[] projects = plugin.javaModel.getJavaProjects();
String defaultConfURL = getIvyconfURL();
for (int i = 0; i < projects.length; i++) {
if ("[inherited]".equals(getTypesString(projects[i], typesCode))) {
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainer.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainer.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainer.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainer.java Thu Jan 3 01:36:39 2008
@@ -466,8 +466,8 @@
}
if (url != null) {
- result.add(new ClasspathAttribute(IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME, url
- .toExternalForm()));
+ result.add(JavaCore.newClasspathAttribute(
+ IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME, url.toExternalForm()));
}
return (IClasspathAttribute[]) result.toArray(new IClasspathAttribute[result.size()]);
}
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathInitializer.java Thu Jan 3 01:36:39 2008
@@ -1,6 +1,7 @@
package org.apache.ivyde.eclipse.cpcontainer;
+import org.apache.ivy.util.Message;
import org.apache.ivyde.eclipse.IvyPlugin;
import org.apache.ivyde.eclipse.cpcontainer.fragmentinfo.IPackageFragmentExtraInfo;
import org.eclipse.core.runtime.CoreException;
@@ -89,7 +90,16 @@
//force refresh of ivy classpath entry in ui thread
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- IvyClasspathUtil.refreshContainer(project);
+ IvyClasspathContainer ivycp;
+ try {
+ ivycp = IvyClasspathUtil.getIvyClassPathContainer(project);
+ } catch (JavaModelException e) {
+ Message.error(e.getMessage());
+ return;
+ }
+ if (ivycp != null) {
+ ivycp.refresh();
+ }
}
});
}
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathUtil.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathUtil.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathUtil.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathUtil.java Thu Jan 3 01:36:39 2008
@@ -2,15 +2,15 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Iterator;
import java.util.List;
import org.apache.ivyde.eclipse.IvyPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathContainer;
import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
@@ -21,94 +21,116 @@
import org.eclipse.ui.PlatformUI;
public class IvyClasspathUtil {
- /**
- * Adds an IvyDE classpath container to the list of existing classpath entries in the
- * given project.
- *
- * @param project
- * the project to which the cp container should be added
- * @param projectRelativePath
- * the path relative to the project of the module descriptor file
- * to use for the classpath container
- * @param confs
- * the configurations to use in the classpath container.
- */
- public static void addCPContainer(
- IJavaProject project, IPath projectRelativePath, String confs) {
- try {
- IClasspathEntry newEntry = JavaCore.newContainerEntry(
- new Path(IvyClasspathContainer.IVY_CLASSPATH_CONTAINER_ID)
- .append(projectRelativePath)
- .append(confs));
-
- IClasspathEntry[] entries= project.getRawClasspath();
-
- List newEntries = new ArrayList(Arrays.asList(entries));
- newEntries.add(newEntry);
- entries = (IClasspathEntry[]) newEntries
- .toArray(new IClasspathEntry[newEntries.size()]);
-
- project.setRawClasspath(entries, project.getOutputLocation(), null);
- } catch (CoreException e) {
- IvyPlugin.getDefault().log(e);
- }
- }
-
- public static void refreshContainer() {
+
+ /**
+ * Adds an Ivy classpath container to the list of existing classpath
+ * entries in the given project.
+ *
+ * @param project
+ * the project to which the classpath container should be added
+ * @param projectRelativePath
+ * the path relative to the project of the module descriptor file
+ * to use for the classpath container
+ * @param confs
+ * the configurations to use in the classpath container.
+ */
+ public static void addCPContainer(IJavaProject project, IPath projectRelativePath, String confs) {
+ try {
+ IClasspathEntry newEntry = JavaCore.newContainerEntry(new Path(
+ IvyClasspathContainer.IVY_CLASSPATH_CONTAINER_ID).append(projectRelativePath).append(confs));
+
+ IClasspathEntry[] entries = project.getRawClasspath();
+
+ List newEntries = new ArrayList(Arrays.asList(entries));
+ newEntries.add(newEntry);
+ entries = (IClasspathEntry[]) newEntries.toArray(new IClasspathEntry[newEntries.size()]);
+
+ project.setRawClasspath(entries, project.getOutputLocation(), null);
+ } catch (CoreException e) {
+ IvyPlugin.log(e);
+ }
+ }
+
+ /**
+ * Get the current selection in the Java package view
+ *
+ * @return the selection, <code>null</code> if unsuccessful
+ */
+ public static IStructuredSelection getSelectionInJavaPackageView() {
IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if(activeWorkbenchWindow != null) {
+ if (activeWorkbenchWindow == null) {
+ return null;
+ }
ISelection sel = activeWorkbenchWindow.getSelectionService().getSelection();
- if(!(sel instanceof IStructuredSelection)) {
- sel = activeWorkbenchWindow.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");
- }
+ IStructuredSelection selection;
+ if (sel instanceof IStructuredSelection) {
+ selection = (IStructuredSelection) sel;
+ } else {
+ sel = activeWorkbenchWindow.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");
if (sel instanceof IStructuredSelection) {
- IStructuredSelection s = (IStructuredSelection)sel;
- try {
- IClasspathContainer fContainer= getClassPathContainer(s.getFirstElement());
- if (fContainer instanceof IvyClasspathContainer) {
- IvyClasspathContainer ivycp = (IvyClasspathContainer)fContainer;
- ivycp.refresh();
+ selection = (IStructuredSelection) sel;
+ } else {
+ return null;
+ }
+ }
+ return selection;
+ }
+
+ /**
+ * Get the Ivy classpath container from the selection in the Java package view
+ *
+ * @param selection the selection
+ * @return
+ * @throws JavaModelException
+ */
+ public static IvyClasspathContainer getIvyClasspathContainer(IStructuredSelection selection) throws JavaModelException {
+ if (selection == null) {
+ return null;
+ }
+ for (Iterator it = selection.iterator(); it.hasNext();) {
+ Object element = it.next();
+ IvyClasspathContainer cp = null;
+ if (element instanceof IvyClasspathContainer) {
+ return (IvyClasspathContainer) element;
+ }
+ if (element instanceof IJavaProject) {
+ return getIvyClassPathContainer((IJavaProject) element);
+ }
+ if (element instanceof IAdaptable) {
+ cp = (IvyClasspathContainer) ((IAdaptable) element).getAdapter(IvyClasspathContainer.class);
+ if (cp == null) {
+ IJavaProject p = (IJavaProject) ((IAdaptable) element).getAdapter(IJavaProject.class);
+ if (p != null) {
+ cp = getIvyClassPathContainer(p);
}
- } catch (JavaModelException e) {
- e.printStackTrace();
}
}
+ if (cp != null) {
+ return cp;
+ }
+ if (element instanceof ClassPathContainer) {
+ // we shouldn't check against internal JDT API but there are not adaptable to useful class
+ return getIvyClassPathContainer(((ClassPathContainer) element).getJavaProject());
+ }
}
+ return null;
}
- public static void refreshContainer(IJavaProject project) {
- IvyClasspathContainer ivycp;
- try {
- ivycp = (IvyClasspathContainer)getIvyClassPathContainer(project);
- if(ivycp != null) {
- ivycp.refresh();
- }
- } catch (JavaModelException e) {
- }
- }
-
- private static IClasspathContainer getClassPathContainer(Object o) throws JavaModelException {
- if (o instanceof ClassPathContainer) {
- ClassPathContainer cp = (ClassPathContainer) o;
- IJavaProject project = cp.getJavaProject();
- return JavaCore.getClasspathContainer(cp.getClasspathEntry().getPath(), project);
- }
- if (o instanceof IJavaProject) {
- return getIvyClassPathContainer((IJavaProject) o);
- }
- if (o instanceof IJavaElement) {
- return getClassPathContainer(((IJavaElement) o).getParent());
+
+ /**
+ * Search the Ivy classpath container within the specified Java project
+ *
+ * @param javaProject the project to search into
+ * @return the Ivy classpath container if found, otherwise return <code>null</code>
+ * @throws JavaModelException
+ */
+ public static IvyClasspathContainer getIvyClassPathContainer(IJavaProject javaProject) throws JavaModelException {
+ IClasspathEntry[] cpe = javaProject.getRawClasspath();
+ for (int i = 0; i < cpe.length; i++) {
+ IClasspathEntry entry = cpe[i];
+ if (IvyClasspathContainer.isIvyClasspathContainer(entry.getPath())) {
+ return (IvyClasspathContainer) JavaCore.getClasspathContainer(entry.getPath(), javaProject);
+ }
}
return null;
}
-
- public static IvyClasspathContainer getIvyClassPathContainer(IJavaProject javaProject) throws JavaModelException {
- IClasspathEntry[] cpe = javaProject.getRawClasspath();
- for (int i = 0; i < cpe.length; i++) {
- IClasspathEntry entry = cpe[i];
- if (IvyClasspathContainer.isIvyClasspathContainer(entry.getPath())) {
- return (IvyClasspathContainer) JavaCore.getClasspathContainer(entry.getPath(), javaProject);
- }
- }
- return null;
- }
}
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/cpcontainer/IvydeContainerPage.java Thu Jan 3 01:36:39 2008
@@ -18,11 +18,12 @@
import org.apache.ivyde.eclipse.IvyPlugin;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
import org.eclipse.jdt.ui.wizards.IClasspathContainerPage;
import org.eclipse.jdt.ui.wizards.IClasspathContainerPageExtension;
import org.eclipse.jdt.ui.wizards.NewElementWizardPage;
@@ -49,6 +50,7 @@
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.dialogs.ISelectionStatusValidator;
import org.eclipse.ui.model.WorkbenchContentProvider;
import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.ui.views.navigator.ResourceSorter;
@@ -162,9 +164,23 @@
btn.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(Display.getDefault().getActiveShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
- Class[] acceptedClasses= new Class[] { IFile.class };
- TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, true);
- dialog.setValidator(validator);
+ dialog.setValidator(new ISelectionStatusValidator() {
+ private final IStatus errorStatus = new Status(IStatus.ERROR, IvyPlugin.ID, 0, "", null); //$NON-NLS-1$
+
+ public IStatus validate(Object[] selection) {
+ if (selection.length == 0) {
+ return errorStatus;
+ }
+ for (int i = 0; i < selection.length; i++) {
+ Object o = selection[i];
+ if (!(o instanceof IFile)) {
+ return errorStatus;
+ }
+ }
+ return Status.OK_STATUS;
+ }
+
+ });
dialog.setTitle("choose ivy file");
dialog.setMessage("choose the ivy file to use to resolve dependencies");
dialog.setInput(_project.getProject());
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/CreateContainerAction.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/CreateContainerAction.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/CreateContainerAction.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/CreateContainerAction.java Thu Jan 3 01:36:39 2008
@@ -1,30 +1,13 @@
package org.apache.ivyde.eclipse.ui.actions;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.ivyde.eclipse.IvyPlugin;
-import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.SubProgressMonitor;
-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.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.corext.buildpath.ClasspathModifier;
-import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
-import org.eclipse.jdt.internal.ui.wizards.buildpaths.CPListElement;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/OpenIvyFileAction.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/OpenIvyFileAction.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/OpenIvyFileAction.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/OpenIvyFileAction.java Thu Jan 3 01:36:39 2008
@@ -6,31 +6,24 @@
*/
package org.apache.ivyde.eclipse.ui.actions;
-import java.io.File;
-
+import org.apache.ivy.util.Message;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
+import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
-import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorRegistry;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.ide.DialogUtil;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
import org.eclipse.ui.part.FileEditorInput;
@@ -49,38 +42,43 @@
* @see IWorkbenchWindowActionDelegate#run
*/
public void run(IAction action) {
- ISelection sel = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
- if (sel instanceof IStructuredSelection) {
- IStructuredSelection s = (IStructuredSelection)sel;
- Object o = s.getFirstElement();
- if (o instanceof ClassPathContainer) {
- IPath path = ((ClassPathContainer)o).getClasspathEntry().getPath();
- IJavaProject project = ((ClassPathContainer)o).getJavaProject();
+ IvyClasspathContainer cp;
+ try {
+ cp = IvyClasspathUtil.getIvyClasspathContainer(IvyClasspathUtil.getSelectionInJavaPackageView());
+ } catch (JavaModelException e) {
+ Message.error(e.getMessage());
+ return;
+ }
+ if (cp != null) {
+ IFile file = cp.getIvyFile();
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if (file != null) {
try {
- IClasspathContainer fContainer= JavaCore.getClasspathContainer(path, project);
- if (fContainer instanceof IvyClasspathContainer) {
- IvyClasspathContainer ivycp = (IvyClasspathContainer)fContainer;
-
- IFile file = ivycp.getIvyFile();
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- if (file != null) {
- try {
- String editorId = "org.apache.ivyde.editors.IvyEditor";
- page.openEditor(new FileEditorInput(file), editorId, true);
- // only remember the default editor if the open succeeds
- IDE.setDefaultEditor(file, editorId);
- } catch (PartInitException e) {
- DialogUtil.openError(page.getWorkbenchWindow().getShell(),
- IDEWorkbenchMessages.OpenWithMenu_dialogTitle,
- e.getMessage(), e);
- }
- }
+ String editorId = "org.apache.ivyde.editors.IvyEditor";
+ page.openEditor(new FileEditorInput(file), editorId, true);
+ // only remember the default editor if the open succeeds
+ IDE.setDefaultEditor(file, editorId);
+ } catch (PartInitException e) {
+ Shell parent = page.getWorkbenchWindow().getShell();
+ String title = "Problems Opening Editor";
+ String message = e.getMessage();
+ // Check for a nested CoreException
+ CoreException nestedException = null;
+ IStatus status = e.getStatus();
+ if (status != null && status.getException() instanceof CoreException) {
+ nestedException = (CoreException) status.getException();
+ }
+ if (nestedException != null) {
+ // Open an error dialog and include the extra
+ // status information from the nested CoreException
+ ErrorDialog.openError(parent, title, message, nestedException
+ .getStatus());
+ } else {
+ // Open a regular error dialog since there is no
+ // extra information to display
+ MessageDialog.openError(parent, title, message);
}
- } catch (Exception e) {
- // TODO : log exc
- System.err.println(e.getMessage());
}
-
}
}
}
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/RefreshAction.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/RefreshAction.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/RefreshAction.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/RefreshAction.java Thu Jan 3 01:36:39 2008
@@ -1,20 +1,13 @@
package org.apache.ivyde.eclipse.ui.actions;
+import org.apache.ivy.util.Message;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.jface.dialogs.MessageDialog;
public class RefreshAction implements IWorkbenchWindowActionDelegate {
@@ -32,9 +25,17 @@
* @see IWorkbenchWindowActionDelegate#run
*/
public void run(IAction action) {
- IvyClasspathUtil.refreshContainer();
+ IvyClasspathContainer cp;
+ try {
+ cp = IvyClasspathUtil.getIvyClasspathContainer(IvyClasspathUtil.getSelectionInJavaPackageView());
+ } catch (JavaModelException e) {
+ Message.error(e.getMessage());
+ return;
+ }
+ if (cp != null) {
+ cp.refresh();
+ }
}
-
/**
* Selection in the workbench has been changed. We
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAction.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAction.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAction.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAction.java Thu Jan 3 01:36:39 2008
@@ -1,19 +1,13 @@
package org.apache.ivyde.eclipse.ui.actions;
+import org.apache.ivy.util.Message;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
+import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.jface.dialogs.MessageDialog;
public class ResolveAction implements IWorkbenchWindowActionDelegate {
@@ -31,23 +25,15 @@
* @see IWorkbenchWindowActionDelegate#run
*/
public void run(IAction action) {
- ISelection sel = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
- if (sel instanceof IStructuredSelection) {
- IStructuredSelection s = (IStructuredSelection)sel;
- Object o = s.getFirstElement();
- if (o instanceof ClassPathContainer) {
- IPath path = ((ClassPathContainer)o).getClasspathEntry().getPath();
- IJavaProject project = ((ClassPathContainer)o).getJavaProject();
- try {
- IClasspathContainer fContainer= JavaCore.getClasspathContainer(path, project);
- if (fContainer instanceof IvyClasspathContainer) {
- IvyClasspathContainer ivycp = (IvyClasspathContainer)fContainer;
- ivycp.resolve();
- }
- } catch (JavaModelException e) {
- }
-
- }
+ IvyClasspathContainer cp;
+ try {
+ cp = IvyClasspathUtil.getIvyClasspathContainer(IvyClasspathUtil.getSelectionInJavaPackageView());
+ } catch (JavaModelException e) {
+ Message.error(e.getMessage());
+ return;
+ }
+ if (cp != null) {
+ cp.resolve();
}
}
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAllAction.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAllAction.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAllAction.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/actions/ResolveAllAction.java Thu Jan 3 01:36:39 2008
@@ -34,7 +34,7 @@
protected IStatus run(IProgressMonitor monitor) {
Collection containers = IvyPlugin.getDefault().getAllContainers();
monitor.beginTask("Resolve all dependencies", containers.size());
- for (Iterator iter = IvyPlugin.getDefault().getAllContainers().iterator(); iter.hasNext();) {
+ for (Iterator iter = containers.iterator(); iter.hasNext();) {
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
Modified: ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/views/ReportView.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/views/ReportView.java?rev=608392&r1=608391&r2=608392&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/views/ReportView.java (original)
+++ ant/ivy/ivyde/trunk/src/java/org/apache/ivyde/eclipse/ui/views/ReportView.java Thu Jan 3 01:36:39 2008
@@ -4,12 +4,8 @@
import org.apache.ivy.util.Message;
import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathContainer;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
+import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil;
import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.SWT;
@@ -38,29 +34,24 @@
public void selectionChanged(IWorkbenchPart part, ISelection sel) {
if (sel instanceof IStructuredSelection) {
- IStructuredSelection s = (IStructuredSelection)sel;
- Object o = s.getFirstElement();
- if (o instanceof ClassPathContainer) {
- IPath path = ((ClassPathContainer)o).getClasspathEntry().getPath();
- IJavaProject project = ((ClassPathContainer)o).getJavaProject();
- try {
- IClasspathContainer fContainer= JavaCore.getClasspathContainer(path, project);
- if (fContainer instanceof IvyClasspathContainer) {
- _browser.setUrl("");
- IvyClasspathContainer ivycp = (IvyClasspathContainer)fContainer;
- URL report = ivycp.getReportUrl();
- if (report != null) {
- if (!_browser.setUrl(report.toExternalForm())) {
- _browser.setUrl("");
- Message.warn("impossible to set report view url to "+report.toExternalForm());
- }
- }
+ IvyClasspathContainer ivycp;
+ try {
+ ivycp = IvyClasspathUtil.getIvyClasspathContainer((IStructuredSelection) sel);
+ } catch (JavaModelException e) {
+ Message.error(e.getMessage());
+ return;
+ }
+ if (ivycp != null) {
+ _browser.setUrl("");
+ URL report = ivycp.getReportUrl();
+ if (report != null) {
+ if (!_browser.setUrl(report.toExternalForm())) {
+ _browser.setUrl("");
+ Message.warn("impossible to set report view url to " + report.toExternalForm());
}
- } catch (JavaModelException e) {
}
-
}
}
- }
+ }
}