Fix UI for Kotlin Scripting page
Show 15 items in the list by default Show hint at the top Fixed for 201+ ^KT-40097 Fixed
This commit is contained in:
+2
-2
@@ -35,7 +35,7 @@
|
|||||||
<grid id="5ec35" binding="panelScriptDefinitionsChooser" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
<grid id="5ec35" binding="panelScriptDefinitionsChooser" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
<margin top="0" left="0" bottom="0" right="0"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties/>
|
<properties/>
|
||||||
<border type="none"/>
|
<border type="none"/>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
</grid>
|
</grid>
|
||||||
<component id="54c9d" class="javax.swing.JLabel">
|
<component id="54c9d" class="javax.swing.JLabel">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
<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"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text resource-bundle="messages/KotlinBundle" key="kotlin.script.definitions.model.name.autoReloadScriptDependencies.description"/>
|
<text resource-bundle="messages/KotlinBundle" key="kotlin.script.definitions.model.name.autoReloadScriptDependencies.description"/>
|
||||||
|
|||||||
+4
-2
@@ -12,9 +12,9 @@ import com.intellij.ui.table.TableView;
|
|||||||
import org.jetbrains.annotations.Nls;
|
import org.jetbrains.annotations.Nls;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.kotlin.idea.KotlinBundle;
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager;
|
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager;
|
||||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings;
|
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings;
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle;
|
|
||||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition;
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -42,13 +42,15 @@ public class KotlinScriptingSettingsConfigurable implements SearchableConfigurab
|
|||||||
model = KotlinScriptDefinitionsModel.Companion.createModel(manager.getAllDefinitions(), settings);
|
model = KotlinScriptDefinitionsModel.Companion.createModel(manager.getAllDefinitions(), settings);
|
||||||
|
|
||||||
panelScriptDefinitionsChooser.setLayout(new BorderLayout());
|
panelScriptDefinitionsChooser.setLayout(new BorderLayout());
|
||||||
|
TableView<ModelDescriptor> table = new TableView<>(model);
|
||||||
panelScriptDefinitionsChooser.add(
|
panelScriptDefinitionsChooser.add(
|
||||||
ToolbarDecorator.createDecorator(new TableView<>(model))
|
ToolbarDecorator.createDecorator(table)
|
||||||
.disableAddAction()
|
.disableAddAction()
|
||||||
.disableRemoveAction()
|
.disableRemoveAction()
|
||||||
.createPanel()
|
.createPanel()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
table.setVisibleRowCount(15);
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+105
@@ -0,0 +1,105 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
package org.jetbrains.kotlin.idea.script.configuration;
|
||||||
|
|
||||||
|
import com.intellij.openapi.options.Configurable;
|
||||||
|
import com.intellij.openapi.options.SearchableConfigurable;
|
||||||
|
import com.intellij.openapi.project.Project;
|
||||||
|
import com.intellij.ui.ToolbarDecorator;
|
||||||
|
import com.intellij.ui.table.TableView;
|
||||||
|
import org.jetbrains.annotations.Nls;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.kotlin.idea.KotlinBundle;
|
||||||
|
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager;
|
||||||
|
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings;
|
||||||
|
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class KotlinScriptingSettingsConfigurable implements SearchableConfigurable, Configurable.NoScroll {
|
||||||
|
public static final String ID = "preferences.language.Kotlin.scripting";
|
||||||
|
|
||||||
|
private JPanel root;
|
||||||
|
private JPanel panelScriptDefinitionsChooser;
|
||||||
|
|
||||||
|
private KotlinScriptDefinitionsModel model;
|
||||||
|
|
||||||
|
private final ScriptDefinitionsManager manager;
|
||||||
|
private final KotlinScriptingSettings settings;
|
||||||
|
|
||||||
|
public KotlinScriptingSettingsConfigurable(Project project) {
|
||||||
|
manager = ScriptDefinitionsManager.Companion.getInstance(project);
|
||||||
|
settings = KotlinScriptingSettings.Companion.getInstance(project);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public JComponent createComponent() {
|
||||||
|
model = KotlinScriptDefinitionsModel.Companion.createModel(manager.getAllDefinitions(), settings);
|
||||||
|
|
||||||
|
panelScriptDefinitionsChooser.setLayout(new BorderLayout());
|
||||||
|
TableView<ModelDescriptor> table = new TableView<>(model);
|
||||||
|
panelScriptDefinitionsChooser.add(
|
||||||
|
ToolbarDecorator.createDecorator(table)
|
||||||
|
.disableAddAction()
|
||||||
|
.disableRemoveAction()
|
||||||
|
.createPanel()
|
||||||
|
);
|
||||||
|
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isModified() {
|
||||||
|
return isScriptDefinitionsChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply() {
|
||||||
|
if (isScriptDefinitionsChanged()) {
|
||||||
|
for (ModelDescriptor item : model.getItems()) {
|
||||||
|
ScriptDefinition definition = item.getDefinition();
|
||||||
|
int order = model.getItems().indexOf(item);
|
||||||
|
settings.setOrder(definition, order);
|
||||||
|
settings.setEnabled(definition, item.isEnabled());
|
||||||
|
settings.setAutoReloadConfigurations(definition, item.getAutoReloadConfigurations());
|
||||||
|
}
|
||||||
|
|
||||||
|
manager.reorderScriptDefinitions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reset() {
|
||||||
|
model.setDefinitions(manager.getAllDefinitions(), settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isScriptDefinitionsChanged() {
|
||||||
|
for (ModelDescriptor item : model.getItems()) {
|
||||||
|
if (settings.isScriptDefinitionEnabled(item.getDefinition()) != item.isEnabled()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (settings.autoReloadConfigurations(item.getDefinition()) != item.getAutoReloadConfigurations()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return !model.getDefinitions().equals(manager.getAllDefinitions());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nls
|
||||||
|
public String getDisplayName() {
|
||||||
|
return KotlinBundle.message("script.name.kotlin.scripting");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user