diff options
author | Michael Valenta | 2004-09-13 18:17:44 +0000 |
---|---|---|
committer | Michael Valenta | 2004-09-13 18:17:44 +0000 |
commit | 00739eede93e47876cb379ff94320f3a5ae3dd95 (patch) | |
tree | d526cfa64e8c6cefd69932ed2df2f4bb44c6f922 | |
parent | c1a68582c4f4a23a11c360f968b2cadf36aeac1b (diff) | |
download | eclipse.platform.team-branch_20040903_OutgoingCommitSets.tar.gz eclipse.platform.team-branch_20040903_OutgoingCommitSets.tar.xz eclipse.platform.team-branch_20040903_OutgoingCommitSets.zip |
NLSed stringsbranch_20040903_OutgoingCommitSets
14 files changed, 158 insertions, 51 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ComparePreferencePage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ComparePreferencePage.java index ceb4f3683..febf88671 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ComparePreferencePage.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ComparePreferencePage.java @@ -31,7 +31,7 @@ public class ComparePreferencePage extends CVSFieldEditorPreferencePage { * @see org.eclipse.team.internal.ccvs.ui.CVSFieldEditorPreferencePage#getPageDescription() */ protected String getPageDescription() { - return "Options for CVS comparisons:"; + return Policy.bind("ComparePreferencePage.0"); //$NON-NLS-1$ } /* (non-Javadoc) @@ -56,7 +56,7 @@ public class ComparePreferencePage extends CVSFieldEditorPreferencePage { getFieldEditorParent())); addField(new BooleanFieldEditor( ICVSUIConstants.PREF_SHOW_AUTHOR_IN_EDITOR, - "Show the file author in compare editors", + Policy.bind("ComparePreferencePage.1"), //$NON-NLS-1$ BooleanFieldEditor.DEFAULT, getFieldEditorParent())); } diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties index dd8b4acf0..ffd1c7b77 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/messages.properties @@ -1022,11 +1022,25 @@ CheckoutIntoWizard.projectSelectionPageTitle=Select local folder CheckoutIntoWizard.projectSelectionPageDescription=Select the local folder that is the target of the checkout operation. CheckoutIntoWizard.error=Checkout Error ChangeLogModelProvider.0=Sort &Comments By +ChangeLogModelProvider.0=&New Commit Set... ChangeLogModelProvider.1=&Comment +ChangeLogModelProvider.1=New Set +ChangeLogModelProvider.10=Could not add files +ChangeLogModelProvider.11=A problem occurred while rying to add the files to the commit set +ChangeLogModelProvider.12=Add &To ChangeLogModelProvider.2=&Date +ChangeLogModelProvider.2=New Commit Set ChangeLogModelProvider.3=&User +ChangeLogModelProvider.3=Enter the name and comment for the new commit set ChangeLogModelProvider.4=Retrieving revision histories +ChangeLogModelProvider.4=Could not create set ChangeLogModelProvider.5=Commit &Sets +ChangeLogModelProvider.5=A problem occurred while trying to create the commit set +ChangeLogModelProvider.6=Ed&it Comment... +ChangeLogModelProvider.7=Edit Commit Set Comment +ChangeLogModelProvider.8=Edit the name and comment for the new commit set +ChangeLogModelProvider.9=Make De&fault +ChangeLogModelManager.0=Show Commit Sets CheckoutIntoWizard.thisResourceExists=The resource ''{0}'' already exists in the workspace. Overwrite? CheckoutIntoWizard.confirmOverwrite=Confirm Overwrite @@ -1187,6 +1201,8 @@ CVSRepositoryPropertiesPage.0=Confirm Host or Path Change CVSRepositoryPropertiesPage.1=You have chosen to change the host name or repository root path for this location. You should ensure that this new information still identifies the same repository. CompareRevertAction.0=Reverting {0} resources CompareParticipant.0={0} ({1}) +ComparePreferencePage.0=Options for CVS comparisons: +ComparePreferencePage.1=Show the file author in compare editors FileModificationValidator.3=Perform Edit? FileModificationValidator.4=A CVS edit notification is required to be sent to the server in order to allow editing of one or more selected files. Continue? CVSSynchronizeViewPage.0=Show incoming grouped by comment @@ -1246,6 +1262,10 @@ AddOperation.0=Adding {0} BranchOperation.0=Branching BranchOperation.1=Branching {0} CommitOperation.0=Committing {0} +CommitSetDialog.0=&Name: +CommitSetDialog.2=Use the &title as the commit comment +CommitSetDialog.3=Enter a commit &comment +CommitSetDiffNode.0={0} (default) UpdateOperation.0=Updating {0} ReplaceOperation.0=Replacing {0} TagOperation.0=Tagging {0} diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java index 0f77290a4..e80472e3e 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogDiffNode.java @@ -42,12 +42,7 @@ public class ChangeLogDiffNode extends SynchronizeModelElement { } public boolean equals(Object obj) { - if(obj == this) return true; - if(! (obj instanceof ChangeLogDiffNode)) return false; - ChangeLogDiffNode other = (ChangeLogDiffNode)obj; - ILogEntry otherLog = other.getComment(); - ILogEntry thisLog = getComment(); - return thisLog.getComment().equals(otherLog.getComment()) && thisLog.getAuthor().equals(otherLog.getAuthor()); + return (obj == this); } /* (non-Javadoc) diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelManager.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelManager.java index 686a8e8c9..1a22ec62e 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelManager.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelManager.java @@ -15,6 +15,7 @@ import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.team.internal.ccvs.core.CVSTag; +import org.eclipse.team.internal.ccvs.ui.*; import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants; import org.eclipse.team.internal.ui.synchronize.*; @@ -38,7 +39,7 @@ public class ChangeLogModelManager extends HierarchicalModelManager implements I private class ToggleCommitSetAction extends Action { public ToggleCommitSetAction() { - super("Show Commit Sets", CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_CHANGELOG)); + super(Policy.bind("ChangeLogModelManager.0"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_CHANGELOG)); //$NON-NLS-1$ update(); } public void run() { diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelProvider.java index c69f7b697..ef6047676 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelProvider.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/ChangeLogModelProvider.java @@ -133,7 +133,7 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC private class CreateCommitSetAction extends SynchronizeModelAction { public CreateCommitSetAction(ISynchronizePageConfiguration configuration) { - super("&New Commit Set...", configuration); + super(Policy.bind("ChangeLogModelProvider.0"), configuration); //$NON-NLS-1$ } /* (non-Javadoc) @@ -153,16 +153,16 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC public void run() { try { IResource[] resources = Utils.getResources(getSelectedDiffElements()); - CommitSet set = CommitSetManager.getInstance().createCommitSet("New Set", null); + CommitSet set = CommitSetManager.getInstance().createCommitSet(Policy.bind("ChangeLogModelProvider.1"), null); //$NON-NLS-1$ CommitSetDialog dialog = new CommitSetDialog(getConfiguration().getSite().getShell(), set, resources, - "New Commit Set", "Enter the name and comment for the new commit set"); + Policy.bind("ChangeLogModelProvider.2"), Policy.bind("ChangeLogModelProvider.3")); //$NON-NLS-1$ //$NON-NLS-2$ dialog.open(); if (dialog.getReturnCode() != InputDialog.OK) return; set.addFiles(resources); CommitSetManager.getInstance().add(set); } catch (CVSException e) { CVSUIPlugin.openError(getConfiguration().getSite().getShell(), - "Could not create set", "A problem occurred while trying to create the commit set", e); + Policy.bind("ChangeLogModelProvider.4"), Policy.bind("ChangeLogModelProvider.5"), e); //$NON-NLS-1$ //$NON-NLS-2$ } } }); @@ -201,14 +201,14 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC private class EditCommitSetAction extends CommitSetAction { public EditCommitSetAction(ISynchronizePageConfiguration configuration) { - super("Ed&it Comment...", configuration); + super(Policy.bind("ChangeLogModelProvider.6"), configuration); //$NON-NLS-1$ } public void run() { CommitSet set = getSelectedSet(); if (set == null) return; CommitSetDialog dialog = new CommitSetDialog(getConfiguration().getSite().getShell(), set, set.getFiles(), - "Edit Commit Set Comment", "Edit the name and comment for the new commit set"); + Policy.bind("ChangeLogModelProvider.7"), Policy.bind("ChangeLogModelProvider.8")); //$NON-NLS-1$ //$NON-NLS-2$ dialog.open(); if (dialog.getReturnCode() != InputDialog.OK) return; // Nothing to do here as the set was updated by the dialog @@ -219,7 +219,7 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC private class MakeDefaultCommitSetAction extends CommitSetAction { public MakeDefaultCommitSetAction(ISynchronizePageConfiguration configuration) { - super("Make De&fault", configuration); + super(Policy.bind("ChangeLogModelProvider.9"), configuration); //$NON-NLS-1$ } public void run() { @@ -258,7 +258,7 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC set.addFiles(Utils.getResources(getSelectedDiffElements())); } catch (CVSException e) { CVSUIPlugin.openError(getConfiguration().getSite().getShell(), - "Could not add files", "A problem occurred while rying to add the files to the commit set", e); + Policy.bind("ChangeLogModelProvider.10"), Policy.bind("ChangeLogModelProvider.11"), e); //$NON-NLS-1$ //$NON-NLS-2$ } } }; @@ -277,7 +277,7 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC public void initialize(ISynchronizePageConfiguration configuration) { super.initialize(configuration); sortByComment = new MenuManager(Policy.bind("ChangeLogModelProvider.0")); //$NON-NLS-1$ - addToCommitSet = new MenuManager("Add &To"); + addToCommitSet = new MenuManager(Policy.bind("ChangeLogModelProvider.12")); //$NON-NLS-1$ addToCommitSet.setRemoveAllWhenShown(true); addToCommitSet.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { @@ -938,7 +938,7 @@ public class ChangeLogModelProvider extends CompositeModelProvider implements IC protected void nodeRemoved(ISynchronizeModelElement node, AbstractSynchronizeModelProvider provider) { super.nodeRemoved(node, provider); // TODO: This should be done using the proper API - if (node instanceof SynchronizeModelElement) { + if (node instanceof SyncInfoModelElement) { CVSSyncInfo info = (CVSSyncInfo) ((SyncInfoModelElement) node).getSyncInfo(); if (info != null) { ICVSRemoteResource remote = getRemoteResource(info); diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDialog.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDialog.java index e4570a771..3043f6354 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDialog.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDialog.java @@ -117,7 +117,7 @@ public class CommitSetDialog extends Dialog { composite.setFont(parent.getFont()); Label label = new Label(composite, SWT.NONE); - label.setText("&Name:"); + label.setText(Policy.bind("CommitSetDialog.0")); //$NON-NLS-1$ label.setLayoutData(new GridData(GridData.BEGINNING)); nameText = new Text(composite, SWT.BORDER); @@ -131,7 +131,7 @@ public class CommitSetDialog extends Dialog { private void initializeValues() { String initialText = set.getTitle(); - if (initialText == null) initialText = ""; + if (initialText == null) initialText = ""; //$NON-NLS-1$ nameText.setText(initialText); if (useTitleButton != null) { @@ -141,8 +141,8 @@ public class CommitSetDialog extends Dialog { } private void createOptionsArea(Composite composite) { - useTitleButton = createRadioButton(composite, "Use the &title as the commit comment"); - enterCommentButton = createRadioButton(composite, "Enter a commit &comment"); + useTitleButton = createRadioButton(composite, Policy.bind("CommitSetDialog.2")); //$NON-NLS-1$ + enterCommentButton = createRadioButton(composite, Policy.bind("CommitSetDialog.3")); //$NON-NLS-1$ SelectionAdapter listener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { updateEnablements(); diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDiffNode.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDiffNode.java index 70a9c5d03..2844188f9 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDiffNode.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CommitSetDiffNode.java @@ -12,6 +12,7 @@ package org.eclipse.team.internal.ccvs.ui.subscriber; import org.eclipse.core.resources.IResource; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.team.internal.ccvs.ui.*; import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants; import org.eclipse.team.internal.ui.synchronize.SynchronizeModelElement; @@ -54,7 +55,7 @@ public class CommitSetDiffNode extends SynchronizeModelElement { public String getName() { String name = set.getTitle(); if (CommitSetManager.getInstance().isDefault(set)) { - name = name + " (default)"; + name = Policy.bind("CommitSetDiffNode.0", name); //$NON-NLS-1$ } return name; } diff --git a/bundles/org.eclipse.team.ui/.options b/bundles/org.eclipse.team.ui/.options new file mode 100644 index 000000000..1665a8f95 --- /dev/null +++ b/bundles/org.eclipse.team.ui/.options @@ -0,0 +1,7 @@ +# Debugging options for the org.eclipse.team.ui plugin. + +# Turn on debugging for the plugin. +org.eclipse.team.ui/debug=false + +# Shows stream debugging information +org.eclipse.team.ui/syncmodels=false
\ No newline at end of file diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Policy.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Policy.java index 9f85e5911..94e8b1b3b 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Policy.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/Policy.java @@ -16,8 +16,7 @@ import java.util.MissingResourceException; import java.util.ResourceBundle; import org.eclipse.core.runtime.*; -import org.eclipse.team.internal.core.InfiniteSubProgressMonitor; -import org.eclipse.team.internal.core.NullSubProgressMonitor; +import org.eclipse.team.internal.core.*; /** * Policy implements NLS convenience methods for the plugin and @@ -27,6 +26,16 @@ public class Policy { // The resource bundle to get strings from protected static ResourceBundle bundle = null; + //debug constants + public static boolean DEBUG_SYNC_MODELS = false; + + static { + //init debug options + if (TeamUIPlugin.getPlugin().isDebugging()) { + DEBUG_SYNC_MODELS = "true".equalsIgnoreCase(Platform.getDebugOption(TeamUIPlugin.ID + "/syncmodels"));//$NON-NLS-1$ //$NON-NLS-2$ + } + } + /** * Creates a NLS catalog for the given locale. * diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties index 5c33f0bc9..1ed2d6f35 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties @@ -429,6 +429,7 @@ GlobalSynchronizeWizard.11=Synchronize SynchronizeManager.19=Could not create synchronization: {0} SynchronizeManager.20=Not allowed to create multiple synchronize instances of this type: {0} SynchronizeModelProvider.0=Synchronize View: Processing label changes +SynchronizeModelUpdateHandler.0=Errors occurred while updating problem markers WorkspaceScope.0=Workspace WorkingSetScope.0=Workspace SubscriberParticipant.namePattern={0} ({1}) @@ -466,3 +467,4 @@ FlatModelProvider.6=Sort &Resources By FlatModelProvider.7=&Name FlatModelProvider.8=&Path FlatModelProvider.9=&Parent Name +FlatModelProvider.0=Flat 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 479cf0391..ce10a6d4f 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 @@ -27,7 +27,6 @@ import org.eclipse.team.internal.ui.*; import org.eclipse.team.internal.ui.Policy; import org.eclipse.team.ui.synchronize.*; - /** * This class is reponsible for creating and maintaining a presentation model of * {@link SynchronizeModelElement} elements that can be shown in a viewer. The model @@ -552,7 +551,6 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo } protected void addToViewer(ISynchronizeModelElement node) { - updateHandler.nodeAdded(node, this); propogateConflictState(node, false); // Set the marker property on this node. // There is no need to propogate this to the parents @@ -564,6 +562,7 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo if (Utils.canUpdateViewer(getViewer())) { doAdd((SynchronizeModelElement)node.getParent(), node); } + updateHandler.nodeAdded(node, this); } /** @@ -589,6 +588,7 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo * @param node the root node */ protected void clearModelObjects(ISynchronizeModelElement node) { + // Clear all the children of the node IDiffElement[] children = node.getChildren(); for (int i = 0; i < children.length; i++) { IDiffElement element = children[i]; @@ -602,10 +602,13 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo } } } + // Remove the node from the tree IDiffContainer parent = node.getParent(); if (parent != null) { parent.removeToRoot(node); } + // Notify the update handler that the node has been cleared + updateHandler.modelObjectCleared(node); } /** @@ -652,13 +655,26 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo /** * This is a callback from the model update handler that gets invoked * when a node is removed from the viewer. It is only invoked for the - * root level model provider. + * root level model provider. A removed node may have children for + * which a <code>nodeRemoved</code> callback is not recieved (see + * <code>modelObjectCleared</code>). * @param node */ protected void nodeRemoved(ISynchronizeModelElement node, AbstractSynchronizeModelProvider provider) { // Default is to do nothing } + /** + * This is a callback from the model update handler that gets invoked + * when a node is cleared from the model. It is only invoked for the + * root level model provider. This calbakc is deep in the sense that + * a callbakc is sent for each node that is cleared. + * @param node the node that was removed. + */ + public void modelObjectCleared(ISynchronizeModelElement node) { + // Default is to do nothing + } + public void addPropertyChangeListener(IPropertyChangeListener listener) { synchronized (this) { if (listeners == null) { @@ -719,4 +735,21 @@ public abstract class AbstractSynchronizeModelProvider implements ISynchronizeMo protected void runViewUpdate(final Runnable runnable) { updateHandler.runViewUpdate(runnable); } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + public String toString() { + ISynchronizeModelElement element = getModelRoot(); + String name = getClass().getName(); + int index = name.lastIndexOf("."); //$NON-NLS-1$ + if (index != -1) { + name = name.substring(index + 1); + } + String name2 = element.getName(); + if (name2.length() == 0) { + name2 = "/"; //$NON-NLS-1$ + } + return name + ": " + name2; //$NON-NLS-1$ + } } 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 0ce441603..acf3dfe01 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 @@ -131,10 +131,10 @@ public abstract class CompositeModelProvider extends AbstractSynchronizeModelPro */ protected ISynchronizeModelProvider[] beginInput() { ISynchronizeModelProvider[] providers = getProviders(); - for (int i = 0; i < providers.length; i++) { - ISynchronizeModelProvider provider = providers[i]; - provider.getSyncInfoSet().beginInput(); - } +// for (int i = 0; i < providers.length; i++) { +// ISynchronizeModelProvider provider = providers[i]; +// provider.getSyncInfoSet().beginInput(); +// } return providers; } @@ -143,15 +143,15 @@ public abstract class CompositeModelProvider extends AbstractSynchronizeModelPro */ protected void endInput(ISynchronizeModelProvider[] providers, IProgressMonitor monitor) { RuntimeException exception = null; - for (int i = 0; i < providers.length; i++) { - ISynchronizeModelProvider provider = providers[i]; - try { - provider.getSyncInfoSet().endInput(monitor); - } catch (RuntimeException e) { - // Remember the exception but continue so all locks are freed - exception = e; - } - } +// for (int i = 0; i < providers.length; i++) { +// ISynchronizeModelProvider provider = providers[i]; +// try { +// provider.getSyncInfoSet().endInput(monitor); +// } catch (RuntimeException e) { +// // Remember the exception but continue so all locks are freed +// exception = e; +// } +// } if (exception != null) { throw exception; } @@ -262,6 +262,15 @@ public abstract class CompositeModelProvider extends AbstractSynchronizeModelPro */ protected void nodeRemoved(ISynchronizeModelElement node, AbstractSynchronizeModelProvider provider) { // Update the resource-to-element map and the element-to-provider map + modelObjectCleared(node); + super.nodeRemoved(node, provider); + } + + /* (non-Javadoc) + * @see org.eclipse.team.internal.ui.synchronize.AbstractSynchronizeModelProvider#modelObjectCleared(org.eclipse.team.ui.synchronize.ISynchronizeModelElement) + */ + public void modelObjectCleared(ISynchronizeModelElement node) { + super.modelObjectCleared(node); IResource r = node.getResource(); if(r != null) { List elements = (List)resourceToElements.get(r); @@ -273,7 +282,6 @@ public abstract class CompositeModelProvider extends AbstractSynchronizeModelPro } } elementToProvider.remove(node); - super.nodeRemoved(node, provider); } /* (non-Javadoc) diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/FlatModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/FlatModelProvider.java index bd4399265..3c6a11b43 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/FlatModelProvider.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/FlatModelProvider.java @@ -37,7 +37,7 @@ public class FlatModelProvider extends SynchronizeModelProvider { return ID; } public String getName() { - return "Flat"; + return Policy.bind("FlatModelProvider.0"); //$NON-NLS-1$ } public ImageDescriptor getImageDescriptor() { return TeamImages.getImageDescriptor(ITeamUIImages.IMG_FLAT); diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelUpdateHandler.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelUpdateHandler.java index afa385510..e2d2d9190 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelUpdateHandler.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelUpdateHandler.java @@ -36,7 +36,7 @@ import org.eclipse.team.ui.synchronize.ISynchronizeModelElement; */ public class SynchronizeModelUpdateHandler extends BackgroundEventHandler implements IResourceChangeListener, ISyncInfoSetChangeListener { - private static final boolean DEBUG = false; + private static final boolean DEBUG = Policy.DEBUG_SYNC_MODELS; private static final IWorkspaceRoot ROOT = ResourcesPlugin.getWorkspace().getRoot(); @@ -118,7 +118,7 @@ public class SynchronizeModelUpdateHandler extends BackgroundEventHandler implem * Create the marker update handler. */ public SynchronizeModelUpdateHandler(AbstractSynchronizeModelProvider provider) { - super(Policy.bind("SynchronizeModelProvider.0"), "Errors occurred while updating problem markers"); //$NON-NLS-1$ + super(Policy.bind("SynchronizeModelProvider.0"), Policy.bind("SynchronizeModelUpdateHandler.0")); //$NON-NLS-1$ //$NON-NLS-2$ this.provider = provider; ResourcesPlugin.getWorkspace().addResourceChangeListener(this); provider.getSyncInfoSet().addSyncSetChangedListener(this); @@ -403,19 +403,53 @@ public class SynchronizeModelUpdateHandler extends BackgroundEventHandler implem public void nodeAdded(ISynchronizeModelElement element, AbstractSynchronizeModelProvider provider) { element.addPropertyChangeListener(listener); this.provider.nodeAdded(element, provider); + if (DEBUG) { + System.out.println("Node added: " + getDebugDisplayLabel(element) + " -> " + getDebugDisplayLabel((ISynchronizeModelElement)element.getParent()) + " : " + getDebugDisplayLabel(provider)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } } /** * This method is invoked whenever a node is removed the viewer * by the provider or a sub-provider. The handler removes any * listener and notifies the root provider that - * a node was removed. + * a node was removed. The node removed may have children for which + * a nodeRemoved callback was not invoked (see modelObjectCleared). * @param element the removed element * @param provider the provider that added the element */ public void nodeRemoved(ISynchronizeModelElement element, AbstractSynchronizeModelProvider provider) { element.removePropertyChangeListener(listener); - provider.nodeRemoved(element, provider); + this.provider.nodeRemoved(element, provider); + if (DEBUG) { + System.out.println("Node removed: " + getDebugDisplayLabel(element) + " -> " + getDebugDisplayLabel((ISynchronizeModelElement)element.getParent()) + " : " + getDebugDisplayLabel(provider)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + } + + /** + * This method is invoked whenever a model object (i.e. node) + * is cleared from the model. This is similar to node removal but + * is deep. + * @param node the node that was cleared + */ + public void modelObjectCleared(ISynchronizeModelElement node) { + this.provider.modelObjectCleared(node); + if (DEBUG) { + System.out.println("Node cleared: " + getDebugDisplayLabel(node)); //$NON-NLS-1$ + } + } + + private String getDebugDisplayLabel(ISynchronizeModelElement node) { + if (node == null) { + return "ROOT"; //$NON-NLS-1$ + } + if (node.getResource() != null) { + return node.getResource().getFullPath().toString(); + } + return node.getName(); + } + + private String getDebugDisplayLabel(AbstractSynchronizeModelProvider provider2) { + return provider2.toString(); } /* (non-Javadoc) @@ -464,9 +498,6 @@ public class SynchronizeModelUpdateHandler extends BackgroundEventHandler implem return provider; } - /** - * @param monitor - */ public void connect(IProgressMonitor monitor) { getProvider().getSyncInfoSet().connect(this, monitor); } |