Skip to content

Commit 7cc761e

Browse files
committed
Refactoring of sdk package. Compilation fix.
1 parent 9059e7d commit 7cc761e

20 files changed

+543
-568
lines changed

python-impl/src/main/java/com/jetbrains/python/impl/sdk/AbstractCreateVirtualEnvDialog.java

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import consulo.application.progress.ProgressIndicator;
2424
import consulo.application.progress.ProgressManager;
2525
import consulo.application.progress.Task;
26-
import consulo.application.util.function.Computable;
2726
import consulo.content.bundle.Sdk;
2827
import consulo.content.bundle.SdkUtil;
2928
import consulo.ide.impl.idea.webcore.packaging.PackagesNotificationPanel;
@@ -42,7 +41,6 @@
4241
import consulo.util.lang.StringUtil;
4342
import consulo.virtualFileSystem.LocalFileSystem;
4443
import consulo.virtualFileSystem.VirtualFile;
45-
4644
import jakarta.annotation.Nonnull;
4745
import jakarta.annotation.Nullable;
4846

@@ -51,6 +49,7 @@
5149
import java.io.File;
5250
import java.util.Collections;
5351
import java.util.List;
52+
import java.util.function.Supplier;
5453

5554
public abstract class AbstractCreateVirtualEnvDialog extends IdeaDialog {
5655
@Nullable
@@ -66,35 +65,30 @@ public interface VirtualEnvCallback {
6665
}
6766

6867
@RequiredUIAccess
69-
public static void setupVirtualEnvSdk(final String path, boolean associateWithProject, VirtualEnvCallback callback) {
70-
final VirtualFile sdkHome = Application.get().runWriteAction(new Computable<VirtualFile>() {
71-
@Nullable
72-
@Override
73-
public VirtualFile compute() {
74-
return LocalFileSystem.getInstance().refreshAndFindFileByPath(path);
75-
}
76-
});
68+
public static void setupVirtualEnvSdk(String path, boolean associateWithProject, VirtualEnvCallback callback) {
69+
VirtualFile sdkHome =
70+
Application.get().runWriteAction((Supplier<VirtualFile>)() -> LocalFileSystem.getInstance().refreshAndFindFileByPath(path));
7771
if (sdkHome != null) {
78-
final Sdk sdk =
72+
Sdk sdk =
7973
SdkUtil.createAndAddSDK(FileUtil.toSystemDependentName(sdkHome.getPath()), PythonSdkType.getInstance(), UIAccess.current());
8074
callback.virtualEnvCreated(sdk, associateWithProject);
8175
}
8276
}
8377

84-
public AbstractCreateVirtualEnvDialog(Project project, final List<Sdk> allSdks) {
78+
public AbstractCreateVirtualEnvDialog(Project project, List<Sdk> allSdks) {
8579
super(project);
8680
setupDialog(project, allSdks);
8781
}
8882

89-
public AbstractCreateVirtualEnvDialog(Component owner, final List<Sdk> allSdks) {
83+
public AbstractCreateVirtualEnvDialog(Component owner, List<Sdk> allSdks) {
9084
super(owner);
9185
setupDialog(null, allSdks);
9286
}
9387

94-
void setupDialog(Project project, final List<Sdk> allSdks) {
88+
void setupDialog(Project project, List<Sdk> allSdks) {
9589
myProject = project;
9690

97-
final GridBagLayout layout = new GridBagLayout();
91+
GridBagLayout layout = new GridBagLayout();
9892
myMainPanel = new JPanel(layout);
9993
myName = new JTextField();
10094
myDestination = new TextFieldWithBrowseButton();
@@ -130,26 +124,26 @@ public void validate() {
130124
protected void setInitialDestination() {
131125
myInitialPath = "";
132126

133-
final VirtualFile file = VirtualEnvSdkFlavor.getDefaultLocation();
127+
VirtualFile file = VirtualEnvSdkFlavor.getDefaultLocation();
134128

135129
if (file != null) {
136130
myInitialPath = file.getPath();
137131
}
138132
else {
139-
final String savedPath = PyPackageService.getInstance().getVirtualEnvBasePath();
133+
String savedPath = PyPackageService.getInstance().getVirtualEnvBasePath();
140134
if (!StringUtil.isEmptyOrSpaces(savedPath)) {
141135
myInitialPath = savedPath;
142136
}
143137
else if (myProject != null) {
144-
final VirtualFile baseDir = myProject.getBaseDir();
138+
VirtualFile baseDir = myProject.getBaseDir();
145139
if (baseDir != null) {
146140
myInitialPath = baseDir.getPath();
147141
}
148142
}
149143
}
150144
}
151145

152-
/*protected void registerValidators(final FacetValidatorsManager validatorsManager) {
146+
/*protected void registerValidators(FacetValidatorsManager validatorsManager) {
153147
myDestination.getTextField().getDocument().addDocumentListener(new DocumentAdapter() {
154148
@Override
155149
protected void textChanged(DocumentEvent e) {
@@ -179,10 +173,10 @@ public void caretUpdate(CaretEvent event) {
179173
}*/
180174

181175
protected void checkValid() {
182-
final String projectName = myName.getText();
183-
final File destFile = new File(getDestination());
176+
String projectName = myName.getText();
177+
File destFile = new File(getDestination());
184178
if (destFile.exists()) {
185-
final String[] content = destFile.list();
179+
String[] content = destFile.list();
186180
if (content != null && content.length != 0) {
187181
setOKActionEnabled(false);
188182
setErrorText(PyLocalize.sdkCreateVenvDialogErrorNotEmptyDirectory());
@@ -209,7 +203,7 @@ protected void checkValid() {
209203
clearErrorText();
210204
}
211205

212-
abstract protected void layoutPanel(final List<Sdk> allSdks);
206+
abstract protected void layoutPanel(List<Sdk> allSdks);
213207

214208
@Override
215209
protected JComponent createCenterPanel() {
@@ -233,22 +227,22 @@ public boolean associateWithProject() {
233227
return !myMakeAvailableToAllProjectsCheckbox.isSelected();
234228
}
235229

236-
public void createVirtualEnv(final VirtualEnvCallback callback) {
237-
final ProgressManager progman = ProgressManager.getInstance();
238-
final Sdk basicSdk = getSdk();
239-
final Task.Modal createTask = new Task.Modal(myProject, PyLocalize.sdkCreateVenvDialogCreatingVenv(), false) {
230+
public void createVirtualEnv(VirtualEnvCallback callback) {
231+
ProgressManager progman = ProgressManager.getInstance();
232+
Sdk basicSdk = getSdk();
233+
Task.Modal createTask = new Task.Modal(myProject, PyLocalize.sdkCreateVenvDialogCreatingVenv(), false) {
240234
String myPath;
241235

242236
@Override
243-
public void run(@Nonnull final ProgressIndicator indicator) {
237+
public void run(@Nonnull ProgressIndicator indicator) {
244238
try {
245239
indicator.setTextValue(PyLocalize.sdkCreateVenvDialogCreatingVenv());
246240
myPath = createEnvironment(basicSdk);
247241
}
248-
catch (final ExecutionException e) {
242+
catch (ExecutionException e) {
249243
Application.get().invokeLater(
250244
() -> {
251-
final PackageManagementService.ErrorDescription description =
245+
PackageManagementService.ErrorDescription description =
252246
PyPackageManagementService.toErrorDescription(Collections.singletonList(e), basicSdk);
253247
if (description != null) {
254248
PackagesNotificationPanel.showError(

python-impl/src/main/java/com/jetbrains/python/impl/sdk/LocationNameFieldsBinding.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
22
package com.jetbrains.python.impl.sdk;
33

4-
import consulo.application.util.SystemInfo;
54
import consulo.fileChooser.FileChooserDescriptor;
65
import consulo.fileChooser.FileChooserDescriptorFactory;
6+
import consulo.platform.Platform;
77
import consulo.project.Project;
88
import consulo.ui.ex.awt.ComponentWithBrowseButton.BrowseFolderActionListener;
99
import consulo.ui.ex.awt.TextComponentAccessor;
@@ -12,7 +12,6 @@
1212
import consulo.util.io.FileUtil;
1313
import consulo.util.lang.StringUtil;
1414
import consulo.virtualFileSystem.VirtualFile;
15-
1615
import jakarta.annotation.Nonnull;
1716
import jakarta.annotation.Nullable;
1817

@@ -37,8 +36,8 @@ public class LocationNameFieldsBinding {
3736

3837
public LocationNameFieldsBinding(
3938
@Nullable Project project,
40-
final TextFieldWithBrowseButton locationField,
41-
final JTextField nameField,
39+
TextFieldWithBrowseButton locationField,
40+
JTextField nameField,
4241
String baseDir,
4342
String title
4443
) {
@@ -108,10 +107,10 @@ private boolean isProjectNameChanged(@Nonnull String currentName) {
108107
}
109108

110109
private class NameFieldDocument extends PlainDocument {
111-
NameFieldDocument(final JTextField projectNameTextField, final TextFieldWithBrowseButton locationField) {
110+
NameFieldDocument(JTextField projectNameTextField, TextFieldWithBrowseButton locationField) {
112111
addDocumentListener(new DocumentAdapter() {
113112
@Override
114-
protected void textChanged(@Nonnull final DocumentEvent e) {
113+
protected void textChanged(@Nonnull DocumentEvent e) {
115114
if (!myModifyingLocation && !myExternalModify) {
116115
myModifyingProjectName = true;
117116
File f = new File(myBaseDir);
@@ -126,7 +125,7 @@ public void insertString(int offs, String str, AttributeSet a) throws BadLocatio
126125
StringBuilder sb = null;
127126
for (int i = 0; i < str.length(); i++) {
128127
char c = str.charAt(i);
129-
boolean replace = c == '\\' || c == '/' || SystemInfo.isWindows && (c == '|' || c == ':');
128+
boolean replace = c == '\\' || c == '/' || Platform.current().os().isWindows() && (c == '|' || c == ':');
130129
if (replace) {
131130
if (sb == null) {
132131
sb = new StringBuilder(str.length());

python-impl/src/main/java/com/jetbrains/python/impl/sdk/PreferredSdkComparator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public class PreferredSdkComparator implements Comparator<Sdk> {
3030

3131
@Override
3232
public int compare(Sdk o1, Sdk o2) {
33-
final PythonSdkFlavor flavor1 = PythonSdkFlavor.getFlavor(o1);
34-
final PythonSdkFlavor flavor2 = PythonSdkFlavor.getFlavor(o2);
33+
PythonSdkFlavor flavor1 = PythonSdkFlavor.getFlavor(o1);
34+
PythonSdkFlavor flavor2 = PythonSdkFlavor.getFlavor(o2);
3535
int remote1Weight = PySdkUtil.isRemote(o1) ? 0 : 1;
3636
int remote2Weight = PySdkUtil.isRemote(o2) ? 0 : 1;
3737
if (remote1Weight != remote2Weight) {

python-impl/src/main/java/com/jetbrains/python/impl/sdk/PySdkListCellRenderer.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
package com.jetbrains.python.impl.sdk;
1717

1818
import com.jetbrains.python.impl.sdk.flavors.PythonSdkFlavor;
19-
import consulo.application.AllIcons;
2019
import consulo.application.util.UserHomeFileUtil;
2120
import consulo.content.bundle.Sdk;
2221
import consulo.content.bundle.SdkModificator;
2322
import consulo.content.bundle.SdkType;
23+
import consulo.platform.base.icon.PlatformIconGroup;
2424
import consulo.ui.ex.awt.ListCellRendererWrapper;
2525
import consulo.ui.ex.awtUnsafe.TargetAWT;
2626
import consulo.ui.image.Image;
@@ -41,7 +41,8 @@ public class PySdkListCellRenderer extends ListCellRendererWrapper<Object> {
4141
private final Map<Sdk, SdkModificator> mySdkModifiers;
4242
public static final String SEPARATOR = "separator";
4343

44-
final Pattern PYTHON_PATTERN = Pattern.compile("(\\d\\.?\\d\\.?\\d?)[ ]*\\(([^\\(\\)]*)\\)|(\\d\\.?\\d\\.?\\d?)[ ]*([^\\(\\)]*)");
44+
private static final Pattern PYTHON_PATTERN =
45+
Pattern.compile("(\\d\\.?\\d\\.?\\d?)[ ]*\\(([^\\(\\)]*)\\)|(\\d\\.?\\d\\.?\\d?)[ ]*([^\\(\\)]*)");
4546
private boolean isShortVersion;
4647

4748
public PySdkListCellRenderer(boolean shortVersion) {
@@ -57,10 +58,9 @@ public PySdkListCellRenderer(String nullText, @Nullable Map<Sdk, SdkModificator>
5758

5859
@Override
5960
public void customize(JList list, Object item, int index, boolean selected, boolean hasFocus) {
60-
if (item instanceof Sdk) {
61-
Sdk sdk = (Sdk)item;
62-
final PythonSdkFlavor flavor = PythonSdkFlavor.getPlatformIndependentFlavor(sdk.getHomePath());
63-
final Image baseIcon = flavor != null ? flavor.getIcon() : ((SdkType)sdk.getSdkType()).getIcon();
61+
if (item instanceof Sdk sdk) {
62+
PythonSdkFlavor flavor = PythonSdkFlavor.getPlatformIndependentFlavor(sdk.getHomePath());
63+
Image baseIcon = flavor != null ? flavor.getIcon() : ((SdkType)sdk.getSdkType()).getIcon();
6464

6565
String name;
6666
if (mySdkModifiers != null && mySdkModifiers.containsKey(sdk)) {
@@ -70,12 +70,12 @@ public void customize(JList list, Object item, int index, boolean selected, bool
7070
name = sdk.getName();
7171
}
7272
if (name.startsWith("Remote")) {
73-
final String trimmedRemote = StringUtil.trim(name.substring("Remote".length()));
73+
String trimmedRemote = StringUtil.trim(name.substring("Remote".length()));
7474
if (!trimmedRemote.isEmpty()) {
7575
name = trimmedRemote;
7676
}
7777
}
78-
final String flavorName = flavor == null ? "Python" : flavor.getName();
78+
String flavorName = flavor == null ? "Python" : flavor.getName();
7979
if (name.startsWith(flavorName)) {
8080
name = StringUtil.trim(name.substring(flavorName.length()));
8181
}
@@ -84,7 +84,7 @@ public void customize(JList list, Object item, int index, boolean selected, bool
8484
name = shortenName(name);
8585
}
8686

87-
Image icon = null;
87+
Image icon;
8888
if (PythonSdkType.isInvalid(sdk)) {
8989
setText("[invalid] " + name);
9090
icon = wrapIconWithWarningDecorator(baseIcon);
@@ -105,15 +105,15 @@ else if (item == null) {
105105
}
106106

107107
private String shortenName(@Nonnull String name) {
108-
final Matcher matcher = PYTHON_PATTERN.matcher(name);
108+
Matcher matcher = PYTHON_PATTERN.matcher(name);
109109
if (matcher.matches()) {
110110
String path = matcher.group(2);
111111
if (path != null) {
112112
name = matcher.group(1) + " at " + path;
113113
}
114114
else {
115115
path = matcher.group(4);
116-
final int index = path.lastIndexOf(File.separator);
116+
int index = path.lastIndexOf(File.separator);
117117
if (index > 0) {
118118
path = path.substring(index);
119119
}
@@ -127,6 +127,6 @@ else if (new File(name).exists()) {
127127
}
128128

129129
private static Image wrapIconWithWarningDecorator(Image icon) {
130-
return ImageEffects.layered(icon, AllIcons.Actions.Cancel);
130+
return ImageEffects.layered(icon, PlatformIconGroup.actionsCancel());
131131
}
132132
}

0 commit comments

Comments
 (0)