diff options
Diffstat (limited to 'platform/dvcs-impl/src/com/intellij/dvcs/push/ui/RepositoryNode.java')
-rw-r--r-- | platform/dvcs-impl/src/com/intellij/dvcs/push/ui/RepositoryNode.java | 53 |
1 files changed, 34 insertions, 19 deletions
diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/RepositoryNode.java b/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/RepositoryNode.java index 24a26ece96d9..05e752c4be85 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/RepositoryNode.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/RepositoryNode.java @@ -17,26 +17,27 @@ package com.intellij.dvcs.push.ui; import com.intellij.openapi.progress.EmptyProgressIndicator; import com.intellij.openapi.progress.ProgressIndicator; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.ui.CheckedTreeNode; -import com.intellij.ui.ColoredTreeCellRenderer; -import com.intellij.ui.EditorTextField; -import com.intellij.ui.SimpleTextAttributes; +import com.intellij.ui.*; import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.*; +import java.util.ArrayList; -public class RepositoryNode extends CheckedTreeNode implements EditableTreeNode { - protected final static String ENTER_REMOTE = "Enter Remote"; +public class RepositoryNode extends CheckedTreeNode implements EditableTreeNode, Comparable<RepositoryNode> { @NotNull private final RepositoryWithBranchPanel myRepositoryPanel; - + @NotNull protected SimpleColoredText myTargetPresentation; private ProgressIndicator myCurrentIndicator; - public RepositoryNode(@NotNull RepositoryWithBranchPanel repositoryPanel) { + public RepositoryNode(@NotNull RepositoryWithBranchPanel repositoryPanel, @NotNull SimpleColoredText targetPresentation) { super(repositoryPanel); myRepositoryPanel = repositoryPanel; + myTargetPresentation = targetPresentation; + } + + public void setTargetPresentation(@NotNull SimpleColoredText targetPresentation) { + myTargetPresentation = targetPresentation; } public boolean isCheckboxVisible() { @@ -51,30 +52,38 @@ public class RepositoryNode extends CheckedTreeNode implements EditableTreeNode renderer.append(myRepositoryPanel.getSourceName(), SimpleTextAttributes.REGULAR_ATTRIBUTES); renderer.append(myRepositoryPanel.getArrow(), SimpleTextAttributes.REGULAR_ATTRIBUTES); EditorTextField textField = myRepositoryPanel.getRemoteTextFiled(); - renderTargetName(renderer, textField, myRepositoryPanel.getRemoteTargetName()); + renderTargetName(renderer, textField); Insets insets = BorderFactory.createEmptyBorder().getBorderInsets(textField); renderer.setBorder(new EmptyBorder(insets)); } - protected void renderTargetName(@NotNull ColoredTreeCellRenderer renderer, @NotNull EditorTextField textField, - @NotNull String targetName) { - if (StringUtil.isEmptyOrSpaces(targetName)) { - renderer.append(ENTER_REMOTE, SimpleTextAttributes.GRAY_ITALIC_ATTRIBUTES, textField); - } - else { - renderer.append(targetName, SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, textField); + protected void renderTargetName(@NotNull ColoredTreeCellRenderer renderer, @NotNull EditorTextField textField) { + ArrayList<String> strings = myTargetPresentation.getTexts(); + ArrayList<SimpleTextAttributes> attributes = myTargetPresentation.getAttributes(); + for (int i = 0; i < strings.size(); i++) { + renderer.append(strings.get(i), attributes.get(i), textField); } } @Override + public Object getUserObject() { + return myRepositoryPanel; + } + + @Override @NotNull public String getValue() { return myRepositoryPanel.getRemoteTargetName(); } @Override - public void fireOnChange(@NotNull String value) { - myRepositoryPanel.fireOnChange(value); + public void fireOnChange() { + myRepositoryPanel.fireOnChange(); + } + + @Override + public void fireOnCancel() { + myRepositoryPanel.fireOnCancel(); } @Override @@ -94,4 +103,10 @@ public class RepositoryNode extends CheckedTreeNode implements EditableTreeNode public ProgressIndicator startLoading() { return myCurrentIndicator = new EmptyProgressIndicator(); } + + public int compareTo(@NotNull RepositoryNode repositoryNode) { + String name = myRepositoryPanel.getRepositoryName(); + RepositoryWithBranchPanel panel = (RepositoryWithBranchPanel)repositoryNode.getUserObject(); + return name.compareTo(panel.getRepositoryName()); + } } |