Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2004-10-28 20:57:07 +0000
committerJean Michel-Lemieux2004-10-28 20:57:07 +0000
commit519f4f13b31904589766f051eaa85ca5d7240f01 (patch)
tree6ece9b23ed671e62a6410076599fb18bbeaec233
parentdcf90ad4390d66b03b609a297a416cce9a9fa7e2 (diff)
downloadeclipse.platform.team-519f4f13b31904589766f051eaa85ca5d7240f01.tar.gz
eclipse.platform.team-519f4f13b31904589766f051eaa85ca5d7240f01.tar.xz
eclipse.platform.team-519f4f13b31904589766f051eaa85ca5d7240f01.zip
*** empty log message ***
-rw-r--r--bundles/org.eclipse.team.cvs.ui/plugin.xml4
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction2.java76
-rw-r--r--bundles/org.eclipse.team.ui/plugin.xml90
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java24
-rw-r--r--bundles/org.eclipse.team.ui/src/resourcemapping/LogicalResourceAction.java (renamed from bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java)25
-rw-r--r--bundles/org.eclipse.team.ui/src/resourcemapping/ModelElementlJavaFactory.java (renamed from bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java)46
-rw-r--r--bundles/org.eclipse.team.ui/src/resourcemapping/PropertyTester.java56
-rw-r--r--bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingSelectionDialog.java42
-rw-r--r--bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingWorkbenchAdapter.java78
9 files changed, 311 insertions, 130 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
index 2138bfd3d..375da82fd 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.xml
@@ -235,9 +235,9 @@
</action>
</objectContribution>
<objectContribution
- objectClass="org.eclipse.team.core.traversals.IModelElement"
+ objectClass="org.eclipse.core.resources.mapping.IResourceMapper"
adaptable="true"
- id="org.eclipse.team.ccvs.ui.ModelElementContributions">
+ id="org.eclipse.team.ccvs.ui.ResourceMapperContributions">
<filter
name="projectPersistentProperty"
value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction2.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction2.java
deleted file mode 100644
index 8e988c5e2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction2.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.traversals.ITraversal;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.operations.CommitOperation;
-
-/**
- * Action for checking in files to a CVS provider.
- * Prompts the user for a release comment.
- */
-public class CommitAction2 extends WorkspaceAction {
-
- /*
- * @see CVSAction#execute(IAction)
- */
- public void execute(IAction action) throws InvocationTargetException, InterruptedException {
-
- try {
- ITraversal[] traversals = getSelectedTraversals(CVSProviderPlugin.getTypeId());
- } catch (TeamException e1) {
- e1.printStackTrace();
- }
-
- final CommitOperation operation = new CommitOperation(getTargetPart(), getSelectedResources(), null);
- final boolean[] retVal = {true};
- run(new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- retVal[0] = operation.performPrompting(monitor);
- } catch (CVSException e) {
- new InvocationTargetException(e);
- }
- }
- }, false, PROGRESS_BUSYCURSOR);
- if(retVal[0])
- operation.run();
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.CVSAction#getErrorTitle()
- */
- protected String getErrorTitle() {
- return Policy.bind("CommitAction.commitFailed"); //$NON-NLS-1$
- }
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForUnmanagedResources()
- */
- protected boolean isEnabledForUnmanagedResources() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.team.internal.ccvs.ui.actions.WorkspaceAction#isEnabledForNonExistantResources()
- */
- protected boolean isEnabledForNonExistantResources() {
- return true;
- }
-}
diff --git a/bundles/org.eclipse.team.ui/plugin.xml b/bundles/org.eclipse.team.ui/plugin.xml
index fb63687d1..ff915ac69 100644
--- a/bundles/org.eclipse.team.ui/plugin.xml
+++ b/bundles/org.eclipse.team.ui/plugin.xml
@@ -27,6 +27,7 @@
<import plugin="org.eclipse.ui.forms"/>
<import plugin="org.eclipse.jdt.core"/>
<import plugin="org.eclipse.jdt.ui"/>
+ <import plugin="org.eclipse.core.expressions"/>
</requires>
@@ -116,7 +117,7 @@
enablesFor="1"
id="nonbound.org.eclipse.team.ui.ConfigureProject">
</action>
- </objectContribution>
+ </objectContribution>
</extension>
<!-- ************** Views ********************** -->
<extension
@@ -289,20 +290,97 @@
<validator class="org.eclipse.team.internal.ui.DefaultUIFileModificationValidator"/>
</extension>
+ <!-- RESOURCE MAPPINGS TESTS -->
<extension
- id="org.eclipse.team.ui.modelElementAdapters"
+ id="org.eclipse.team.ui.resourceMappingAdapters"
point="org.eclipse.core.runtime.adapters">
<factory
- class="org.eclipse.team.internal.ui.ModelElementlJavaFactory"
+ class="resourcemapping.ModelElementlJavaFactory"
adaptableType="org.eclipse.jdt.core.IJavaElement">
- <adapter type="org.eclipse.team.core.traversals.IModelElement"/>
+ <adapter type="org.eclipse.core.resources.mapping.IResourceMapper"/>
</factory>
<factory
- class="org.eclipse.team.internal.ui.ModelElementlJavaFactory"
+ class="resourcemapping.ModelElementlJavaFactory"
adaptableType="org.eclipse.core.resources.IResource">
- <adapter type="org.eclipse.team.core.traversals.IModelElement"/>
+ <adapter type="org.eclipse.core.resources.mapping.IResourceMapper"/>
+ </factory>
+ <factory
+ class="resourcemapping.ModelElementlJavaFactory"
+ adaptableType="org.eclipse.core.resources.mapping.IResourceMapper">
+ <adapter type=" org.eclipse.ui.model.IWorkbenchAdapter"/>
</factory>
</extension>
+
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ adaptable="true"
+ objectClass="org.eclipse.core.resources.mapping.IResourceMapper"
+ id="org.eclipse.team.ui.ResourceMappingContributions">
+ <enablement>
+ <adapt type="org.eclipse.core.resources.mapping.IResourceMapper">
+ <test property="org.eclipse.team.ui.repositoryId" args="org.eclipse.team.cvs.core.cvsnature" />
+ </adapt>
+ </enablement>
+ <menu
+ label="%TeamGroupMenu.label"
+ path="additions"
+ id="team.main">
+ <separator
+ name="group1">
+ </separator>
+ <separator
+ name="group2">
+ </separator>
+ <separator
+ name="group3">
+ </separator>
+ <separator
+ name="group4">
+ </separator>
+ <separator
+ name="group5">
+ </separator>
+ <separator
+ name="group6">
+ </separator>
+ <separator
+ name="group7">
+ </separator>
+ <separator
+ name="group8">
+ </separator>
+ <separator
+ name="group9">
+ </separator>
+ <separator
+ name="group10">
+ </separator>
+ <separator
+ name="targetGroup">
+ </separator>
+ <separator
+ name="projectGroup">
+ </separator>
+ </menu>
+ <action
+ label="Test Logical Resource Action"
+ icon="icons/full/elcl16/checkin_action.gif"
+ class="resourcemapping.LogicalResourceAction"
+ menubarPath="team.main/projectGroup"
+ id="org.eclipse.team.ui.logicalResourceAction"/>
+ </objectContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.core.expressions.propertyTesters">
+ <propertyTester
+ namespace="org.eclipse.team.ui"
+ type="org.eclipse.core.resources.mapping.IResourceMapper"
+ class="resourcemapping.PropertyTester"
+ properties="repositoryId"
+ id="org.eclipse.team.ui.repositoryIdTester"/>
+ </extension>
</plugin>
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java
index b17ac03b6..4eb21c4e7 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java
@@ -23,6 +23,7 @@ import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceStatus;
import org.eclipse.core.resources.IStorage;
+import org.eclipse.core.resources.mapping.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -37,9 +38,6 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.traversals.IModelContext;
-import org.eclipse.team.core.traversals.IModelElement;
-import org.eclipse.team.core.traversals.ITraversal;
import org.eclipse.team.internal.core.TeamPlugin;
import org.eclipse.team.internal.ui.TeamUIPlugin;
import org.eclipse.team.internal.ui.Utils;
@@ -164,6 +162,10 @@ public abstract class TeamAction extends ActionDelegate implements IObjectAction
return (IResource[])getSelectedResources(IResource.class);
}
+ protected IStructuredSelection getSelection() {
+ return selection;
+ }
+
/**
* Returns the selected resource based on the available traversals.
*
@@ -171,18 +173,22 @@ public abstract class TeamAction extends ActionDelegate implements IObjectAction
*/
public ITraversal[] getSelectedTraversals(String providerId) throws TeamException {
try {
- Object[] elements = getSelectedAdaptables(selection, IModelElement.class);
+ Object[] elements = getSelectedAdaptables(selection, IResourceMapper.class);
ArrayList providerTraversals = new ArrayList();
if(elements.length > 0) {
for (int i = 0; i < elements.length; i++) {
- IModelElement element = (IModelElement) elements[i];
+ IResourceMapper element = (IResourceMapper) elements[i];
ITraversal[] traversals = element.getTraversals(getModelContext(), null);
for (int j = 0; j < traversals.length; j++) {
ITraversal traversal = traversals[j];
boolean addIt = true;
if(providerId != null) {
- RepositoryProvider provider = RepositoryProvider.getProvider(traversal.getProject());
- addIt = (providerId != null && provider.getID().equals(providerId));
+ IProject[] projects = traversal.getProjects();
+ for (int k = 0; k < projects.length; k++) {
+ IProject project = projects[k];
+ RepositoryProvider provider = RepositoryProvider.getProvider(project);
+ addIt = (providerId != null && provider.getID().equals(providerId));
+ }
}
if(addIt)
providerTraversals.add(traversal);
@@ -196,8 +202,8 @@ public abstract class TeamAction extends ActionDelegate implements IObjectAction
}
}
- protected IModelContext getModelContext() {
- return new IModelContext() {
+ protected ITraversalContext getModelContext() {
+ return new ITraversalContext() {
public boolean contentDiffers(IFile file, IProgressMonitor monitor) throws CoreException {
return false;
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java b/bundles/org.eclipse.team.ui/src/resourcemapping/LogicalResourceAction.java
index b6334fd27..a668dd904 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java
+++ b/bundles/org.eclipse.team.ui/src/resourcemapping/LogicalResourceAction.java
@@ -8,31 +8,24 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.team.internal.ui.actions;
+package resourcemapping;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.resources.mapping.IResourceMapper;
import org.eclipse.jface.action.IAction;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.traversals.IModelElement;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
+import org.eclipse.team.internal.ui.actions.TeamAction;
public class LogicalResourceAction extends TeamAction {
public void run(IAction action) {
- IAdapterManager adapterManager = Platform.getAdapterManager();
- Object[] elements = getSelectedAdaptables(selection, IModelElement.class);
- List uiAdapters = new ArrayList();
- for (int i = 0; i < elements.length; i++) {
- IModelElement element = (IModelElement)elements[i];
- IWorkbenchAdapter adapter = (IWorkbenchAdapter)adapterManager.getAdapter(element, IWorkbenchAdapter.class);
- }
+ IResourceMapper[] m = (IResourceMapper[])getSelectedAdaptables(getSelection(), IResourceMapper.class);
+ ResourceMappingSelectionDialog d = new ResourceMappingSelectionDialog(Display.getDefault().getActiveShell(), m);
+ d.open();
}
protected boolean isEnabled() throws TeamException {
- return true;
+ IResourceMapper[] m = (IResourceMapper[])getSelectedAdaptables(getSelection(), IResourceMapper.class);
+ return (m != null && m.length > 0);
}
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java b/bundles/org.eclipse.team.ui/src/resourcemapping/ModelElementlJavaFactory.java
index eecf02239..799de481a 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java
+++ b/bundles/org.eclipse.team.ui/src/resourcemapping/ModelElementlJavaFactory.java
@@ -8,40 +8,42 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.team.internal.ui;
+package resourcemapping;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.mapping.*;
import org.eclipse.core.runtime.*;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.internal.ui.JavaWorkbenchAdapter;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.core.traversals.*;
-import org.eclipse.ui.internal.ide.model.WorkbenchFolder;
import org.eclipse.ui.model.IWorkbenchAdapter;
public class ModelElementlJavaFactory implements IAdapterFactory {
- private static class JavaModelElement extends PlatformObject implements IModelElement{
+ private static class JavaModelElement extends PlatformObject implements IResourceMapper{
- private final IJavaElement fragment;
+ private final IJavaElement javaElement;
private ITraversal[] traversals;
public JavaModelElement(IJavaElement fragment) {
- this.fragment = fragment;
+ this.javaElement = fragment;
}
- public ITraversal[] getTraversals(IModelContext context, IProgressMonitor monitor) throws CoreException {
+ public Object getModelObject() {
+ return javaElement;
+ }
+ public ITraversal[] getTraversals(ITraversalContext context, IProgressMonitor monitor) throws CoreException {
if(traversals == null) {
traversals = new ITraversal[]{
new ITraversal() {
- public IProject getProject() {
- return fragment.getResource().getProject();
+ public IProject[] getProjects() {
+ return new IProject[] {javaElement.getResource().getProject()};
}
public IResource[] getResources() {
- return new IResource[]{fragment.getResource()};
+ return new IResource[]{javaElement.getResource()};
}
public int getDepth() {
@@ -79,7 +81,7 @@ public class ModelElementlJavaFactory implements IAdapterFactory {
}
}
- private static class ResourceModelElement extends PlatformObject implements IModelElement {
+ private static class ResourceModelElement extends PlatformObject implements IResourceMapper {
private final IResource resource;
private ITraversal[] traversals;
@@ -88,13 +90,17 @@ public class ModelElementlJavaFactory implements IAdapterFactory {
this.resource = resource;
}
- public ITraversal[] getTraversals(IModelContext context, IProgressMonitor monitor) throws CoreException {
+ public Object getModelObject() {
+ return resource;
+ }
+
+ public ITraversal[] getTraversals(ITraversalContext context, IProgressMonitor monitor) throws CoreException {
if(traversals == null) {
traversals = new ITraversal[]{
new ITraversal() {
- public IProject getProject() {
- return resource.getProject();
+ public IProject[] getProjects() {
+ return new IProject[] {resource.getProject()};
}
public IResource[] getResources() {
@@ -117,19 +123,17 @@ public class ModelElementlJavaFactory implements IAdapterFactory {
if (adapterType.isInstance(o)) {
return o;
}
- if (adapterType == IModelElement.class && o instanceof IJavaElement) {
+ if (adapterType == IResourceMapper.class && o instanceof IJavaElement) {
return new JavaModelElement((IJavaElement)o);
- } else if(adapterType == IModelElement.class && o instanceof IResource) {
+ } else if(adapterType == IResourceMapper.class && o instanceof IResource) {
return new ResourceModelElement((IResource)o);
- } else if(adapterType == IWorkbenchAdapter.class && o instanceof JavaModelElement) {
- return new JavaWorkbenchAdapter();
- } else if(adapterType == IWorkbenchAdapter.class && o instanceof ResourceModelElement) {
- return new WorkbenchFolder();
+ } else if(adapterType == IWorkbenchAdapter.class && o instanceof IResourceMapper) {
+ return new ResourceMappingWorkbenchAdapter();
}
return null;
}
public Class[] getAdapterList() {
- return new Class[]{IModelElement.class, IWorkbenchAdapter.class};
+ return new Class[]{IResourceMapper.class, IWorkbenchAdapter.class};
}
}
diff --git a/bundles/org.eclipse.team.ui/src/resourcemapping/PropertyTester.java b/bundles/org.eclipse.team.ui/src/resourcemapping/PropertyTester.java
new file mode 100644
index 000000000..26c5b58e8
--- /dev/null
+++ b/bundles/org.eclipse.team.ui/src/resourcemapping/PropertyTester.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package resourcemapping;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.mapping.IResourceMapper;
+import org.eclipse.core.resources.mapping.ITraversal;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.team.core.RepositoryProvider;
+
+
+public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
+
+ private static final String REPOSITORYID_PROPERTY = "repositoryId"; //$NON-NLS-1$
+
+ private boolean sharedWith(IResourceMapper mapper, String id) {
+ ITraversal[] traversals;
+ try {
+ traversals = mapper.getTraversals(null, null);
+ for (int j = 0; j < traversals.length; j++) {
+ ITraversal traversal = traversals[j];
+ IProject[] projects = traversal.getProjects();
+ if(projects.length == 0) return false;
+ for (int k = 0; k < projects.length; k++) {
+ IProject project = projects[k];
+ RepositoryProvider provider = RepositoryProvider.getProvider(project);
+ if (provider == null || !provider.getID().equals(id))
+ return false;
+ }
+ }
+ return true;
+ } catch (CoreException e) {
+ return false;
+ }
+ }
+
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ IResourceMapper mapper = (IResourceMapper)receiver;
+ if(property.equals(REPOSITORYID_PROPERTY)) {
+ // check that all selected resources are shared with the same
+ // repository provider.
+ if(args == null) return false;
+ String repoId = (String)args[0];
+ return sharedWith(mapper, repoId);
+ }
+ return false;
+ }
+}
diff --git a/bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingSelectionDialog.java b/bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingSelectionDialog.java
new file mode 100644
index 000000000..f871d1dd1
--- /dev/null
+++ b/bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingSelectionDialog.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package resourcemapping;
+
+import org.eclipse.core.resources.mapping.IResourceMapper;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.model.*;
+
+public class ResourceMappingSelectionDialog extends Dialog {
+
+ private final IResourceMapper[] mappers;
+ private StructuredViewer viewer;
+
+ protected ResourceMappingSelectionDialog(Shell parentShell, IResourceMapper[] mappers) {
+ super(parentShell);
+ this.mappers = mappers;
+ }
+
+ protected Control createDialogArea(Composite parent) {
+ Composite top = (Composite) super.createDialogArea(parent);
+ viewer = new TreeViewer(top);
+ GridData data = new GridData(GridData.FILL_BOTH);
+ data.heightHint = 300;
+ viewer.getControl().setLayoutData(data);
+ viewer.setContentProvider(new BaseWorkbenchContentProvider());
+ viewer.setLabelProvider(new WorkbenchLabelProvider());
+ viewer.setInput(new AdaptableList(mappers));
+ return top;
+ }
+}
diff --git a/bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingWorkbenchAdapter.java b/bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingWorkbenchAdapter.java
new file mode 100644
index 000000000..15a6eb2ee
--- /dev/null
+++ b/bundles/org.eclipse.team.ui/src/resourcemapping/ResourceMappingWorkbenchAdapter.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package resourcemapping;
+
+import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.mapping.IResourceMapper;
+import org.eclipse.core.resources.mapping.ITraversal;
+import org.eclipse.core.runtime.*;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+
+public class ResourceMappingWorkbenchAdapter implements IWorkbenchAdapter {
+
+ public Object[] getChildren(Object o) {
+ if (o instanceof IResourceMapper) {
+ try {
+ List resources = new ArrayList();
+ ITraversal[] traversals = ((IResourceMapper) o).getTraversals(null, new NullProgressMonitor());
+ for (int i = 0; i < traversals.length; i++) {
+ ITraversal traversal = traversals[i];
+ resources.addAll(Arrays.asList(traversal.getResources()));
+ }
+ if(resources.size() == 1) {
+ return new Object[0];
+ } else {
+ return (IResource[]) resources.toArray(new IResource[resources.size()]);
+ }
+ } catch (CoreException e) {
+ // break and return no children
+ }
+ }
+ return new Object[0];
+ }
+
+ public ImageDescriptor getImageDescriptor(Object o) {
+ IWorkbenchAdapter wbadapter = getModelObjectAdapter(o);
+ if (wbadapter != null) {
+ return wbadapter.getImageDescriptor(((IResourceMapper)o).getModelObject());
+ }
+ return null; //$NON-NLS-1$
+ }
+
+ public String getLabel(Object o) {
+ IWorkbenchAdapter wbadapter = getModelObjectAdapter(o);
+ if (wbadapter != null) {
+ return wbadapter.getLabel(((IResourceMapper)o).getModelObject());
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public Object getParent(Object o) {
+ return null;
+ }
+
+ protected IWorkbenchAdapter getModelObjectAdapter(Object o) {
+ if (o instanceof IResourceMapper) {
+ Object object = ((IResourceMapper) o).getModelObject();
+ if (object instanceof IAdaptable) {
+ IWorkbenchAdapter wbadapter = (IWorkbenchAdapter) ((IAdaptable) object).getAdapter(IWorkbenchAdapter.class);
+ if (wbadapter != null) {
+ return wbadapter;
+ }
+ }
+ }
+ return null;
+ }
+}

Back to the top