mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Prettify postfix template editors
- minimal size for applicable contexts list - resizable textarea and applicable contexts list - fill entire dialog - proper comment label
This commit is contained in:
+2
-1
@@ -23,6 +23,7 @@ import com.intellij.ui.ColoredListCellRenderer;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.FormBuilder;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -46,7 +47,7 @@ public class JavaPostfixTemplateEditor extends PostfixTemplateEditorBase<JavaPos
|
||||
|
||||
myPanel = FormBuilder.createFormBuilder()
|
||||
.addLabeledComponent("Minimum language level:", myLanguageLevelCombo)
|
||||
.addComponent(myEditTemplateAndConditionsPanel)
|
||||
.addComponentFillVertically(myEditTemplateAndConditionsPanel, UIUtil.DEFAULT_VGAP)
|
||||
.getPanel();
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -8,8 +8,8 @@ import com.intellij.openapi.ui.ValidationInfo;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.components.JBTextField;
|
||||
import com.intellij.uiDesigner.core.Spacer;
|
||||
import com.intellij.util.ui.FormBuilder;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -59,10 +59,9 @@ public class PostfixEditTemplateDialog extends DialogWrapper {
|
||||
@Override
|
||||
protected JComponent createCenterPanel() {
|
||||
return FormBuilder.createFormBuilder()
|
||||
.addLabeledComponent("Key:", myTemplateNameTextField)
|
||||
.addComponent(myEditor.getComponent())
|
||||
.addComponentFillVertically(new Spacer(), 0)
|
||||
.getPanel();
|
||||
.addLabeledComponent("Key:", myTemplateNameTextField)
|
||||
.addComponentFillVertically(myEditor.getComponent(), UIUtil.DEFAULT_VGAP)
|
||||
.getPanel();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+21
-28
@@ -17,6 +17,7 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
import com.intellij.openapi.project.DumbAwareAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.panel.PanelGridBuilder;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.ui.popup.ListPopup;
|
||||
import com.intellij.ui.AnActionButton;
|
||||
@@ -24,17 +25,16 @@ import com.intellij.ui.ColoredListCellRenderer;
|
||||
import com.intellij.ui.ListUtil;
|
||||
import com.intellij.ui.ToolbarDecorator;
|
||||
import com.intellij.ui.components.JBCheckBox;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import com.intellij.ui.components.JBList;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.ui.DialogUtil;
|
||||
import com.intellij.util.ui.FormBuilder;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
import com.intellij.util.ui.UI;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public abstract class PostfixTemplateEditorBase<Condition extends PostfixTemplateExpressionCondition> implements PostfixTemplateEditor {
|
||||
|
||||
@@ -43,11 +43,8 @@ public abstract class PostfixTemplateEditorBase<Condition extends PostfixTemplat
|
||||
@NotNull protected final JBList<Condition> myExpressionTypesList;
|
||||
@NotNull protected final DefaultListModel<Condition> myExpressionTypesListModel;
|
||||
|
||||
@NotNull protected final JPanel myTemplateEditorPanel;
|
||||
@NotNull protected final JPanel myExpressionTypesPanel;
|
||||
@NotNull protected final JBCheckBox myApplyToTheTopmostJBCheckBox;
|
||||
@NotNull protected final JPanel myEditTemplateAndConditionsPanel;
|
||||
@NotNull protected final JBLabel myExpressionVariableHint;
|
||||
|
||||
protected class AddConditionAction extends DumbAwareAction {
|
||||
@NotNull
|
||||
@@ -77,12 +74,7 @@ public abstract class PostfixTemplateEditorBase<Condition extends PostfixTemplat
|
||||
|
||||
myApplyToTheTopmostJBCheckBox = new JBCheckBox("Apply to the &topmost expression");
|
||||
DialogUtil.registerMnemonic(myApplyToTheTopmostJBCheckBox, '&');
|
||||
myTemplateEditorPanel = new JPanel(new BorderLayout());
|
||||
myTemplateEditorPanel.add(myTemplateEditor.getComponent());
|
||||
|
||||
myExpressionVariableHint = new JBLabel("Use $EXPR$ variable to refer target expression");
|
||||
UIUtil.applyStyle(UIUtil.ComponentStyle.SMALL, myExpressionVariableHint);
|
||||
myExpressionVariableHint.setFontColor(UIUtil.FontColor.BRIGHTER);
|
||||
myApplyToTheTopmostJBCheckBox.setBorder(JBUI.Borders.emptyBottom(UIUtil.DEFAULT_VGAP));
|
||||
|
||||
myExpressionTypesListModel = JBList.createDefaultListModel();
|
||||
myExpressionTypesList = new JBList<>(myExpressionTypesListModel);
|
||||
@@ -98,24 +90,25 @@ public abstract class PostfixTemplateEditorBase<Condition extends PostfixTemplat
|
||||
}
|
||||
});
|
||||
|
||||
myExpressionTypesPanel = new JPanel(new BorderLayout());
|
||||
FormBuilder builder = FormBuilder.createFormBuilder();
|
||||
PanelGridBuilder grid = UI.PanelFactory.grid().resize();
|
||||
if (showExpressionTypes) {
|
||||
myExpressionTypesPanel.add(ToolbarDecorator.createDecorator(myExpressionTypesList)
|
||||
.setAddAction(button -> showAddExpressionTypePopup(button))
|
||||
.setRemoveAction(button -> ListUtil.removeSelectedItems(myExpressionTypesList))
|
||||
.disableUpDownActions()
|
||||
.createPanel());
|
||||
myExpressionTypesPanel.setMinimumSize(new Dimension(-1, 100));
|
||||
builder.addLabeledComponent("Applicable expression types:", myExpressionTypesPanel, true);
|
||||
JPanel expressionTypesPanel = ToolbarDecorator.createDecorator(myExpressionTypesList)
|
||||
.setAddAction(button -> showAddExpressionTypePopup(button))
|
||||
.setRemoveAction(button -> ListUtil.removeSelectedItems(myExpressionTypesList))
|
||||
.disableUpDownActions()
|
||||
.setMinimumSize(JBUI.size(-1, 300))
|
||||
.createPanel();
|
||||
grid.add(UI.PanelFactory.panel(expressionTypesPanel)
|
||||
.withLabel("Applicable expression types:")
|
||||
.resizeY(true)
|
||||
.moveLabelOnTop());
|
||||
}
|
||||
|
||||
|
||||
builder.addComponent(myApplyToTheTopmostJBCheckBox);
|
||||
builder.addComponent(myTemplateEditorPanel);
|
||||
builder.addComponent(myExpressionVariableHint);
|
||||
|
||||
myEditTemplateAndConditionsPanel = builder.getPanel();
|
||||
grid.add(UI.PanelFactory.panel(myApplyToTheTopmostJBCheckBox));
|
||||
grid.add(UI.PanelFactory.panel(myTemplateEditor.getComponent())
|
||||
.anchorLabelOn(UI.Anchor.Top)
|
||||
.withComment("Use $EXPR$ variable to refer target expression")
|
||||
.resizeY(true));
|
||||
myEditTemplateAndConditionsPanel = grid.createPanel();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user