mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
[javafx] Use UI DSL for JavaFxSettingsConfigurable
#IDEA-358971 Fixed GitOrigin-RevId: 0856521e2c18391f37c691672aa29638da00b759
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5c06f74975
commit
7e0e2a8a37
@@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.jetbrains.plugins.javaFX.JavaFxSettingsConfigurable.JavaFxConfigurablePanel">
|
||||
<grid id="27dc6" binding="myWholePanel" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<xy x="20" y="389" width="500" height="36"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="81eb4" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<labelFor value="539ac"/>
|
||||
<text resource-bundle="messages/JavaFXBundle" key="javafx.settings.configurable.path.to.scenebuilder"/>
|
||||
</properties>
|
||||
</component>
|
||||
<vspacer id="439f6">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
<component id="539ac" class="com.intellij.openapi.ui.TextFieldWithBrowseButton" binding="myPathField">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="1.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user