diff options
Diffstat (limited to 'plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/Loader.java')
-rw-r--r-- | plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/Loader.java | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/Loader.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/Loader.java index ab2b6ddb67f3..62d7ec10024a 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/Loader.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/browserCache/Loader.java @@ -15,51 +15,52 @@ */ package org.jetbrains.idea.svn.dialogs.browserCache; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.svn.browse.DirectoryEntry; import org.jetbrains.idea.svn.dialogs.RepositoryTreeNode; import java.util.List; public abstract class Loader { - protected final SvnRepositoryCache myCache; - protected Loader(final SvnRepositoryCache cache) { + @NotNull protected final SvnRepositoryCache myCache; + + protected Loader(@NotNull SvnRepositoryCache cache) { myCache = cache; } - public abstract void load(final RepositoryTreeNode node, final Expander afterRefreshExpander); - public abstract void forceRefresh(final String repositoryRootUrl); + public abstract void load(@NotNull RepositoryTreeNode node, @NotNull Expander afterRefreshExpander); + + @NotNull protected abstract NodeLoadState getNodeLoadState(); - protected void refreshNodeError(final RepositoryTreeNode node, final String text) { - if (node.isDisposed()) { - return; - } - final RepositoryTreeNode existingNode = node.getNodeWithSamePathUnderModelRoot(); - if (existingNode == null) { - return; - } - if (existingNode.isDisposed()) { - return; - } + protected void refreshNodeError(@NotNull RepositoryTreeNode node, @NotNull String text) { + RepositoryTreeNode existingNode = findExistingNode(node); - existingNode.setErrorNode(text, getNodeLoadState()); + if (existingNode != null) { + existingNode.setErrorNode(text); + } } - protected void refreshNode(final RepositoryTreeNode node, final List<DirectoryEntry> data, final Expander expander) { - if (node.isDisposed()) { - return; - } - final RepositoryTreeNode existingNode = node.getNodeWithSamePathUnderModelRoot(); - if (existingNode == null) { - return; + protected void refreshNode(@NotNull RepositoryTreeNode node, @NotNull List<DirectoryEntry> data, @NotNull Expander expander) { + RepositoryTreeNode existingNode = findExistingNode(node); + + if (existingNode != null) { + expander.onBeforeRefresh(existingNode); + existingNode.setChildren(data, getNodeLoadState()); + expander.onAfterRefresh(existingNode); } + } - if (existingNode.isDisposed()) { - return; + @Nullable + private static RepositoryTreeNode findExistingNode(@NotNull RepositoryTreeNode node) { + RepositoryTreeNode result = null; + + if (!node.isDisposed()) { + result = node.getNodeWithSamePathUnderModelRoot(); } - expander.onBeforeRefresh(existingNode); - existingNode.setChildren(data, getNodeLoadState()); - expander.onAfterRefresh(existingNode); + + return result == null || result.isDisposed() ? null : result; } } |