4.9 KiB

Built-In Button

UI guidelines on using built-in buttons.

A built-in button is an icon placed inside an input control.

Built-in-button{width=706}

To place a button inside a text field, use ExtendableTextField and its addExtension() method.

When to use

Use a built-in button instead of adding a separate button on the right where possible to save space and declutter the interface:

Correct Browse button Incorrect Incorrect browse button

Browse

Use the Browse icon to select a single file or a folder from the disc.

Browse

A combo box with the Browse button:

val browseExtension = ExtendableTextComponent.Extension.create(
    AllIcons.General.OpenDisk,
    AllIcons.General.OpenDiskHover,
    "Open file",
    { System.out.println("Browse file clicked") }
)
val extComboBox = ComboBox<String>(STRING_VALUES)
extComboBox.setEditable(true)
extComboBox.setEditor(object : BasicComboBoxEditor() {
  override fun createEditorComponent(): JTextField {
    val ecbEditor = ExtendableTextField()
    ecbEditor.addExtension(browseExtension)
    ecbEditor.setBorder(null)
    return ecbEditor
  }
})
ExtendableTextComponent.Extension browseExtension =
  ExtendableTextComponent.Extension.create(
    AllIcons.General.OpenDisk,
    AllIcons.General.OpenDiskHover,
    "Open file",
    () -> System.out.println("Browse file clicked")
  );
ComboBox<String> extComboBox = new ComboBox<>(STRING_VALUES);
extComboBox.setEditable(true);
extComboBox.setEditor(new BasicComboBoxEditor() {
  @Override
  protected JTextField createEditorComponent() {
    ExtendableTextField ecbEditor = new ExtendableTextField();
    ecbEditor.addExtension(browseExtension);
    ecbEditor.setBorder(null);
    return ecbEditor;
  }
});

Expand a field

If the input text can be long and the place is constrained, use an input field with the Expand button:

Collapsed built-in button{width=706}

Expanded field:

Expanded built-in button{width=706}

List values

Use the List icon to select a value from the list of objects such as classes, methods, or environment variables:

List of values{width=706}

Add value

Use the Add button to select multiple values, such as files, variables, folder paths. The selected values will be added to the existing list.

Add a value to the field{width=706}

When not to use

Cut, Copy, Paste

Do not use the Copy, Paste or Cut button. Instead, make sure these actions are available on pressing Cmd/Ctrl+X, Cmd/Ctrl+C, and Cmd/Ctrl+V shortcuts or from the context menu.

Correct Browse button Incorrect Incorrect browse button

Help, Info

Do not use the Help or Info buttons to open an external link or a hint. Use the context help instead.

Correct Context help Incorrect Incorrect browse button

Shortcut

The shortcut for a built-in button is Shift+Enter. The shortcut activates only when the input field with the button is focused.