diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java index a34d137581f5..4bfce7268d4e 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java @@ -18,12 +18,14 @@ package com.intellij.ide.ui.laf.darcula.ui; import com.intellij.icons.AllIcons; import com.intellij.openapi.ui.GraphicsConfig; import com.intellij.openapi.util.SystemInfo; +import com.intellij.util.ObjectUtils; import com.intellij.util.ui.GraphicsUtil; import com.intellij.util.ui.UIUtil; import sun.swing.SwingUtilities2; import javax.swing.*; import javax.swing.border.Border; +import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicButtonUI; @@ -146,18 +148,18 @@ public class DarculaButtonUI extends BasicButtonUI { } protected Color getButtonColor1() { - return UIManager.getColor("Button.darcula.color1"); + return ObjectUtils.notNull(UIManager.getColor("Button.darcula.color1"), new ColorUIResource(0x555a5c)); } protected Color getButtonColor2() { - return UIManager.getColor("Button.darcula.color2"); + return ObjectUtils.notNull(UIManager.getColor("Button.darcula.color2"), new ColorUIResource(0x414648)); } protected Color getSelectedButtonColor1() { - return UIManager.getColor("Button.darcula.selection.color1"); + return ObjectUtils.notNull(UIManager.getColor("Button.darcula.selection.color1"), new ColorUIResource(0x384f6b)); } protected Color getSelectedButtonColor2() { - return UIManager.getColor("Button.darcula.selection.color2"); + return ObjectUtils.notNull(UIManager.getColor("Button.darcula.selection.color2"), new ColorUIResource(0x233143)); } } diff --git a/platform/remote-servers/api/src/com/intellij/remoteServer/runtime/deployment/DeploymentRuntime.java b/platform/remote-servers/api/src/com/intellij/remoteServer/runtime/deployment/DeploymentRuntime.java index 7a6cbd177b70..c07c1045f032 100644 --- a/platform/remote-servers/api/src/com/intellij/remoteServer/runtime/deployment/DeploymentRuntime.java +++ b/platform/remote-servers/api/src/com/intellij/remoteServer/runtime/deployment/DeploymentRuntime.java @@ -16,4 +16,8 @@ public abstract class DeploymentRuntime { public interface UndeploymentTaskCallback extends RemoteOperationCallback { void succeeded(); } + + public Integer compareTo(DeploymentRuntime other) { + return null; + } } diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ServerConnectionImpl.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ServerConnectionImpl.java index 4234fd542b93..06e3ae63c486 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ServerConnectionImpl.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/impl/runtime/ServerConnectionImpl.java @@ -290,16 +290,29 @@ public class ServerConnectionImpl implements @NotNull @Override public Collection getDeployments() { - Map result; - synchronized (myRemoteDeployments) { - result = new HashMap(myRemoteDeployments); - } - synchronized (myLocalDeployments) { - for (Deployment deployment : myLocalDeployments.values()) { - result.put(deployment.getName(), deployment); + Set result = new TreeSet(new Comparator() { + + @Override + public int compare(Deployment o1, Deployment o2) { + DeploymentRuntime runtime1 = o1.getRuntime(); + DeploymentRuntime runtime2 = o2.getRuntime(); + if (runtime1 != null && runtime2 != null) { + Integer runtimeCompareResult = runtime1.compareTo(runtime2); + if (runtimeCompareResult != null) { + return runtimeCompareResult; + } + } + return o1.getName().compareTo(o2.getName()); } + }); + synchronized (myLocalDeployments) { + result.addAll(myLocalDeployments.values()); } - return result.values(); + + synchronized (myRemoteDeployments) { + result.addAll(myRemoteDeployments.values()); + } + return result; } @Override diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudServerRuntimeInstance.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudServerRuntimeInstance.java index 65bd9066ca3b..ae6d30da651f 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudServerRuntimeInstance.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudServerRuntimeInstance.java @@ -111,12 +111,16 @@ public abstract class CloudServerRuntimeInstance public List compute() { List result = new ArrayList(); for (CloudRemoteApplication application : getAgent().getApplications()) { - result.add(createApplicationRuntime(application.getName())); + result.add(createApplicationRuntime(application)); } return result; } }); } + protected CloudApplicationRuntime createApplicationRuntime(CloudRemoteApplication application) { + return createApplicationRuntime(application.getName()); + } + protected abstract CloudApplicationRuntime createApplicationRuntime(String applicationName); } diff --git a/python/edu/learn-python/resources/courses/introduction_course.zip b/python/edu/learn-python/resources/courses/introduction_course.zip index 5b5b6b85efba..55261616988e 100644 Binary files a/python/edu/learn-python/resources/courses/introduction_course.zip and b/python/edu/learn-python/resources/courses/introduction_course.zip differ