mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
typescript: support blacklist for imports WEB-25902
This commit is contained in:
@@ -16,19 +16,30 @@
|
||||
package com.intellij.util.ui;
|
||||
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.AnActionButton;
|
||||
import com.intellij.ui.AnActionButtonRunnable;
|
||||
import com.intellij.ui.ToolbarDecorator;
|
||||
import com.intellij.ui.components.JBList;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import com.intellij.util.Producer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.ArrayList;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.List;
|
||||
|
||||
import static com.intellij.util.containers.ContainerUtil.emptyList;
|
||||
import static com.intellij.util.containers.ContainerUtil.newArrayList;
|
||||
|
||||
|
||||
public abstract class ListItemsDialogWrapper extends DialogWrapper {
|
||||
protected final JPanel myPanel;
|
||||
protected final JList myList = new JBList(new DefaultListModel());
|
||||
protected ArrayList<String> myData;
|
||||
protected final JList<String> myList = new JBList<>(new DefaultListModel());
|
||||
protected List<String> myData;
|
||||
|
||||
public ListItemsDialogWrapper(String title) {
|
||||
super(true);
|
||||
@@ -68,8 +79,8 @@ public abstract class ListItemsDialogWrapper extends DialogWrapper {
|
||||
|
||||
protected abstract String createAddItemDialog();
|
||||
|
||||
public void setData(ArrayList<String> data) {
|
||||
myData = data;
|
||||
public void setData(List<String> data) {
|
||||
myData = newArrayList(data);
|
||||
updateData();
|
||||
if (!myData.isEmpty()) {
|
||||
myList.setSelectedIndex(0);
|
||||
@@ -77,14 +88,15 @@ public abstract class ListItemsDialogWrapper extends DialogWrapper {
|
||||
}
|
||||
|
||||
protected void updateData() {
|
||||
final DefaultListModel model = ((DefaultListModel)myList.getModel());
|
||||
final DefaultListModel<String> model = ((DefaultListModel<String>)myList.getModel());
|
||||
model.clear();
|
||||
for (String data : myData) {
|
||||
model.addElement(data);
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<String> getData() {
|
||||
@Nullable
|
||||
public List<String> getData() {
|
||||
return myData;
|
||||
}
|
||||
|
||||
@@ -97,4 +109,33 @@ public abstract class ListItemsDialogWrapper extends DialogWrapper {
|
||||
public JComponent getPreferredFocusedComponent() {
|
||||
return myList;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String createStringPresentation(@Nullable List<String> data) {
|
||||
return data == null ? "" : StringUtil.join(data, ",");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<String> createListPresentation(@Nullable String data) {
|
||||
if (data == null || data.trim().isEmpty()) {
|
||||
return emptyList();
|
||||
}
|
||||
return newArrayList(data.split(","));
|
||||
}
|
||||
|
||||
public static void installListItemsDialogForTextField(@NotNull TextFieldWithBrowseButton uiField,
|
||||
@NotNull Producer<ListItemsDialogWrapper> createDialog) {
|
||||
uiField.getTextField().setEditable(false);
|
||||
uiField.setButtonIcon(PlatformIcons.OPEN_EDIT_DIALOG_ICON);
|
||||
uiField.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
final ListItemsDialogWrapper tagListDialog = createDialog.produce();
|
||||
tagListDialog.setData(createListPresentation(uiField.getText()));
|
||||
if (tagListDialog.showAndGet()) {
|
||||
uiField.setText(createStringPresentation(tagListDialog.getData()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -24,23 +24,19 @@ import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.intellij.ui.EnumComboBoxModel;
|
||||
import com.intellij.ui.components.JBCheckBox;
|
||||
import com.intellij.ui.components.JBScrollPane;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import com.intellij.util.ui.ListItemsDialogWrapper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class CodeStyleHtmlPanel extends CodeStyleAbstractPanel {
|
||||
|
||||
@@ -122,30 +118,7 @@ public class CodeStyleHtmlPanel extends CodeStyleAbstractPanel {
|
||||
}
|
||||
|
||||
private static void customizeField(final String title, final TextFieldWithBrowseButton uiField) {
|
||||
uiField.getTextField().setEditable(false);
|
||||
uiField.setButtonIcon(PlatformIcons.OPEN_EDIT_DIALOG_ICON);
|
||||
uiField.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
final TagListDialog tagListDialog = new TagListDialog(title);
|
||||
tagListDialog.setData(createCollectionOn(uiField.getText()));
|
||||
if (tagListDialog.showAndGet()) {
|
||||
uiField.setText(createStringOn(tagListDialog.getData()));
|
||||
}
|
||||
}
|
||||
|
||||
private String createStringOn(final ArrayList<String> data) {
|
||||
return StringUtil.join(ArrayUtil.toStringArray(data), ",");
|
||||
}
|
||||
|
||||
private ArrayList<String> createCollectionOn(final String data) {
|
||||
if (data == null || data.trim().isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return new ArrayList<>(Arrays.asList(data.split(",")));
|
||||
}
|
||||
|
||||
});
|
||||
ListItemsDialogWrapper.installListItemsDialogForTextField(uiField, () -> new TagListDialog(title));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -179,11 +152,6 @@ public class CodeStyleHtmlPanel extends CodeStyleAbstractPanel {
|
||||
myRightMarginForm.apply(settings);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected String getQuotes() {
|
||||
return ApplicationBundle.message("single.quotes").equals(myQuotesCombo.getSelectedItem()) ? "'" : "\"";
|
||||
}
|
||||
|
||||
private static int getIntValue(JTextField keepBlankLines) {
|
||||
try {
|
||||
return Integer.parseInt(keepBlankLines.getText());
|
||||
|
||||
Reference in New Issue
Block a user