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">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<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>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
@@ -49,7 +49,7 @@
|
||||
</grid>
|
||||
<component id="54c9d" class="javax.swing.JLabel">
|
||||
<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>
|
||||
<properties>
|
||||
<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.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.idea.KotlinBundle;
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -42,13 +42,15 @@ public class KotlinScriptingSettingsConfigurable implements SearchableConfigurab
|
||||
model = KotlinScriptDefinitionsModel.Companion.createModel(manager.getAllDefinitions(), settings);
|
||||
|
||||
panelScriptDefinitionsChooser.setLayout(new BorderLayout());
|
||||
TableView<ModelDescriptor> table = new TableView<>(model);
|
||||
panelScriptDefinitionsChooser.add(
|
||||
ToolbarDecorator.createDecorator(new TableView<>(model))
|
||||
ToolbarDecorator.createDecorator(table)
|
||||
.disableAddAction()
|
||||
.disableRemoveAction()
|
||||
.createPanel()
|
||||
);
|
||||
|
||||
table.setVisibleRowCount(15);
|
||||
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