From df47c5d2b8be2f7c07bcd42a899a5ed92d45d83e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 9 Feb 2012 15:47:16 +0100 Subject: [PATCH] allow a button to be marked as 'download', which causes it to be hidden when patch is available --- .../openapi/updateSettings/impl/ButtonInfo.java | 11 +++++++++++ .../openapi/updateSettings/impl/UpdateInfoDialog.java | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ButtonInfo.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ButtonInfo.java index 82820fc66cc0..6cbe0478b2dc 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ButtonInfo.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ButtonInfo.java @@ -23,10 +23,12 @@ import org.jdom.Element; public class ButtonInfo { private final String myName; private final String myUrl; + private final boolean myDownload; public ButtonInfo(Element element) { myName = element.getAttributeValue("name"); myUrl = element.getAttributeValue("url"); + myDownload = element.getAttributeValue("download") != null; } public String getName() { @@ -36,4 +38,13 @@ public class ButtonInfo { public String getUrl() { return myUrl; } + + /** + * The button marked with 'download=true' attribute is hidden if patch is available. + * + * @return true if the button should be hidden when the patch is available. + */ + public boolean isDownload() { + return myDownload; + } } diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java index af11cfe29660..9f4c64875055 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java @@ -66,11 +66,14 @@ class UpdateInfoDialog extends AbstractUpdateDialog { } else { for (ButtonInfo info : buttons) { - actions.add(new ButtonAction(info)); + if (!info.isDownload()) { + actions.add(new ButtonAction(info)); + } } } } else { + // the first button replaces the OK action for (int i = 1; i < buttons.size(); i++) { actions.add(new ButtonAction(buttons.get(i))); }