com.jgoodies.common.swing

## Class MnemonicUtils

- java.lang.Object
- - com.jgoodies.common.swing.MnemonicUtils

-     public final class MnemonicUtils
      extends Object

  Configures the text, mnemonic and mnemonic index in Actions, JLabels, and AbstractButtons. The term marked text is used for Strings that contain a marker character that marks both the mnemonic and its index in the resulting plain text.

  To set a mnemonic, add an ampersand ('&') before the character that should be the mnemonic, for example "&Save". If your text has multiple ampersands, only the first one is used to mark the mnemonic; the other ampersands appear as normal text. For example "&Look&Feel" has the first 'L' has mnemonic. If you want to use the ampersand itself in the text, use two consecutive ampersands for any ampersand that precede the one that is used to mark the mnemonic. For example the marked text "R&&D D&epartment" has "R&D Department" as text and the mnemonic is 'E'.

  Examples:

  Marked Text | Plain Text | Mnemonic | Mnemonic Index | Comment
  Save | Save | 0 | -1 | No mnemonic
  &Save | Save | 'S' | 0 |
  Save &as | Save as | 'A' | 5 | Second 'a' marked
  Look&Feel | LookFeel | 'F' | 4 | & should be quoted
  Look&&Feel | Look&Feel | 0 | -1 | & is quoted
  &Look&Feel | Look&Feel | L | 0 | Second & needs no quote
  Look & Feel | Look & Feel | 0 | -1 | Whitespace cannot be marked
  R&&D D&epartment | R&D Department | 'E' | 5 | First & is quoted
  <html>a&b</html> | <html>a<u>b</u></html> | 'B' | -1 | 'b' is underlined
  <html>R&amp;D D&ep.</html> | <html>R&amp;D D<u>e</u>p.</html> | 'B' | -1 | HTML &amp; doesn't mark

  Author:
    Karsten Lentzsch

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `configure(AbstractButton target, String markedText)` Configures the text, mnemonic and mnemonic index for `target` using the given text that can be marked with the mnemonic marker '&'.
    `static void` | `configure(Action target, String markedText)` Configures the text, mnemonic and mnemonic index for `target` using the given text that can be marked with the mnemonic marker '&'.
    `static void` | `configure(JLabel target, String markedText)` Configures the text, mnemonic and mnemonic index for `target` using the given text that can be marked with the mnemonic marker '&'.
    `static String` | `plainText(String markedText)` Returns the plain text for the given marked text by removing the mnemonic marker and marker quotes - if any.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### configure

          public static void configure(AbstractButton target,
                       String markedText)

      Configures the text, mnemonic and mnemonic index for `target` using the given text that can be marked with the mnemonic marker '&'. For example if `markedText` is "Save &as", the text will be set to "Save as", the mnemonic is 'a', and the mnemonic index is 5.
      Parameters:
        `target` - the button to be configured
        `markedText` - the text with optional mnemonic marker
      Throws:
        `NullPointerException` - if `target` is `null`

    - #### configure

          public static void configure(Action target,
                       String markedText)

      Configures the text, mnemonic and mnemonic index for `target` using the given text that can be marked with the mnemonic marker '&'. For example if `markedText` is "Save &as", the text will be set to "Save as", the mnemonic is 'a', and the mnemonic index is 5.
      Parameters:
        `target` - the Action to be configured
        `markedText` - the text with optional mnemonic marker
      Throws:
        `NullPointerException` - if `target` is `null`

    - #### configure

          public static void configure(JLabel target,
                       String markedText)

      Configures the text, mnemonic and mnemonic index for `target` using the given text that can be marked with the mnemonic marker '&'. For example if `markedText` is "Save &as", the text will be set to "Save as", the mnemonic is 'a', and the mnemonic index is 5.
      Parameters:
        `target` - the label to be configured
        `markedText` - the text with optional mnemonic marker
      Throws:
        `NullPointerException` - if `target` is `null`

    - #### plainText

          public static String plainText(String markedText)

      Returns the plain text for the given marked text by removing the mnemonic marker and marker quotes - if any. If the marked text is HTML, the plain text has the mnemonic character underlined. See the `MnemonicUtils` class comment for information about how to mark a mnemonic and how to quote a marker.

           MnemonicUtils.plainText("Save")             == "Save"
           MnemonicUtils.plainText("&Save")            == "Save"
           MnemonicUtils.plainText("&Look&Feel")       == "Look&Feel"
           MnemonicUtils.plainText("Look & Feel")      == "Look & Feel"
           MnemonicUtils.plainText("R&&D D&epartment") == "R&D Department"
           MnemonicUtils.plainText("<html>a&b</html>") == "<html>a<u>b</u></html>"

      Parameters:
        `markedText` - the text that may contain a mnemonic marker
      Returns:
        the text without mnemonic marker and marker quotes

Copyright © 2009-2013 JGoodies Software GmbH. All Rights Reserved.