diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.form b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.form deleted file mode 100644 index 47e31022ee09..000000000000 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.form +++ /dev/null @@ -1,35 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.java index 8a3c8aca641b..16a97c78dcaf 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurable.java @@ -7,18 +7,14 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; -import com.intellij.openapi.ui.TextFieldWithBrowseButton; -import com.intellij.openapi.util.Comparing; -import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import javax.swing.*; public final class JavaFxSettingsConfigurable implements SearchableConfigurable, Configurable.NoScroll { private final JavaFxSettings mySettings; - private JavaFxConfigurablePanel myPanel; + private JavaFxSettingsConfigurableUi myPanel; public JavaFxSettingsConfigurable() { mySettings = JavaFxSettings.getInstance(); @@ -35,9 +31,9 @@ public final class JavaFxSettingsConfigurable implements SearchableConfigurable, } @Override - public @Nullable JComponent createComponent() { - myPanel = new JavaFxConfigurablePanel(); - return myPanel.myWholePanel; + public JComponent createComponent() { + myPanel = new JavaFxSettingsConfigurableUi(); + return myPanel.getPanel(); } @Override @@ -71,30 +67,4 @@ public final class JavaFxSettingsConfigurable implements SearchableConfigurable, descriptor.setDescription(JavaFXBundle.message("javafx.settings.configurable.scene.builder.configuration.description")); return descriptor; } - - public static final class JavaFxConfigurablePanel { - private TextFieldWithBrowseButton myPathField; - private JPanel myWholePanel; - - public JavaFxConfigurablePanel() { - myPathField.addBrowseFolderListener(null, createSceneBuilderDescriptor()); - } - - private void reset(JavaFxSettings settings) { - final String pathToSceneBuilder = settings.getPathToSceneBuilder(); - if (pathToSceneBuilder != null) { - myPathField.setText(FileUtil.toSystemDependentName(pathToSceneBuilder)); - } - } - - private void apply(JavaFxSettings settings) { - settings.setPathToSceneBuilder(FileUtil.toSystemIndependentName(myPathField.getText().trim())); - } - - private boolean isModified(JavaFxSettings settings) { - final String pathToSceneBuilder = settings.getPathToSceneBuilder(); - return !Comparing.strEqual(FileUtil.toSystemIndependentName(myPathField.getText().trim()), - pathToSceneBuilder != null ? pathToSceneBuilder.trim() : null); - } - } } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurableUi.kt b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurableUi.kt new file mode 100644 index 000000000000..db79fb9f057f --- /dev/null +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxSettingsConfigurableUi.kt @@ -0,0 +1,38 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.plugins.javaFX + +import com.intellij.openapi.ui.TextFieldWithBrowseButton +import com.intellij.openapi.util.Comparing +import com.intellij.openapi.util.io.FileUtil +import com.intellij.ui.dsl.builder.COLUMNS_LARGE +import com.intellij.ui.dsl.builder.columns +import com.intellij.ui.dsl.builder.panel + +class JavaFxSettingsConfigurableUi { + lateinit var pathField: TextFieldWithBrowseButton + var panel = panel { + row(JavaFXBundle.message("javafx.settings.configurable.path.to.scenebuilder")) { + pathField = textFieldWithBrowseButton( + JavaFxSettingsConfigurable.createSceneBuilderDescriptor() + ) + .columns(COLUMNS_LARGE) + .component + } + } + + fun reset(settings: JavaFxSettings) { + val pathToSceneBuilder = settings.pathToSceneBuilder + if (pathToSceneBuilder != null) { + pathField.setText(FileUtil.toSystemDependentName(pathToSceneBuilder)) + } + } + + fun apply(settings: JavaFxSettings) { + settings.pathToSceneBuilder = FileUtil.toSystemIndependentName(pathField.getText().trim()) + } + + fun isModified(settings: JavaFxSettings): Boolean { + val pathToSceneBuilder = settings.pathToSceneBuilder + return !Comparing.strEqual(pathToSceneBuilder?.trim(), FileUtil.toSystemIndependentName(pathField.getText().trim())) + } +} \ No newline at end of file