Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-10-07 20:31:22 +0000
committerMichael Valenta2004-10-07 20:31:22 +0000
commitc57a9813e59056479173ba202f8417f287e0f0ed (patch)
treeb284fece53819e00b91f59cf72a0a4a5a30af3a0
parent654b84b5b8fb74cdd723a26e8d8ce8927fa61cde (diff)
downloadeclipse.platform.team-c57a9813e59056479173ba202f8417f287e0f0ed.tar.gz
eclipse.platform.team-c57a9813e59056479173ba202f8417f287e0f0ed.tar.xz
eclipse.platform.team-c57a9813e59056479173ba202f8417f287e0f0ed.zip
A bit of tiding up after change set refactoring
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/AbstractSynchronizeModelProvider.java50
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangeSetModelProvider.java5
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompressedFoldersModelProvider.java16
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/ChangeSetActionGroup.java44
4 files changed, 76 insertions, 39 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/AbstractSynchronizeModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/AbstractSynchronizeModelProvider.java
index 18faf9c6b..729bae958 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/AbstractSynchronizeModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/AbstractSynchronizeModelProvider.java
@@ -295,24 +295,44 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo
if(root instanceof SynchronizeModelElement) {
((SynchronizeModelElement)root).fireChanges();
}
- Utils.asyncExec(new Runnable() {
- public void run() {
- StructuredViewer viewer = getViewer();
- if (viewer != null && !viewer.getControl().isDisposed()) {
- try {
- viewer.getControl().setRedraw(false);
- viewer.refresh();
- // restore expansion state
- if (isRootProvider())
- restoreViewerState();
- } finally {
- viewer.getControl().setRedraw(true);
- }
+
+ if (Utils.canUpdateViewer(getViewer())) {
+ // If we can update the viewer, that means that the view was updated
+ // when the model was rebuilt.
+ refreshModelRoot();
+ } else {
+ Utils.asyncExec(new Runnable() {
+ public void run() {
+ refreshModelRoot();
}
- }
- }, getViewer());
+ }, getViewer());
+ }
}
+ private void refreshModelRoot() {
+ StructuredViewer viewer = getViewer();
+ if (viewer != null && !viewer.getControl().isDisposed()) {
+ try {
+ viewer.getControl().setRedraw(false);
+ if (isRootProvider()) {
+ // Refresh the entire view
+ viewer.refresh();
+ } else {
+ // Only refresh the model root bu also ensure that
+ // the parents of the model root and the model root
+ // itself are added to the view
+ ((AbstractTreeViewer)viewer).add(getModelRoot().getParent(), getModelRoot());
+ viewer.refresh(getModelRoot());
+ }
+ // restore expansion state
+ if (isRootProvider())
+ restoreViewerState();
+ } finally {
+ viewer.getControl().setRedraw(true);
+ }
+ }
+ }
+
/**
* For each node create children based on the contents of
* @param node
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangeSetModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangeSetModelProvider.java
index 225a064e1..57dec186d 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangeSetModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/ChangeSetModelProvider.java
@@ -33,7 +33,7 @@ import org.eclipse.team.ui.synchronize.*;
*/
public class ChangeSetModelProvider extends CompositeModelProvider {
- private ViewerSorter viewerSorter = new ChangeSetModelSorter(this, ChangeSetModelSorter.COMMENT);
+ private ViewerSorter viewerSorter;
// The id of the sub-provider
private final String subProvierId;
@@ -240,6 +240,9 @@ public class ChangeSetModelProvider extends CompositeModelProvider {
* @see org.eclipse.team.internal.ui.synchronize.ISynchronizeModelProvider#getViewerSorter()
*/
public ViewerSorter getViewerSorter() {
+ if (viewerSorter == null) {
+ viewerSorter = new ChangeSetModelSorter(this, ChangeSetActionGroup.getSortCriteria(getConfiguration()));
+ }
return viewerSorter;
}
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 34681ce22..2ef675a28 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
@@ -277,8 +277,7 @@ public class CompressedFoldersModelProvider extends HierarchicalModelProvider {
// but may still contain children
removeFromViewer(resource);
if (hasFileMembers((IContainer)resource)) {
- createModelObject(getModelObject(resource.getProject()), resource);
- buildModelObjects(getModelObject(resource));
+ addResources(getFileMembers((IContainer)resource));
}
}
}
@@ -315,4 +314,17 @@ public class CompressedFoldersModelProvider extends HierarchicalModelProvider {
// The parent does not contain any files
return false;
}
+
+ private SyncInfo[] getFileMembers(IContainer parent) {
+ // Check if the sync set has any file children of the parent
+ List result = new ArrayList();
+ IResource[] members = getSyncInfoTree().members(parent);
+ for (int i = 0; i < members.length; i++) {
+ IResource member = members[i];
+ if (member.getType() == IResource.FILE) {
+ result.add(getSyncInfoTree().getSyncInfo(member));
+ }
+ }
+ return (SyncInfo[]) result.toArray(new SyncInfo[result.size()]);
+ }
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/ChangeSetActionGroup.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/ChangeSetActionGroup.java
index 58d605170..af56e028c 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/ChangeSetActionGroup.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/ChangeSetActionGroup.java
@@ -230,6 +230,28 @@ public class ChangeSetActionGroup extends SynchronizePageActionGroup {
*/
private int sortCriteria = ChangeSetModelSorter.DATE;
+ public static int getSortCriteria(ISynchronizePageConfiguration configuration) {
+ int sortCriteria = ChangeSetModelSorter.DATE;
+ try {
+ IDialogSettings pageSettings = configuration.getSite().getPageSettings();
+ if(pageSettings != null) {
+ sortCriteria = pageSettings.getInt(P_LAST_COMMENTSORT);
+ }
+ } catch(NumberFormatException e) {
+ // ignore and use the defaults.
+ }
+ switch (sortCriteria) {
+ case ChangeSetModelSorter.COMMENT:
+ case ChangeSetModelSorter.DATE:
+ case ChangeSetModelSorter.USER:
+ break;
+ default:
+ sortCriteria = ChangeSetModelSorter.DATE;
+ break;
+ }
+ return sortCriteria;
+ }
+
public ChangeSetActionGroup(ChangeSetModelProvider provider) {
this.provider = provider;
}
@@ -238,7 +260,7 @@ public class ChangeSetActionGroup extends SynchronizePageActionGroup {
super.initialize(configuration);
if (getChangeSetCapability().supportsCheckedInChangeSets()) {
- initializeSortCriteria(configuration);
+ sortCriteria = getSortCriteria(configuration);
sortByComment = new MenuManager(Policy.bind("ChangeLogModelProvider.0a")); //$NON-NLS-1$
sortByComment.add(new ToggleSortOrderAction(Policy.bind("ChangeLogModelProvider.1a"), ChangeSetModelSorter.COMMENT)); //$NON-NLS-1$
sortByComment.add(new ToggleSortOrderAction(Policy.bind("ChangeLogModelProvider.2a"), ChangeSetModelSorter.DATE)); //$NON-NLS-1$
@@ -292,26 +314,6 @@ public class ChangeSetActionGroup extends SynchronizePageActionGroup {
}
}
- private void initializeSortCriteria(ISynchronizePageConfiguration configuration) {
- try {
- IDialogSettings pageSettings = getConfiguration().getSite().getPageSettings();
- if(pageSettings != null) {
- sortCriteria = pageSettings.getInt(P_LAST_COMMENTSORT);
- }
- } catch(NumberFormatException e) {
- // ignore and use the defaults.
- }
- switch (sortCriteria) {
- case ChangeSetModelSorter.COMMENT:
- case ChangeSetModelSorter.DATE:
- case ChangeSetModelSorter.USER:
- break;
- default:
- sortCriteria = ChangeSetModelSorter.DATE;
- break;
- }
- }
-
protected void addChangeSets(IMenuManager manager) {
ChangeSet[] sets = getActiveChangeSetManager().getSets();
ISelection selection = getContext().getSelection();

Back to the top