summaryrefslogtreecommitdiff
path: root/platform/util/src/com/intellij/openapi
diff options
context:
space:
mode:
Diffstat (limited to 'platform/util/src/com/intellij/openapi')
-rw-r--r--platform/util/src/com/intellij/openapi/ui/VerticalFlowLayout.java4
-rw-r--r--platform/util/src/com/intellij/openapi/util/BuildNumber.java35
-rw-r--r--platform/util/src/com/intellij/openapi/util/IconLoader.java4
-rw-r--r--platform/util/src/com/intellij/openapi/util/io/FileUtil.java13
-rw-r--r--platform/util/src/com/intellij/openapi/util/registry/ui/RegistryCheckBox.java7
5 files changed, 48 insertions, 15 deletions
diff --git a/platform/util/src/com/intellij/openapi/ui/VerticalFlowLayout.java b/platform/util/src/com/intellij/openapi/ui/VerticalFlowLayout.java
index 884a11711992..43aa9b37b510 100644
--- a/platform/util/src/com/intellij/openapi/ui/VerticalFlowLayout.java
+++ b/platform/util/src/com/intellij/openapi/ui/VerticalFlowLayout.java
@@ -48,6 +48,10 @@ public class VerticalFlowLayout extends FlowLayout implements Serializable {
this(alignment, 5, 5, fillHorizontally, fillVertically);
}
+ public VerticalFlowLayout(int hGap, int vGap) {
+ this(TOP, hGap, vGap, true, false);
+ }
+
public VerticalFlowLayout(@VerticalFlowAlignment int alignment, int hGap, int vGap, boolean fillHorizontally, boolean fillVertically) {
setAlignment(alignment);
this.hGap = hGap;
diff --git a/platform/util/src/com/intellij/openapi/util/BuildNumber.java b/platform/util/src/com/intellij/openapi/util/BuildNumber.java
index a888db7becf9..22cf77504a63 100644
--- a/platform/util/src/com/intellij/openapi/util/BuildNumber.java
+++ b/platform/util/src/com/intellij/openapi/util/BuildNumber.java
@@ -38,22 +38,28 @@ public class BuildNumber implements Comparable<BuildNumber> {
private final String myProductCode;
private final int myBaselineVersion;
private final int myBuildNumber;
+ private final String myAttemptInfo;
public BuildNumber(String productCode, int baselineVersion, int buildNumber) {
+ this(productCode, baselineVersion, buildNumber, null);
+ }
+
+ public BuildNumber(String productCode, int baselineVersion, int buildNumber, String attemptInfo) {
myProductCode = productCode;
myBaselineVersion = baselineVersion;
myBuildNumber = buildNumber;
+ myAttemptInfo = StringUtil.isEmpty(attemptInfo) ? null : attemptInfo;
}
public String asString() {
- return asString(true);
+ return asString(true, false);
}
public String asStringWithoutProductCode() {
- return asString(false);
+ return asString(false, false);
}
- private String asString(boolean includeProductCode) {
+ private String asString(boolean includeProductCode, boolean withBuildAttempt) {
StringBuilder builder = new StringBuilder();
if (includeProductCode && !StringUtil.isEmpty(myProductCode)) {
@@ -69,6 +75,10 @@ public class BuildNumber implements Comparable<BuildNumber> {
builder.append(SNAPSHOT);
}
+ if (withBuildAttempt && myAttemptInfo != null) {
+ builder.append('.').append(myAttemptInfo);
+ }
+
return builder.toString();
}
@@ -98,9 +108,11 @@ public class BuildNumber implements Comparable<BuildNumber> {
int baselineVersionSeparator = code.indexOf('.');
int baselineVersion;
int buildNumber;
+ String attemptInfo = null;
+
if (baselineVersionSeparator > 0) {
try {
- final String baselineVersionString = code.substring(0, baselineVersionSeparator);
+ String baselineVersionString = code.substring(0, baselineVersionSeparator);
if (baselineVersionString.trim().isEmpty()) return null;
baselineVersion = Integer.parseInt(baselineVersionString);
code = code.substring(baselineVersionSeparator + 1);
@@ -109,6 +121,11 @@ public class BuildNumber implements Comparable<BuildNumber> {
throw new RuntimeException("Invalid version number: " + version + "; plugin name: " + name);
}
+ int minorBuildSeparator = code.indexOf('.'); // allow <BuildNumber>.<BuildAttemptNumber> skipping BuildAttemptNumber
+ if (minorBuildSeparator > 0) {
+ attemptInfo = code.substring(minorBuildSeparator + 1);
+ code = code.substring(0, minorBuildSeparator);
+ }
buildNumber = parseBuildNumber(version, code, name);
}
else {
@@ -116,13 +133,13 @@ public class BuildNumber implements Comparable<BuildNumber> {
if (buildNumber <= 2000) {
// it's probably a baseline, not a build number
- return new BuildNumber(productCode, buildNumber, 0);
+ return new BuildNumber(productCode, buildNumber, 0, null);
}
baselineVersion = getBaseLineForHistoricBuilds(buildNumber);
}
- return new BuildNumber(productCode, baselineVersion, buildNumber);
+ return new BuildNumber(productCode, baselineVersion, buildNumber, attemptInfo);
}
private static int parseBuildNumber(String version, String code, String name) {
@@ -188,6 +205,7 @@ public class BuildNumber implements Comparable<BuildNumber> {
if (myBaselineVersion != that.myBaselineVersion) return false;
if (myBuildNumber != that.myBuildNumber) return false;
if (!myProductCode.equals(that.myProductCode)) return false;
+ if (!Comparing.equal(myAttemptInfo, that.myAttemptInfo)) return false;
return true;
}
@@ -197,6 +215,7 @@ public class BuildNumber implements Comparable<BuildNumber> {
int result = myProductCode.hashCode();
result = 31 * result + myBaselineVersion;
result = 31 * result + myBuildNumber;
+ if (myAttemptInfo != null) result = 31 * result + myAttemptInfo.hashCode();
return result;
}
@@ -256,4 +275,8 @@ public class BuildNumber implements Comparable<BuildNumber> {
public boolean isSnapshot() {
return myBuildNumber == Integer.MAX_VALUE;
}
+
+ public String asStringWithAllDetails() {
+ return asString(true, true);
+ }
}
diff --git a/platform/util/src/com/intellij/openapi/util/IconLoader.java b/platform/util/src/com/intellij/openapi/util/IconLoader.java
index 37948dfd49d8..cc87d0dcfc43 100644
--- a/platform/util/src/com/intellij/openapi/util/IconLoader.java
+++ b/platform/util/src/com/intellij/openapi/util/IconLoader.java
@@ -159,10 +159,6 @@ public final class IconLoader {
ourIsActivated = true;
}
- public static void deactivate() {
- ourIsActivated = false;
- }
-
private static boolean isLoaderDisabled() {
return !ourIsActivated;
}
diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java
index fa67b7462bec..0f95577cf2b5 100644
--- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java
+++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java
@@ -415,6 +415,17 @@ public class FileUtil extends FileUtilRt {
}
public static boolean delete(@NotNull File file) {
+ if (SystemInfo.isWindows) {
+ File tempFile = findSequentNonexistentFile(file.getParentFile(), file.getName(), "");
+ if (file.renameTo(tempFile)) {
+ file = tempFile;
+ }
+ }
+
+ return doDelete(file);
+ }
+
+ private static boolean doDelete(File file) {
FileAttributes attributes = FileSystemUtil.getAttributes(file);
if (attributes == null) return true;
@@ -422,7 +433,7 @@ public class FileUtil extends FileUtilRt {
File[] files = file.listFiles();
if (files != null) {
for (File child : files) {
- if (!delete(child)) return false;
+ if (!doDelete(child)) return false;
}
}
}
diff --git a/platform/util/src/com/intellij/openapi/util/registry/ui/RegistryCheckBox.java b/platform/util/src/com/intellij/openapi/util/registry/ui/RegistryCheckBox.java
index 657f8dd85a38..ffc664eacab1 100644
--- a/platform/util/src/com/intellij/openapi/util/registry/ui/RegistryCheckBox.java
+++ b/platform/util/src/com/intellij/openapi/util/registry/ui/RegistryCheckBox.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,8 +22,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public class RegistryCheckBox extends CheckBoxWithDescription {
-
- private RegistryValue myValue;
+ private final RegistryValue myValue;
public RegistryCheckBox(RegistryValue value) {
this(value, value.getDescription(), null);
@@ -31,6 +30,7 @@ public class RegistryCheckBox extends CheckBoxWithDescription {
public RegistryCheckBox(RegistryValue value, String text, @Nullable String longDescription) {
super(new JCheckBox(text), longDescription);
+
myValue = value;
getCheckBox().setSelected(myValue.asBoolean());
}
@@ -42,5 +42,4 @@ public class RegistryCheckBox extends CheckBoxWithDescription {
public void save() {
myValue.setValue(Boolean.valueOf(getCheckBox().isSelected()).toString());
}
-
} \ No newline at end of file