Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2004-03-16 21:11:41 +0000
committerJean Michel-Lemieux2004-03-16 21:11:41 +0000
commit0de9583bf935d2c4938765fe688062ea8df9e3db (patch)
tree36de09c510c1b7093e9f9c2f52e4c5c0f4613cdf /bundles/org.eclipse.team.ui/src
parentd4b8d0ac3b1b133cd0f49ec25b5fc9165c488a3c (diff)
downloadeclipse.platform.team-0de9583bf935d2c4938765fe688062ea8df9e3db.tar.gz
eclipse.platform.team-0de9583bf935d2c4938765fe688062ea8df9e3db.tar.xz
eclipse.platform.team-0de9583bf935d2c4938765fe688062ea8df9e3db.zip
Refactored model ui parts
Diffstat (limited to 'bundles/org.eclipse.team.ui/src')
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java6
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ActionDelegateManager.java72
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangesSection.java8
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompressedFoldersModelProvider.java14
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/DiffNodeWorkbenchAdapter.java6
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelProvider.java31
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SubscriberParticipantPage.java (renamed from bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/subscriber/SubscriberParticipantPage.java)25
7 files changed, 116 insertions, 46 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java
index 61ebefdb7..7920335a3 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Utils.java
@@ -32,7 +32,7 @@ import org.eclipse.team.core.synchronize.SyncInfo;
import org.eclipse.team.core.variants.IResourceVariant;
import org.eclipse.team.ui.TeamImages;
import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant;
-import org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement;
+import org.eclipse.team.ui.synchronize.viewers.ISynchronizeModelElement;
import org.eclipse.ui.*;
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
@@ -413,8 +413,8 @@ public class Utils {
IResource resource = null;
if (element instanceof IResource) {
resource = (IResource)element;
- } else if (element instanceof SynchronizeModelElement){
- resource = ((SynchronizeModelElement) element).getResource();
+ } else if (element instanceof ISynchronizeModelElement){
+ resource = ((ISynchronizeModelElement) element).getResource();
} else {
resource = (IResource)getAdapter(element, IResource.class);
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ActionDelegateManager.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ActionDelegateManager.java
new file mode 100644
index 000000000..a8bd9a891
--- /dev/null
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ActionDelegateManager.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * 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.synchronize;
+
+import java.util.*;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.*;
+import org.eclipse.ui.*;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IViewActionDelegate;
+
+public class ActionDelegateManager {
+
+ private List delegates = new ArrayList(2);
+ private IViewPart part;
+ private StructuredViewer viewer;
+
+ public static class WrappedActionDelegate extends Action {
+ private IActionDelegate delegate;
+ private Viewer viewer;
+
+ public WrappedActionDelegate(IActionDelegate delegate, IViewPart part, Viewer viewer) {
+ this.delegate = delegate;
+ this.viewer = viewer;
+ // Associate delegate with the synchronize view, this will allow
+ if(delegate instanceof IViewActionDelegate) {
+ ((IViewActionDelegate)delegate).init(part);
+ }
+ }
+
+ public void run() {
+ if (viewer != null) {
+ ISelection selection = new StructuredSelection(viewer.getInput());
+ if (!selection.isEmpty()) {
+ delegate.selectionChanged(this, selection);
+ delegate.run(this);
+ }
+ }
+ }
+
+ public IActionDelegate getDelegate() {
+ return delegate;
+ }
+ }
+
+ public ActionDelegateManager() {
+ }
+
+ /*
+ * Update the enablement of any action delegates
+ */
+ public void updateActionEnablement(Object input) {
+ ISelection selection = new StructuredSelection(input);
+ for (Iterator it = delegates.iterator(); it.hasNext(); ) {
+ WrappedActionDelegate delegate = (WrappedActionDelegate) it.next();
+ delegate.getDelegate().selectionChanged(delegate, selection);
+ }
+ }
+
+ public void addDelegate(WrappedActionDelegate delagate) {
+ delegates.add(delagate);
+ }
+}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangesSection.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangesSection.java
index 9ef961daa..b087af928 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangesSection.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangesSection.java
@@ -18,15 +18,15 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.team.core.ITeamStatus;
import org.eclipse.team.core.synchronize.*;
import org.eclipse.team.internal.ui.*;
import org.eclipse.team.ui.ISharedImages;
import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant;
-import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipantPage;
import org.eclipse.team.ui.synchronize.viewers.ISynchronizeModelChangeListener;
-import org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement;
+import org.eclipse.team.ui.synchronize.viewers.ISynchronizeModelElement;
import org.eclipse.ui.forms.HyperlinkGroup;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
@@ -76,7 +76,7 @@ public class ChangesSection extends Composite {
* Listen to sync set changes so that we can update message to user and totals.
*/
private ISynchronizeModelChangeListener changedListener = new ISynchronizeModelChangeListener() {
- public void modelChanged(SynchronizeModelElement root) {
+ public void modelChanged(ISynchronizeModelElement root) {
calculateDescription();
}
};
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompressedFoldersModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompressedFoldersModelProvider.java
index 786d85898..20bad7816 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompressedFoldersModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompressedFoldersModelProvider.java
@@ -20,7 +20,7 @@ import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.team.core.synchronize.*;
import org.eclipse.team.internal.ui.TeamUIPlugin;
import org.eclipse.team.ui.ISharedImages;
-import org.eclipse.team.ui.synchronize.viewers.*;
+import org.eclipse.team.ui.synchronize.viewers.ISynchronizeModelElement;
public class CompressedFoldersModelProvider extends HierarchicalModelProvider {
@@ -156,10 +156,10 @@ public class CompressedFoldersModelProvider extends HierarchicalModelProvider {
/* (non-Javadoc)
* @see org.eclipse.team.ui.synchronize.viewers.HierarchicalModelProvider#createModelObject(org.eclipse.compare.structuremergeviewer.DiffNode, org.eclipse.core.resources.IResource)
*/
- protected SynchronizeModelElement createModelObject(SynchronizeModelElement parent, IResource resource) {
+ protected ISynchronizeModelElement createModelObject(ISynchronizeModelElement parent, IResource resource) {
if (resource.getType() == IResource.FOLDER) {
SyncInfo info = getSyncInfoTree().getSyncInfo(resource);
- SynchronizeModelElement newNode;
+ ISynchronizeModelElement newNode;
if(info != null) {
newNode = new CompressedFolderDiffNode(parent, info);
} else {
@@ -187,12 +187,12 @@ public class CompressedFoldersModelProvider extends HierarchicalModelProvider {
private void addResource(SyncInfo info) {
IResource local = info.getLocal();
- SynchronizeModelElement existingNode = getModelObject(local);
+ ISynchronizeModelElement existingNode = getModelObject(local);
if (existingNode == null) {
if (local.getType() == IResource.FILE) {
- SynchronizeModelElement parentNode = getModelObject(local.getParent());
+ ISynchronizeModelElement parentNode = getModelObject(local.getParent());
if (parentNode == null) {
- SynchronizeModelElement projectNode = getModelObject(local.getProject());
+ ISynchronizeModelElement projectNode = getModelObject(local.getProject());
if (projectNode == null) {
projectNode = createModelObject(getModelRoot(), local.getProject());
}
@@ -204,7 +204,7 @@ public class CompressedFoldersModelProvider extends HierarchicalModelProvider {
}
createModelObject(parentNode, local);
} else {
- SynchronizeModelElement projectNode = getModelObject(local.getProject());
+ ISynchronizeModelElement projectNode = getModelObject(local.getProject());
if (projectNode == null) {
projectNode = createModelObject(getModelRoot(), local.getProject());
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/DiffNodeWorkbenchAdapter.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/DiffNodeWorkbenchAdapter.java
index ea3991bb8..c9271bbbc 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/DiffNodeWorkbenchAdapter.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/DiffNodeWorkbenchAdapter.java
@@ -12,7 +12,7 @@ package org.eclipse.team.internal.ui.synchronize;
import org.eclipse.compare.structuremergeviewer.DiffNode;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement;
+import org.eclipse.team.ui.synchronize.viewers.ISynchronizeModelElement;
import org.eclipse.ui.model.IWorkbenchAdapter;
public class DiffNodeWorkbenchAdapter implements IWorkbenchAdapter {
@@ -30,8 +30,8 @@ public class DiffNodeWorkbenchAdapter implements IWorkbenchAdapter {
*/
public ImageDescriptor getImageDescriptor(Object o) {
DiffNode node = getDiffNode(o);
- if(node instanceof SynchronizeModelElement) {
- return ((SynchronizeModelElement)node).getImageDescriptor(o);
+ if(node instanceof ISynchronizeModelElement) {
+ return ((ISynchronizeModelElement)node).getImageDescriptor(o);
}
return null;
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelProvider.java
index 7ecfb3a56..00665e21b 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelProvider.java
@@ -16,7 +16,7 @@ import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.team.core.synchronize.*;
-import org.eclipse.team.ui.synchronize.viewers.*;
+import org.eclipse.team.ui.synchronize.viewers.ISynchronizeModelElement;
/**
* An input that can be used with both {@link } and
@@ -61,7 +61,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
* @param container
* @return
*/
- protected IDiffElement[] createModelObjects(SynchronizeModelElement container) {
+ protected IDiffElement[] createModelObjects(ISynchronizeModelElement container) {
IResource resource = null;
if (container == getModelRoot()) {
resource = ResourcesPlugin.getWorkspace().getRoot();
@@ -71,7 +71,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
if(resource != null) {
SyncInfoTree infoTree = getSyncInfoTree();
IResource[] children = infoTree.members(resource);
- SynchronizeModelElement[] nodes = new SynchronizeModelElement[children.length];
+ ISynchronizeModelElement[] nodes = new ISynchronizeModelElement[children.length];
for (int i = 0; i < children.length; i++) {
nodes[i] = createModelObject(container, children[i]);
}
@@ -80,7 +80,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
return new IDiffElement[0];
}
- protected SynchronizeModelElement createModelObject(SynchronizeModelElement parent, IResource resource) {
+ protected ISynchronizeModelElement createModelObject(ISynchronizeModelElement parent, IResource resource) {
SyncInfo info = getSyncInfoTree().getSyncInfo(resource);
SynchronizeModelElement newNode;
if(info != null) {
@@ -112,9 +112,9 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
* @param diffNode the diff node to be changed
* @param info the new sync info for the diff node
*/
- protected void handleChange(SynchronizeModelElement diffNode, SyncInfo info) {
+ protected void handleChange(ISynchronizeModelElement diffNode, SyncInfo info) {
IResource local = info.getLocal();
- // TODO: Get any additional sync bits
+
if(diffNode instanceof SyncInfoModelElement) {
boolean wasConflict = isConflicting(diffNode);
// The update preserves any of the additional sync info bits
@@ -130,20 +130,19 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
removeFromViewer(local);
addResources(new IResource[] {local});
}
- // TODO: set any additional sync info bits
}
protected void addResources(IResource[] added) {
for (int i = 0; i < added.length; i++) {
IResource resource = added[i];
- SynchronizeModelElement node = getModelObject(resource);
+ ISynchronizeModelElement node = getModelObject(resource);
if (node != null) {
// Somehow the node exists. Remove it and read it to ensure
// what is shown matches the contents of the sync set
removeFromViewer(resource);
}
// Build the sub-tree rooted at this node
- SynchronizeModelElement parent = getModelObject(resource.getParent());
+ ISynchronizeModelElement parent = getModelObject(resource.getParent());
if (parent != null) {
node = createModelObject(parent, resource);
buildModelObjects(node);
@@ -154,12 +153,12 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
/* (non-Javadoc)
* @see org.eclipse.team.ui.synchronize.viewers.SynchronizeModelProvider#buildModelObjects(org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement)
*/
- protected IDiffElement[] buildModelObjects(SynchronizeModelElement node) {
+ protected IDiffElement[] buildModelObjects(ISynchronizeModelElement node) {
IDiffElement[] children = createModelObjects(node);
for (int i = 0; i < children.length; i++) {
IDiffElement element = children[i];
- if (element instanceof SynchronizeModelElement) {
- buildModelObjects((SynchronizeModelElement) element);
+ if (element instanceof ISynchronizeModelElement) {
+ buildModelObjects((ISynchronizeModelElement) element);
}
}
return children;
@@ -168,7 +167,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
/* (non-Javadoc)
* @see org.eclipse.team.ui.synchronize.viewers.SynchronizeModelProvider#doAdd(org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement, org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement)
*/
- protected void doAdd(SynchronizeModelElement parent, SynchronizeModelElement element) {
+ protected void doAdd(ISynchronizeModelElement parent, ISynchronizeModelElement element) {
AbstractTreeViewer viewer = (AbstractTreeViewer)getViewer();
viewer.add(parent, element);
}
@@ -176,7 +175,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
/* (non-Javadoc)
* @see org.eclipse.team.ui.synchronize.viewers.SynchronizeModelProvider#doRemove(org.eclipse.team.ui.synchronize.viewers.SynchronizeModelElement)
*/
- protected void doRemove(SynchronizeModelElement element) {
+ protected void doRemove(ISynchronizeModelElement element) {
AbstractTreeViewer viewer = (AbstractTreeViewer)getViewer();
viewer.remove(element);
}
@@ -198,7 +197,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
for (int i = 0; i < infos.length; i++) {
SyncInfo info = infos[i];
IResource local = info.getLocal();
- SynchronizeModelElement diffNode = getModelObject(local);
+ ISynchronizeModelElement diffNode = getModelObject(local);
if (diffNode != null) {
handleChange(diffNode, info);
}
@@ -220,7 +219,7 @@ public class HierarchicalModelProvider extends SynchronizeModelProvider {
for (int i = 0; i < removedResources.length; i++) {
IResource resource = removedResources[i];
if (resource.getType() != IResource.FILE) {
- SynchronizeModelElement node = getModelObject(resource);
+ ISynchronizeModelElement node = getModelObject(resource);
if (node != null) {
removeFromViewer(resource);
addResources(new IResource[] {resource});
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/subscriber/SubscriberParticipantPage.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SubscriberParticipantPage.java
index a385ae517..47e360b1c 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/subscriber/SubscriberParticipantPage.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SubscriberParticipantPage.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.team.ui.synchronize.subscriber;
+package org.eclipse.team.internal.ui.synchronize;
import org.eclipse.compare.internal.INavigatable;
import org.eclipse.core.runtime.IAdaptable;
@@ -22,10 +22,10 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.team.internal.ui.*;
-import org.eclipse.team.internal.ui.synchronize.ChangesSection;
-import org.eclipse.team.internal.ui.synchronize.ConfigureRefreshScheduleDialog;
import org.eclipse.team.internal.ui.synchronize.actions.*;
import org.eclipse.team.ui.synchronize.ISynchronizeView;
+import org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant;
+import org.eclipse.team.ui.synchronize.subscriber.SubscriberRefreshWizard;
import org.eclipse.team.ui.synchronize.viewers.StructuredViewerAdvisor;
import org.eclipse.team.ui.synchronize.viewers.TreeViewerAdvisor;
import org.eclipse.ui.*;
@@ -42,7 +42,7 @@ import org.eclipse.ui.part.*;
* </p>
* @since 3.0
*/
-public class SubscriberParticipantPage implements IPageBookViewPage, IPropertyChangeListener, IAdaptable {
+public final class SubscriberParticipantPage implements IPageBookViewPage, IPropertyChangeListener, IAdaptable {
// Parent composite of this view. It is remembered so that we can dispose of its children when
// the viewer type is switched.
private Composite composite = null;
@@ -64,14 +64,15 @@ public class SubscriberParticipantPage implements IPageBookViewPage, IPropertyCh
private Action collapseAll;
private WorkingSetFilterActionGroup workingSetGroup;
private StatusLineContributionGroup statusLine;
- private SynchronizeViewerAdvisor viewerAdvisor;
+ private StructuredViewerAdvisor viewerAdvisor;
/**
* Constructs a new SynchronizeView.
*/
- public SubscriberParticipantPage(SubscriberParticipant page, ISynchronizeView view) {
+ public SubscriberParticipantPage(SubscriberParticipant page, ISynchronizeView view, StructuredViewerAdvisor viewerAdvisor) {
this.participant = page;
this.view = view;
+ this.viewerAdvisor = viewerAdvisor;
}
/* (non-Javadoc)
@@ -253,6 +254,9 @@ public class SubscriberParticipantPage implements IPageBookViewPage, IPropertyCh
// status line
statusLine.fillActionBars(actionBars);
+
+ // allow the advisor to contribute
+ getViewerConfiguration().setActionBars(actionBars);
}
}
@@ -310,7 +314,6 @@ public class SubscriberParticipantPage implements IPageBookViewPage, IPropertyCh
}
private Viewer createChangesViewer(Composite parent) {
- viewerAdvisor = createSynchronizeViewerAdvisor();
TreeViewer viewer = new TreeViewerAdvisor.NavigableTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
GridData data = new GridData(GridData.FILL_BOTH);
viewer.getControl().setLayoutData(data);
@@ -319,19 +322,15 @@ public class SubscriberParticipantPage implements IPageBookViewPage, IPropertyCh
return viewer;
}
- public StructuredViewerAdvisor getViewerAdviser() {
+ public StructuredViewerAdvisor getViewerConfiguration() {
return viewerAdvisor;
}
public Viewer getViewer() {
return changesViewer;
}
-
- protected SynchronizeViewerAdvisor createSynchronizeViewerAdvisor() {
- return new SynchronizeViewerAdvisor(getSynchronizeView(), getParticipant());
- }
public void setSelection(Object[] objects, boolean reveal) {
- getViewerAdviser().setSelection(objects, reveal);
+ getViewerConfiguration().setSelection(objects, reveal);
}
} \ No newline at end of file

Back to the top