Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-09-10 19:55:52 +0000
committerMichael Valenta2004-09-10 19:55:52 +0000
commit49fc937b39e6e44d89d9b0eea5d1e6f3b76075e0 (patch)
tree51e7ba1c0e66577106d1e9fd1321a16d7c3a8d06
parent02590555fc5348429df182906ac416fbc9389ad2 (diff)
downloadeclipse.platform.team-49fc937b39e6e44d89d9b0eea5d1e6f3b76075e0.tar.gz
eclipse.platform.team-49fc937b39e6e44d89d9b0eea5d1e6f3b76075e0.tar.xz
eclipse.platform.team-49fc937b39e6e44d89d9b0eea5d1e6f3b76075e0.zip
Work continues
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/AbstractSynchronizeModelProvider.java114
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompositeModelProvider.java18
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java102
3 files changed, 130 insertions, 104 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 44573e628..8c24be429 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
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.team.internal.ui.synchronize;
+import java.util.*;
+import java.util.ArrayList;
+
import org.eclipse.compare.structuremergeviewer.IDiffContainer;
import org.eclipse.compare.structuremergeviewer.IDiffElement;
import org.eclipse.core.resources.*;
@@ -315,30 +318,109 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo
protected abstract IDiffElement[] buildModelObjects(ISynchronizeModelElement node);
/**
- * @return
+ * Returns whether the viewer has state to be saved.
+ * @return whether the viewer has state to be saved
*/
- protected boolean hasViewerState() {
- // TODO Auto-generated method stub
- return false;
- }
+ protected abstract boolean hasViewerState();
/**
- *
+ * Save the viewer state (expansion and selection)
*/
protected void saveViewerState() {
- // TODO Auto-generated method stub
-
- }
+ // save visible expanded elements and selection
+ final StructuredViewer viewer = getViewer();
+ if (viewer != null && !viewer.getControl().isDisposed() && viewer instanceof AbstractTreeViewer) {
+ final Object[][] expandedElements = new Object[1][1];
+ final Object[][] selectedElements = new Object[1][1];
+ viewer.getControl().getDisplay().syncExec(new Runnable() {
+ public void run() {
+ if (viewer != null && !viewer.getControl().isDisposed()) {
+ expandedElements[0] = ((AbstractTreeViewer) viewer).getVisibleExpandedElements();
+ selectedElements[0] = ((IStructuredSelection) viewer.getSelection()).toArray();
+ }
+ }
+ });
+ //
+ // Save expansion
+ //
+ if (expandedElements[0].length > 0) {
+ ISynchronizePageConfiguration config = getConfiguration();
+ ArrayList savedExpansionState = new ArrayList();
+ for (int i = 0; i < expandedElements[0].length; i++) {
+ if (expandedElements[0][i] instanceof ISynchronizeModelElement) {
+ IResource resource = ((ISynchronizeModelElement) expandedElements[0][i]).getResource();
+ if(resource != null)
+ savedExpansionState.add(resource.getFullPath().toString());
+ }
+ }
+ config.setProperty(P_VIEWER_EXPANSION_STATE, savedExpansionState);
+ }
+ //
+ // Save selection
+ //
+ if (selectedElements[0].length > 0) {
+ ISynchronizePageConfiguration config = getConfiguration();
+ ArrayList savedSelectedState = new ArrayList();
+ for (int i = 0; i < selectedElements[0].length; i++) {
+ if (selectedElements[0][i] instanceof ISynchronizeModelElement) {
+ IResource resource = ((ISynchronizeModelElement) selectedElements[0][i]).getResource();
+ if(resource != null)
+ savedSelectedState.add(resource.getFullPath().toString());
+ }
+ }
+ config.setProperty(P_VIEWER_SELECTION_STATE, savedSelectedState);
+ }
+ }
+ }
- /**
- *
+ protected void restoreViewerState() {
+ // restore expansion state and selection state
+ final StructuredViewer viewer = getViewer();
+ if (viewer != null && !viewer.getControl().isDisposed() && viewer instanceof AbstractTreeViewer) {
+ List savedExpansionState = (List)getConfiguration().getProperty(P_VIEWER_EXPANSION_STATE);
+ List savedSelectionState = (List)getConfiguration().getProperty(P_VIEWER_SELECTION_STATE);
+ IContainer container = ResourcesPlugin.getWorkspace().getRoot();
+ final ArrayList expandedElements = new ArrayList();
+ if (savedExpansionState != null) {
+ for (Iterator it = savedExpansionState.iterator(); it.hasNext();) {
+ String path = (String) it.next();
+ IResource resource = container.findMember(path, true /* include phantoms */);
+ ISynchronizeModelElement[] elements = getModelObjects(resource);
+ for (int i = 0; i < elements.length; i++) {
+ ISynchronizeModelElement element = elements[i];
+ expandedElements.add(element);
+ }
+ }
+ }
+ final ArrayList selectedElements = new ArrayList();
+ if (savedSelectionState != null) {
+ for (Iterator it = savedSelectionState.iterator(); it.hasNext();) {
+ String path = (String) it.next();
+ IResource resource = container.findMember(path, true /* include phantoms */);
+ ISynchronizeModelElement[] elements = getModelObjects(resource);
+ for (int i = 0; i < elements.length; i++) {
+ ISynchronizeModelElement element = elements[i];
+ selectedElements.add(element);
+ }
+ }
+ }
+ Utils.asyncExec(new Runnable() {
+ public void run() {
+ ((AbstractTreeViewer) viewer).setExpandedElements(expandedElements.toArray());
+ viewer.setSelection(new StructuredSelection(selectedElements));
+ }
+ }, viewer);
+ }
+ }
+
+ /**
+ * Return all the model objects in this provider that represent the given resource
+ * @param resource the resource
+ * @return the model objects for the resource
*/
- protected void restoreViewerState() {
- // TODO Auto-generated method stub
-
- }
+ protected abstract ISynchronizeModelElement[] getModelObjects(IResource resource);
- /* (non-Javadoc)
+ /* (non-Javadoc)
* @see org.eclipse.team.internal.ui.synchronize.ISynchronizeModelProvider#saveState()
*/
public void saveState() {
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompositeModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompositeModelProvider.java
index f2a760894..0ce441603 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompositeModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/CompositeModelProvider.java
@@ -319,4 +319,22 @@ public abstract class CompositeModelProvider extends AbstractSynchronizeModelPro
clearProviders();
super.dispose();
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ui.synchronize.AbstractSynchronizeModelProvider#hasViewerState()
+ */
+ protected boolean hasViewerState() {
+ return !resourceToElements.isEmpty();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ui.synchronize.AbstractSynchronizeModelProvider#getModelObjects(org.eclipse.core.resources.IResource)
+ */
+ protected ISynchronizeModelElement[] getModelObjects(IResource resource) {
+ List elements = (List)resourceToElements.get(resource);
+ if (elements == null) {
+ return new ISynchronizeModelElement[0];
+ }
+ return (ISynchronizeModelElement[]) elements.toArray(new ISynchronizeModelElement[elements.size()]);
+ }
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
index 630ac521c..bdcd34040 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java
@@ -12,11 +12,11 @@ package org.eclipse.team.internal.ui.synchronize;
import java.util.*;
-import org.eclipse.core.resources.*;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.viewers.*;
+import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.team.core.synchronize.*;
-import org.eclipse.team.internal.ui.Utils;
import org.eclipse.team.ui.synchronize.ISynchronizeModelElement;
import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration;
@@ -94,6 +94,17 @@ public abstract class SynchronizeModelProvider extends AbstractSynchronizeModelP
return (ISynchronizeModelElement) resourceMap.get(resource);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ui.synchronize.AbstractSynchronizeModelProvider#getModelObjects(org.eclipse.core.resources.IResource)
+ */
+ protected ISynchronizeModelElement[] getModelObjects(IResource resource) {
+ ISynchronizeModelElement element = getModelObject(resource);
+ if (element == null) {
+ return new ISynchronizeModelElement[0];
+ }
+ return new ISynchronizeModelElement[] { element };
+ }
+
protected void associateDiffNode(ISynchronizeModelElement node) {
IResource resource = node.getResource();
if(resource != null) {
@@ -150,91 +161,6 @@ public abstract class SynchronizeModelProvider extends AbstractSynchronizeModelP
protected boolean hasViewerState() {
return ! resourceMap.isEmpty();
}
-
- protected void saveViewerState() {
- // save visible expanded elements and selection
- final StructuredViewer viewer = getViewer();
- if (viewer != null && !viewer.getControl().isDisposed() && viewer instanceof AbstractTreeViewer) {
- final Object[][] expandedElements = new Object[1][1];
- final Object[][] selectedElements = new Object[1][1];
- viewer.getControl().getDisplay().syncExec(new Runnable() {
- public void run() {
- if (viewer != null && !viewer.getControl().isDisposed()) {
- expandedElements[0] = ((AbstractTreeViewer) viewer).getVisibleExpandedElements();
- selectedElements[0] = ((IStructuredSelection) viewer.getSelection()).toArray();
- }
- }
- });
- //
- // Save expansion
- //
- if (expandedElements[0].length > 0) {
- ISynchronizePageConfiguration config = getConfiguration();
- ArrayList savedExpansionState = new ArrayList();
- for (int i = 0; i < expandedElements[0].length; i++) {
- if (expandedElements[0][i] instanceof ISynchronizeModelElement) {
- IResource resource = ((ISynchronizeModelElement) expandedElements[0][i]).getResource();
- if(resource != null)
- savedExpansionState.add(resource.getFullPath().toString());
- }
- }
- config.setProperty(P_VIEWER_EXPANSION_STATE, savedExpansionState);
- }
- //
- // Save selection
- //
- if (selectedElements[0].length > 0) {
- ISynchronizePageConfiguration config = getConfiguration();
- ArrayList savedSelectedState = new ArrayList();
- for (int i = 0; i < selectedElements[0].length; i++) {
- if (selectedElements[0][i] instanceof ISynchronizeModelElement) {
- IResource resource = ((ISynchronizeModelElement) selectedElements[0][i]).getResource();
- if(resource != null)
- savedSelectedState.add(resource.getFullPath().toString());
- }
- }
- config.setProperty(P_VIEWER_SELECTION_STATE, savedSelectedState);
- }
- }
- }
-
- protected void restoreViewerState() {
- // restore expansion state and selection state
- final StructuredViewer viewer = getViewer();
- if (viewer != null && !viewer.getControl().isDisposed() && viewer instanceof AbstractTreeViewer) {
- List savedExpansionState = (List)getConfiguration().getProperty(P_VIEWER_EXPANSION_STATE);
- List savedSelectionState = (List)getConfiguration().getProperty(P_VIEWER_SELECTION_STATE);
- IContainer container = ResourcesPlugin.getWorkspace().getRoot();
- final ArrayList expandedElements = new ArrayList();
- if (savedExpansionState != null) {
- for (Iterator it = savedExpansionState.iterator(); it.hasNext();) {
- String path = (String) it.next();
- IResource resource = container.findMember(path, true /* include phantoms */);
- ISynchronizeModelElement element = getModelObject(resource);
- if (element != null) {
- expandedElements.add(element);
- }
- }
- }
- final ArrayList selectedElements = new ArrayList();
- if (savedSelectionState != null) {
- for (Iterator it = savedSelectionState.iterator(); it.hasNext();) {
- String path = (String) it.next();
- IResource resource = container.findMember(path, true /* include phantoms */);
- ISynchronizeModelElement element = getModelObject(resource);
- if (element != null) {
- selectedElements.add(element);
- }
- }
- }
- Utils.asyncExec(new Runnable() {
- public void run() {
- ((AbstractTreeViewer) viewer).setExpandedElements(expandedElements.toArray());
- viewer.setSelection(new StructuredSelection(selectedElements));
- }
- }, viewer);
- }
- }
public ISynchronizeModelElement[] getClosestExistingParents(IResource resource) {
ISynchronizeModelElement element = getModelObject(resource);

Back to the top