UpdateChannelType -> ChannelStatus

This commit is contained in:
Dmitry Jemerov
2011-03-04 19:32:51 +01:00
parent 318ae78783
commit 7b5ed0c257
7 changed files with 39 additions and 26 deletions
@@ -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<ChannelStatus> {
@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<ChannelStatus> 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<ChannelStatus> {
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<ChannelStatus> {
public String getDisplayName() {
return myDisplayName;
}
public static List<ChannelStatus> all() {
return ALL_TYPES;
}
}
@@ -53,7 +53,7 @@ public class UpdateSettings implements PersistentStateComponent<Element>, 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<Element>, UserUp
}
@Override
public UpdateChannelType getSelectedChannelType() {
return UPDATE_CHANNEL_TYPE;
public ChannelStatus getSelectedChannelStatus() {
return ChannelStatus.fromCode(UPDATE_CHANNEL_TYPE);
}
}
@@ -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>(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);
}
}
@@ -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() {
@@ -32,5 +32,5 @@ public interface UserUpdateSettings {
void setKnownChannelIds(List<String> ids);
UpdateChannelType getSelectedChannelType();
ChannelStatus getSelectedChannelStatus();
}
@@ -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<String> 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;
}
}
@@ -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);