Common settings UI

This commit is contained in:
林万程
2023-11-16 22:50:07 +08:00
parent d5813e57a7
commit 1d77389b74
5 changed files with 25 additions and 26 deletions

View File

@@ -25,8 +25,16 @@ public abstract class AbstractSettingsComponent {
private final JBTextArea projectDoc = new JBTextArea(); private final JBTextArea projectDoc = new JBTextArea();
@NotNull @NotNull
protected JPanel commonLineEndFilter(FormBuilder formBuilder) { protected JPanel commonPanel() {
formBuilder = formBuilder return FormBuilder.createFormBuilder()
.addComponent(lineEndPanel(), 1)
.addComponent(treePanel(), 1)
.getPanel();
}
@NotNull
protected JPanel lineEndPanel() {
FormBuilder builder = FormBuilder.createFormBuilder()
.addComponent(new JBLabel(ShowBundle.message("regexp.tip"))) .addComponent(new JBLabel(ShowBundle.message("regexp.tip")))
.addSeparator() .addSeparator()
.addLabeledComponent(new JBLabel(ShowBundle.message("sign.include.regexp")), lineInclude, 1, true) .addLabeledComponent(new JBLabel(ShowBundle.message("sign.include.regexp")), lineInclude, 1, true)
@@ -35,16 +43,19 @@ public abstract class AbstractSettingsComponent {
.addLabeledComponent(new JBLabel(ShowBundle.message("comment.include.regexp")), docInclude, 1, true) .addLabeledComponent(new JBLabel(ShowBundle.message("comment.include.regexp")), docInclude, 1, true)
.addLabeledComponent(new JBLabel(ShowBundle.message("comment.exclude.regexp")), docExclude, 1, true) .addLabeledComponent(new JBLabel(ShowBundle.message("comment.exclude.regexp")), docExclude, 1, true)
.addSeparator(); .addSeparator();
formBuilder = add(formBuilder, docGetEffect, docGet, ShowBundle.message("get.doc.regexp")); JPanel label = JPanelFactory.of(docGetEffect, new JBLabel(ShowBundle.message("get.doc.regexp")));
formBuilder = add(formBuilder, projectDocEffect, projectDoc, ShowBundle.message("project.doc.regexp")); JPanel panel = builder
JPanel lineEndFilter = formBuilder.getPanel(); .addLabeledComponent(label, docGet, 1, true).getPanel();
lineEndFilter.setBorder(IdeBorderFactory.createTitledBorder(ShowBundle.message("line.end.comment"))); panel.setBorder(IdeBorderFactory.createTitledBorder(ShowBundle.message("line.end.comment")));
return lineEndFilter; return panel;
} }
protected FormBuilder add(@NotNull FormBuilder formBuilder, JBCheckBox jbCheckBox, private JPanel treePanel() {
@NotNull JTextComponent jTextComponent, @NotNull String tip) { JPanel label = JPanelFactory.of(projectDocEffect, new JBLabel(ShowBundle.message("project.doc.regexp")));
return formBuilder.addLabeledComponent(JPanelFactory.of(jbCheckBox, new JBLabel(tip)), jTextComponent, 1, true); JPanel panel = FormBuilder.createFormBuilder()
.addLabeledComponent(label, projectDoc, 1, true).getPanel();
panel.setBorder(IdeBorderFactory.createTitledBorder(ShowBundle.message("tree.comment")));
return panel;
} }
@NotNull @NotNull

View File

@@ -13,18 +13,11 @@ public class GlobalSettingsComponent extends AbstractSettingsComponent {
resetDefault.addActionListener(e -> GlobalSettingsConfigurable.reset(GlobalSettingsState.DEFAULT_SETTING, this)); resetDefault.addActionListener(e -> GlobalSettingsConfigurable.reset(GlobalSettingsState.DEFAULT_SETTING, this));
myMainPanel = FormBuilder.createFormBuilder() myMainPanel = FormBuilder.createFormBuilder()
.addComponent(JPanelFactory.of(resetDefault), 1) .addComponent(JPanelFactory.of(resetDefault), 1)
.addComponent(lineEndFilterPanel(), 1) .addComponent(commonPanel(), 1)
.addComponentFillVertically(new JPanel(), 0) .addComponentFillVertically(new JPanel(), 0)
.getPanel(); .getPanel();
} }
@NotNull
protected JPanel lineEndFilterPanel() {
FormBuilder formBuilder = FormBuilder.createFormBuilder()
.addSeparator();
return commonLineEndFilter(formBuilder);
}
public JPanel getPanel() { public JPanel getPanel() {
return myMainPanel; return myMainPanel;
} }

View File

@@ -17,18 +17,11 @@ public class ProjectSettingsComponent extends AbstractSettingsComponent {
resetDefault.addActionListener(e -> ProjectSettingsConfigurable.reset(ProjectSettingsState.DEFAULT_SETTING, this)); resetDefault.addActionListener(e -> ProjectSettingsConfigurable.reset(ProjectSettingsState.DEFAULT_SETTING, this));
myMainPanel = FormBuilder.createFormBuilder() myMainPanel = FormBuilder.createFormBuilder()
.addComponent(JPanelFactory.of(resetDefault, globalFilterEffective, projectFilterEffective), 1) .addComponent(JPanelFactory.of(resetDefault, globalFilterEffective, projectFilterEffective), 1)
.addComponent(lineEndFilterPanel(), 1) .addComponent(commonPanel(), 1)
.addComponentFillVertically(new JPanel(), 0) .addComponentFillVertically(new JPanel(), 0)
.getPanel(); .getPanel();
} }
@NotNull
protected JPanel lineEndFilterPanel() {
FormBuilder formBuilder = FormBuilder.createFormBuilder()
.addSeparator();
return commonLineEndFilter(formBuilder);
}
public JPanel getPanel() { public JPanel getPanel() {
return myMainPanel; return myMainPanel;
} }

