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))); }