Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2004-10-19 13:05:45 +0000
committerJean Michel-Lemieux2004-10-19 13:05:45 +0000
commitec202b0f8c6b253cfa2e2bdd53486f5589b16021 (patch)
tree3e8b58d0107ba8b845987ff60ddef5f0b73314e5
parent3de143efa44ae58e735514e92248a2196e639d41 (diff)
downloadeclipse.platform.team-ec202b0f8c6b253cfa2e2bdd53486f5589b16021.tar.gz
eclipse.platform.team-ec202b0f8c6b253cfa2e2bdd53486f5589b16021.tar.xz
eclipse.platform.team-ec202b0f8c6b253cfa2e2bdd53486f5589b16021.zip
*** empty log message ***
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/traversals/IModelElement.java3
-rw-r--r--bundles/org.eclipse.team.cvs.ui/plugin.xml123
-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.xml7
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java83
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java38
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/TeamAction.java16
7 files changed, 236 insertions, 110 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/traversals/IModelElement.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/traversals/IModelElement.java
index 843800051..45d76ca98 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/traversals/IModelElement.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/traversals/IModelElement.java
@@ -11,6 +11,7 @@
package org.eclipse.team.core.traversals;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -27,7 +28,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
* @see IResource
* @since 3.1
*/
-public interface IModelElement {
+public interface IModelElement extends IAdaptable {
/**
* Returns one or more traversals that can be used to access all the
diff --git a/bundles/org.eclipse.team.cvs.ui/plugin.xml b/bundles/org.eclipse.team.cvs.ui/plugin.xml
index 713e4a784..2138bfd3d 100644
--- a/bundles/org.eclipse.team.cvs.ui/plugin.xml
+++ b/bundles/org.eclipse.team.cvs.ui/plugin.xml
@@ -176,24 +176,16 @@
value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
</filter>
<action
- label="%IgnoreAction.label"
- helpContextId="org.eclipse.team.cvs.ui.team_ignore_action_context"
- tooltip="%IgnoreAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction"
- menubarPath="team.main/group3"
- id="org.eclipse.team.ccvs.ui.ignore">
- </action>
- <action
- label="%AddAction.label"
- helpContextId="org.eclipse.team.cvs.ui.team_add_action_context"
- tooltip="%AddAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.AddAction"
- menubarPath="team.main/group3"
- id="org.eclipse.team.ccvs.ui.add">
+ label="%ShowEditorsAction.label"
+ helpContextId="org.eclipse.team.cvs.ui.team_show_editors_action_context"
+ tooltip="%ShowEditorsAction.tooltip"
+ class="org.eclipse.team.internal.ccvs.ui.actions.ShowEditorsAction"
+ menubarPath="team.main/group4"
+ id="org.eclipse.team.ccvs.ui.showeditors">
</action>
<action
label="%ShowHistoryAction.label"
- icon="icons/full/ctool16/history.gif"
+ icon="icons/full/etool16/history.gif"
helpContextId="org.eclipse.team.cvs.ui.show_in_history_action_context"
tooltip="%ShowHistoryAction.tooltip"
class="org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction"
@@ -202,7 +194,7 @@
</action>
<action
label="%ShowAnnotationAction.label"
- icon="icons/full/ctool16/annotate.gif"
+ icon="icons/full/etool16/annotate.gif"
helpContextId="org.eclipse.team.cvs.ui.get_annotate_action_context"
tooltip="%ShowAnnotationAction.tooltip"
class="org.eclipse.team.internal.ccvs.ui.actions.ShowAnnotationAction"
@@ -243,9 +235,9 @@
</action>
</objectContribution>
<objectContribution
- objectClass="org.eclipse.core.resources.IResource"
+ objectClass="org.eclipse.team.core.traversals.IModelElement"
adaptable="true"
- id="org.eclipse.team.ccvs.ui.ResourceContributions">
+ id="org.eclipse.team.ccvs.ui.ModelElementContributions">
<filter
name="projectPersistentProperty"
value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
@@ -353,51 +345,7 @@
menubarPath="team.main/group1"
id="org.eclipse.team.ccvs.ui.sync">
</action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IResource"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.ResourceContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%ShowEditorsAction.label"
- helpContextId="org.eclipse.team.cvs.ui.team_show_editors_action_context"
- tooltip="%ShowEditorsAction.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.ShowEditorsAction"
- menubarPath="team.main/group4"
- id="org.eclipse.team.ccvs.ui.showeditors">
- </action>
- </objectContribution>
-<!-- ************** Project Menu *************** -->
- <objectContribution
- objectClass="org.eclipse.core.resources.IProject"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IProjectContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="%UnmanageFolder.label"
- helpContextId="org.eclipse.team.cvs.ui.team_disconnect_action_context"
- tooltip="%UnmanageFolder.tooltip"
- class="org.eclipse.team.internal.ccvs.ui.actions.UnmanageAction"
- menubarPath="team.main/projectGroup"
- id="org.eclipse.team.ccvs.ui.unmanage">
- </action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IContainer"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IContainerContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
+ <action
label="%RestoreFromRepositoryAction.label"
helpContextId="org.eclipse.team.cvs.ui.team_restore_from_repository_action_context"
tooltip="%RestoreFromRepositoryAction.tooltip"
@@ -405,15 +353,6 @@
menubarPath="team.main/group4"
id="org.eclipse.team.ccvs.ui.restoreFromRepository">
</action>
- </objectContribution>
- <objectContribution
- objectClass="org.eclipse.core.resources.IFolder"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.IFolderContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
<action
label="%IgnoreAction.label"
helpContextId="org.eclipse.team.cvs.ui.team_ignore_action_context"
@@ -431,6 +370,24 @@
id="org.eclipse.team.ccvs.ui.add">
</action>
</objectContribution>
+<!-- ************** Project Menu *************** -->
+ <objectContribution
+ objectClass="org.eclipse.core.resources.IProject"
+ adaptable="true"
+ id="org.eclipse.team.ccvs.ui.IProjectContributions">
+ <filter
+ name="projectPersistentProperty"
+ value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
+ </filter>
+ <action
+ label="%UnmanageFolder.label"
+ helpContextId="org.eclipse.team.cvs.ui.team_disconnect_action_context"
+ tooltip="%UnmanageFolder.tooltip"
+ class="org.eclipse.team.internal.ccvs.ui.actions.UnmanageAction"
+ menubarPath="team.main/projectGroup"
+ id="org.eclipse.team.ccvs.ui.unmanage">
+ </action>
+ </objectContribution>
<objectContribution
objectClass="org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder"
id="org.eclipse.team.ccvs.ui.RemoteFolderContributions">
@@ -643,28 +600,6 @@
</extension>
<!-- ************** Model Element Contributions ********************** -->
- <extension
- point="org.eclipse.ui.popupMenus">
- <objectContribution
- objectClass="org.eclipse.core.resources.IResource"
- adaptable="true"
- id="org.eclipse.team.ccvs.ui.ModelElementContributions">
- <filter
- name="projectPersistentProperty"
- value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
- </filter>
- <action
- label="Commit (Model Element)"
- tooltip="Commit (Model Element)"
- class="org.eclipse.team.internal.ccvs.ui.actions.CommitAction"
- menubarPath="team.main/group1"
- id="org.eclipse.team.ccvs.ui.commit2">
- <enablement>
- <adapt type="org.eclipse.team.core.traversals.IModelElement" />
- </enablement>
- </action>
- </objectContribution>
- </extension>
<!-- ************** Views ********************** -->
<extension
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
new file mode 100644
index 000000000..8e988c5e2
--- /dev/null
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/actions/CommitAction2.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * 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 525e2c4b0..fb63687d1 100644
--- a/bundles/org.eclipse.team.ui/plugin.xml
+++ b/bundles/org.eclipse.team.ui/plugin.xml
@@ -295,7 +295,12 @@
point="org.eclipse.core.runtime.adapters">
<factory
class="org.eclipse.team.internal.ui.ModelElementlJavaFactory"
- adaptableType="org.eclipse.jdt.core.IPackageFragment">
+ adaptableType="org.eclipse.jdt.core.IJavaElement">
+ <adapter type="org.eclipse.team.core.traversals.IModelElement"/>
+ </factory>
+ <factory
+ class="org.eclipse.team.internal.ui.ModelElementlJavaFactory"
+ adaptableType="org.eclipse.core.resources.IResource">
<adapter type="org.eclipse.team.core.traversals.IModelElement"/>
</factory>
</extension>
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java
index 0d75d7752..eecf02239 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/ModelElementlJavaFactory.java
@@ -13,17 +13,21 @@ package org.eclipse.team.internal.ui;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.IPackageFragment;
+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 JavaPackageFragmentModelElement implements IModelElement {
+ private static class JavaModelElement extends PlatformObject implements IModelElement{
- private final IPackageFragment fragment;
+ private final IJavaElement fragment;
private ITraversal[] traversals;
- public JavaPackageFragmentModelElement(IPackageFragment fragment) {
+ public JavaModelElement(IJavaElement fragment) {
this.fragment = fragment;
}
@@ -50,17 +54,82 @@ public class ModelElementlJavaFactory implements IAdapterFactory {
}
}
+ private static class JavaModelElementWorkbenchAdapter implements IWorkbenchAdapter {
+ private final IJavaElement element;
+ private final IWorkbenchAdapter adapter = new JavaWorkbenchAdapter();
+
+ public JavaModelElementWorkbenchAdapter(IJavaElement element) {
+ this.element = element;
+ }
+
+ public Object[] getChildren(Object o) {
+ return adapter.getChildren(element);
+ }
+
+ public ImageDescriptor getImageDescriptor(Object object) {
+ return adapter.getImageDescriptor(element);
+ }
+
+ public String getLabel(Object o) {
+ return adapter.getLabel(element);
+ }
+
+ public Object getParent(Object o) {
+ return adapter.getParent(element);
+ }
+ }
+
+ private static class ResourceModelElement extends PlatformObject implements IModelElement {
+
+ private final IResource resource;
+ private ITraversal[] traversals;
+
+ public ResourceModelElement(IResource resource) {
+ this.resource = resource;
+ }
+
+ public ITraversal[] getTraversals(IModelContext context, IProgressMonitor monitor) throws CoreException {
+ if(traversals == null) {
+ traversals = new ITraversal[]{
+ new ITraversal() {
+
+ public IProject getProject() {
+ return resource.getProject();
+ }
+
+ public IResource[] getResources() {
+ return new IResource[]{resource};
+ }
+
+ public int getDepth() {
+ return IResource.DEPTH_INFINITE;
+ }
+ }
+ };
+ }
+ return traversals;
+ }
+ }
+
+
+
public Object getAdapter(final Object o, Class adapterType) {
if (adapterType.isInstance(o)) {
return o;
}
- if (adapterType == IModelElement.class && o instanceof IPackageFragment) {
- return new JavaPackageFragmentModelElement((IPackageFragment)o);
+ if (adapterType == IModelElement.class && o instanceof IJavaElement) {
+ return new JavaModelElement((IJavaElement)o);
+ } else if(adapterType == IModelElement.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();
}
return null;
}
public Class[] getAdapterList() {
- return new Class[]{IModelElement.class};
+ return new Class[]{IModelElement.class, IWorkbenchAdapter.class};
}
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java
new file mode 100644
index 000000000..b6334fd27
--- /dev/null
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/actions/LogicalResourceAction.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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 org.eclipse.team.internal.ui.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.core.runtime.IAdapterManager;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.team.core.TeamException;
+import org.eclipse.team.core.traversals.IModelElement;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+
+
+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);
+ }
+ }
+
+ protected boolean isEnabled() throws TeamException {
+ return true;
+ }
+}
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 7a60faf52..b17ac03b6 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
@@ -169,9 +169,9 @@ public abstract class TeamAction extends ActionDelegate implements IObjectAction
*
* @return the selected resources based on the available traversals.
*/
- protected ITraversal[] getSelectedTraversals(String providerId) throws TeamException {
+ public ITraversal[] getSelectedTraversals(String providerId) throws TeamException {
try {
- Object[] elements = getSelectedResources(IModelElement.class);
+ Object[] elements = getSelectedAdaptables(selection, IModelElement.class);
ArrayList providerTraversals = new ArrayList();
if(elements.length > 0) {
for (int i = 0; i < elements.length; i++) {
@@ -179,15 +179,17 @@ public abstract class TeamAction extends ActionDelegate implements IObjectAction
ITraversal[] traversals = element.getTraversals(getModelContext(), null);
for (int j = 0; j < traversals.length; j++) {
ITraversal traversal = traversals[j];
- RepositoryProvider provider = RepositoryProvider.getProvider(traversal.getProject());
- if (providerId != null && provider.getID().equals(providerId)) {
+ boolean addIt = true;
+ if(providerId != null) {
+ RepositoryProvider provider = RepositoryProvider.getProvider(traversal.getProject());
+ addIt = (providerId != null && provider.getID().equals(providerId));
+ }
+ if(addIt)
providerTraversals.add(traversal);
- } else {
- throw new TeamException("Cannot operate on resources from different repository provider.");
}
}
}
- }
+
return (ITraversal[]) providerTraversals.toArray(new ITraversal[providerTraversals.size()]);
} catch (CoreException e) {
throw TeamException.asTeamException(e);

Back to the top