View File

@@ -20,6 +20,7 @@ text.color.json=json text color:
prefix=prefix: prefix=prefix:
line.end.comment=Line End Comment line.end.comment=Line End Comment
tree.comment=Tree Comment
regexp.tip=Separated by '|' (Regexp), use '' to include all or exclude none. regexp.tip=Separated by '|' (Regexp), use '' to include all or exclude none.
sign.include.regexp=className#memberName include Regexp: sign.include.regexp=className#memberName include Regexp:
sign.exclude.regexp=className#memberName exclude Regexp: sign.exclude.regexp=className#memberName exclude Regexp:

View File

@@ -20,6 +20,7 @@ text.color.json=json \u6587\u672C\u989C\u8272\uFF1A
prefix=\u524D\u7F00\uFF1A prefix=\u524D\u7F00\uFF1A
line.end.comment=\u884C\u672B\u6CE8\u91CA line.end.comment=\u884C\u672B\u6CE8\u91CA
tree.comment=\u6811\u6CE8\u91CA
regexp.tip=| \u5206\u9694 (\u6B63\u5219), \u7A7A\u5B57\u7B26\u4E32\u4EE3\u8868\u5305\u62EC\u6240\u6709\u6216\u4E0D\u6392\u9664 regexp.tip=| \u5206\u9694 (\u6B63\u5219), \u7A7A\u5B57\u7B26\u4E32\u4EE3\u8868\u5305\u62EC\u6240\u6709\u6216\u4E0D\u6392\u9664
sign.include.regexp=\u7C7B#\u65B9\u6CD5 \u5305\u542B \u6B63\u5219\uFF1A sign.include.regexp=\u7C7B#\u65B9\u6CD5 \u5305\u542B \u6B63\u5219\uFF1A
sign.exclude.regexp=\u7C7B#\u65B9\u6CD5 \u6392\u9664 \u6B63\u5219\uFF1A sign.exclude.regexp=\u7C7B#\u65B9\u6CD5 \u6392\u9664 \u6B63\u5219\uFF1A