From 7b5ed0c2571318df869782eb28ec353686af2f46 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 3 Mar 2011 14:45:36 +0100 Subject: [PATCH] UpdateChannelType -> ChannelStatus --- .../updateSettings/impl/ChannelStatus.java | 19 ++++++++++++++++--- .../updateSettings/impl/UpdateSettings.java | 6 +++--- .../impl/UpdateSettingsConfigurable.java | 16 ++++++++-------- .../updateSettings/impl/UpdateStrategy.java | 4 ++-- .../impl/UserUpdateSettings.java | 2 +- .../ide/updates/TestUpdateSettings.java | 12 ++++++------ .../ide/updates/UpdateStrategyTest.java | 6 +++--- 7 files changed, 39 insertions(+), 26 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ChannelStatus.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ChannelStatus.java index fa628ecdf614..c5520a3880b0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ChannelStatus.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/ChannelStatus.java @@ -19,11 +19,21 @@ */ package com.intellij.openapi.updateSettings.impl; +import com.google.common.collect.ImmutableList; +import org.jetbrains.annotations.NonNls; + +import java.util.Collection; +import java.util.List; + public class ChannelStatus implements Comparable { + @NonNls public static final String RELEASE_CODE = "release"; + public static final ChannelStatus EAP = new ChannelStatus(0, "eap", "Early Access Program"); public static final ChannelStatus MILESTONE = new ChannelStatus(1, "milestone", "Milestone Releases"); public static final ChannelStatus BETA = new ChannelStatus(2, "beta", "Beta Releases or Public Previews"); - public static final ChannelStatus RELEASE = new ChannelStatus(3, "release", "New Major Version Releases"); + public static final ChannelStatus RELEASE = new ChannelStatus(3, RELEASE_CODE, "New Major Version Releases"); + + private static final List ALL_TYPES = ImmutableList.of(RELEASE, BETA, MILESTONE, EAP); private final int myOrder; private final String myCode; @@ -39,9 +49,8 @@ public class ChannelStatus implements Comparable { if ("eap".equals(code)) return EAP; if ("milestone".equals(code)) return MILESTONE; if ("beta".equals(code)) return BETA; - if ("release".equals(code)) return RELEASE; - return EAP; + return RELEASE; } public int compareTo(ChannelStatus o) { @@ -55,4 +64,8 @@ public class ChannelStatus implements Comparable { public String getDisplayName() { return myDisplayName; } + + public static List all() { + return ALL_TYPES; + } } diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettings.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettings.java index 9fdec499648e..51d87906d0fd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettings.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettings.java @@ -53,7 +53,7 @@ public class UpdateSettings implements PersistentStateComponent, UserUp public boolean CHECK_NEEDED = true; public long LAST_TIME_CHECKED = 0; - public UpdateChannelType UPDATE_CHANNEL_TYPE = UpdateChannelType.Release; + public String UPDATE_CHANNEL_TYPE = ChannelStatus.RELEASE_CODE; public static UpdateSettings getInstance() { return ServiceManager.getService(UpdateSettings.class); @@ -113,7 +113,7 @@ public class UpdateSettings implements PersistentStateComponent, UserUp } @Override - public UpdateChannelType getSelectedChannelType() { - return UPDATE_CHANNEL_TYPE; + public ChannelStatus getSelectedChannelStatus() { + return ChannelStatus.fromCode(UPDATE_CHANNEL_TYPE); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettingsConfigurable.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettingsConfigurable.java index eb3d81c8f790..8b62851ebd24 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettingsConfigurable.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateSettingsConfigurable.java @@ -24,6 +24,7 @@ import com.intellij.openapi.ui.InputValidator; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.NonEmptyInputValidator; import com.intellij.openapi.util.IconLoader; +import com.intellij.ui.CollectionComboBoxModel; import com.intellij.ui.EnumComboBoxModel; import com.intellij.ui.ListUtil; import com.intellij.ui.components.JBList; @@ -75,7 +76,7 @@ public class UpdateSettingsConfigurable extends BaseConfigurable implements Sear settings.myPluginHosts.clear(); settings.myPluginHosts.addAll(myUpdatesSettingsPanel.getPluginsHosts()); - settings.UPDATE_CHANNEL_TYPE = myUpdatesSettingsPanel.getSelectedChannelType(); + settings.UPDATE_CHANNEL_TYPE = myUpdatesSettingsPanel.getSelectedChannelType().getCode(); } public void reset() { @@ -83,7 +84,7 @@ public class UpdateSettingsConfigurable extends BaseConfigurable implements Sear myUpdatesSettingsPanel.myCbCheckForUpdates.setSelected(settings.CHECK_NEEDED); myUpdatesSettingsPanel.updateLastCheckedLabel(); myUpdatesSettingsPanel.setPluginHosts(settings.myPluginHosts); - myUpdatesSettingsPanel.setSelectedChannelType(settings.UPDATE_CHANNEL_TYPE); + myUpdatesSettingsPanel.setSelectedChannelType(ChannelStatus.fromCode(settings.UPDATE_CHANNEL_TYPE)); } public boolean isModified() { @@ -205,8 +206,7 @@ public class UpdateSettingsConfigurable extends BaseConfigurable implements Sear final UpdateSettings settings = UpdateSettings.getInstance(); - myUpdateChannelsBox.setModel(new EnumComboBoxModel(UpdateChannelType.class)); - myUpdateChannelsBox.setSelectedItem(settings.UPDATE_CHANNEL_TYPE); + myUpdateChannelsBox.setModel(new CollectionComboBoxModel(ChannelStatus.all(), ChannelStatus.fromCode(settings.UPDATE_CHANNEL_TYPE))); } private void updateLastCheckedLabel() { @@ -231,12 +231,12 @@ public class UpdateSettingsConfigurable extends BaseConfigurable implements Sear } } - public UpdateChannelType getSelectedChannelType() { - return (UpdateChannelType) myUpdateChannelsBox.getSelectedItem(); + public ChannelStatus getSelectedChannelType() { + return (ChannelStatus) myUpdateChannelsBox.getSelectedItem(); } - public void setSelectedChannelType(UpdateChannelType channelType) { - myUpdateChannelsBox.setSelectedItem(channelType != null ? channelType : UpdateChannelType.Release); + public void setSelectedChannelType(ChannelStatus channelType) { + myUpdateChannelsBox.setSelectedItem(channelType != null ? channelType : ChannelStatus.RELEASE); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateStrategy.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateStrategy.java index 6cbdb6316a13..b69975ea4e62 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateStrategy.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateStrategy.java @@ -33,7 +33,7 @@ public class UpdateStrategy { private UserUpdateSettings updateSettings; private BuildNumber ourBuild; - private UpdateChannelType myChannelType; + private ChannelStatus myChannelStatus; private UpdatesInfo updatesInfo; @@ -41,7 +41,7 @@ public class UpdateStrategy { this.updatesInfo = updatesInfo; this.updateSettings = updateSettings; this.ourBuild = ourBuild; - myChannelType = updateSettings.getSelectedChannelType(); + myChannelStatus = updateSettings.getSelectedChannelStatus(); } public final CheckForUpdateResult checkForUpdates() { diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UserUpdateSettings.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UserUpdateSettings.java index f2dbd9ab4354..23d60ce9dfed 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UserUpdateSettings.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UserUpdateSettings.java @@ -32,5 +32,5 @@ public interface UserUpdateSettings { void setKnownChannelIds(List ids); - UpdateChannelType getSelectedChannelType(); + ChannelStatus getSelectedChannelStatus(); } diff --git a/platform/platform-impl/testSrc/com/intellij/ide/updates/TestUpdateSettings.java b/platform/platform-impl/testSrc/com/intellij/ide/updates/TestUpdateSettings.java index ad781567313a..88292ab33f05 100644 --- a/platform/platform-impl/testSrc/com/intellij/ide/updates/TestUpdateSettings.java +++ b/platform/platform-impl/testSrc/com/intellij/ide/updates/TestUpdateSettings.java @@ -16,7 +16,7 @@ package com.intellij.ide.updates; -import com.intellij.openapi.updateSettings.impl.UpdateChannelType; +import com.intellij.openapi.updateSettings.impl.ChannelStatus; import com.intellij.openapi.updateSettings.impl.UserUpdateSettings; import org.jetbrains.annotations.NotNull; @@ -24,15 +24,15 @@ import java.util.Arrays; import java.util.List; public class TestUpdateSettings implements UserUpdateSettings { - private UpdateChannelType myUpdateChannelType; + private ChannelStatus myChannelStatus; private boolean disabled; private List knowsChannels; public TestUpdateSettings() { } - public TestUpdateSettings(UpdateChannelType channelType, boolean disabled, String[] knowsChannels) { - myUpdateChannelType = channelType; + public TestUpdateSettings(ChannelStatus channelStatus, boolean disabled, String[] knowsChannels) { + myChannelStatus = channelStatus; this.disabled = disabled; this.knowsChannels = knowsChannels!=null?Arrays.asList(knowsChannels):null; } @@ -59,7 +59,7 @@ public class TestUpdateSettings implements UserUpdateSettings { } @Override - public UpdateChannelType getSelectedChannelType() { - return myUpdateChannelType; + public ChannelStatus getSelectedChannelStatus() { + return myChannelStatus; } } diff --git a/platform/platform-impl/testSrc/com/intellij/ide/updates/UpdateStrategyTest.java b/platform/platform-impl/testSrc/com/intellij/ide/updates/UpdateStrategyTest.java index 6e2882e2ac1a..6a9841c83797 100644 --- a/platform/platform-impl/testSrc/com/intellij/ide/updates/UpdateStrategyTest.java +++ b/platform/platform-impl/testSrc/com/intellij/ide/updates/UpdateStrategyTest.java @@ -52,7 +52,7 @@ public class UpdateStrategyTest extends TestCase { public void testWithUserSelection() { //assume user has version 9 eap - and used eap channel - we want to introduce new eap - final TestUpdateSettings settings = new TestUpdateSettings(UpdateChannelType.Development, true, null); + final TestUpdateSettings settings = new TestUpdateSettings(ChannelStatus.EAP, true, null); //first time load UpdateStrategy strategy = new UpdateStrategy(BuildNumber.fromString("IU-95.429"), UpdatesInfoXppParserTest.InfoReader.read("idea-new9eap.xml"), settings); @@ -66,7 +66,7 @@ public class UpdateStrategyTest extends TestCase { public void testNewChannelAppears() { // assume user has version 9 eap subscription (default or selected) // and new channel appears - eap of version 10 is there - final TestUpdateSettings settings = new TestUpdateSettings(UpdateChannelType.Development, true, null); + final TestUpdateSettings settings = new TestUpdateSettings(ChannelStatus.EAP, true, null); //first time load UpdateStrategy strategy = new UpdateStrategy(BuildNumber.fromString("IU-95.627"), UpdatesInfoXppParserTest.InfoReader.read("idea-newChannel.xml"), settings); @@ -87,7 +87,7 @@ public class UpdateStrategyTest extends TestCase { //and new channels appears - eap of version 10 is there //and new build withing old channel appears also //we need to show only one dialog - final TestUpdateSettings settings = new TestUpdateSettings(UpdateChannelType.Development, true, null); + final TestUpdateSettings settings = new TestUpdateSettings(ChannelStatus.EAP, true, null); //first time load UpdateStrategy strategy = new UpdateStrategy(BuildNumber.fromString("IU-95.429"), UpdatesInfoXppParserTest.InfoReader.read("idea-newChannel.xml"), settings);