Macro
Date: 2017-02-11

org.fife.ui.rtextarea

## Class Macro

- java.lang.Object
- - org.fife.ui.rtextarea.Macro

-     public class Macro
      extends java.lang.Object

  A macro as recorded/played back by an `RTextArea`.

  `Macro`s are static; when a Macro is loaded, it can be run by any instance of `RTextArea` in the application. To activate and play back a macro, use the following methods:

  - `RTextArea.loadMacro(Macro)`
  - `RTextArea.playbackLastMacro()`
  To record and save a new macro, you'd use the following methods:
  - `RTextArea.beginRecordingMacro()` (this discards the previous "current" macro, if any)
  - `RTextArea.endRecordingMacro()` (at this point, you could call `playbackLastMacro()` to play this macro immediately if desired)
  - `RTextArea.getCurrentMacro()`.`saveToFile(File)`
  As `Macro`s save themselves as XML files, a common technique is to save all macros in files named "``getName()`.xml`", and place them all in a common directory.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Macro()` Constructor.
    `Macro(java.io.File file)` Loads a macro from a file on disk.
    `Macro(java.lang.String name)` Constructor.
    `Macro(java.lang.String name, java.util.List<org.fife.ui.rtextarea.Macro.MacroRecord> records)` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addMacroRecord(org.fife.ui.rtextarea.Macro.MacroRecord record)` Adds a macro record to this macro.
    `java.util.List<org.fife.ui.rtextarea.Macro.MacroRecord>` | `getMacroRecords()` Returns the macro records that make up this macro.
    `java.lang.String` | `getName()` Returns the name of this macro.
    `void` | `saveToFile(java.io.File file)` Saves this macro to an XML file.
    `void` | `saveToFile(java.lang.String fileName)` Saves this macro to a file.
    `void` | `setName(java.lang.String name)` Sets the name of this macro.

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

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

- - ### Constructor Detail

    - #### Macro

          public Macro()

      Constructor.

    - #### Macro

          public Macro(java.io.File file)
                throws java.io.FileNotFoundException,
                       java.io.IOException

      Loads a macro from a file on disk.
      Parameters:
        `file` - The file from which to load the macro.
      Throws:
        `java.io.FileNotFoundException` - If the specified file does not exist, is a directory instead of a regular file, or otherwise cannot be opened.
        `java.io.IOException` - If an I/O exception occurs while reading the file.
      See Also:
        `saveToFile(String)`, `saveToFile(File)`

    - #### Macro

          public Macro(java.lang.String name)

      Constructor.
      Parameters:
        `name` - The name of the macro.

    - #### Macro

          public Macro(java.lang.String name,
               java.util.List<org.fife.ui.rtextarea.Macro.MacroRecord> records)

      Constructor.
      Parameters:
        `name` - The name of the macro.
        `records` - The initial records of the macro.

  - ### Method Detail

    - #### addMacroRecord

          public void addMacroRecord(org.fife.ui.rtextarea.Macro.MacroRecord record)

      Adds a macro record to this macro.
      Parameters:
        `record` - The record to add. If `null`, nothing happens.
      See Also:
        `getMacroRecords()`

    - #### getMacroRecords

          public java.util.List<org.fife.ui.rtextarea.Macro.MacroRecord> getMacroRecords()

      Returns the macro records that make up this macro.
      Returns:
        The macro records.
      See Also:
        `addMacroRecord(org.fife.ui.rtextarea.Macro.MacroRecord)`

    - #### getName

          public java.lang.String getName()

      Returns the name of this macro. A macro's name is simply something to identify it with in a UI; it has nothing to do with the name of the file to save the macro to.
      Returns:
        The macro's name.
      See Also:
        `setName(String)`

    - #### saveToFile

          public void saveToFile(java.io.File file)
                          throws java.io.IOException

      Saves this macro to an XML file. This file can later be read in by the constructor taking a `File` parameter; this is the mechanism for saving macros.
      Parameters:
        `file` - The file in which to save the macro.
      Throws:
        `java.io.IOException` - If an error occurs while generating the XML for the output file.
      See Also:
        `saveToFile(String)`

    - #### saveToFile

          public void saveToFile(java.lang.String fileName)
                          throws java.io.IOException

      Saves this macro to a file. This file can later be read in by the constructor taking a `File` parameter; this is the mechanism for saving macros.
      Parameters:
        `fileName` - The name of the file in which to save the macro.
      Throws:
        `java.io.IOException` - If an error occurs while generating the XML for the output file.
      See Also:
        `saveToFile(File)`

    - #### setName

          public void setName(java.lang.String name)

      Sets the name of this macro. A macro's name is simply something to identify it with in a UI; it has nothing to do with the name of the file to save the macro to.
      Parameters:
        `name` - The new name for the macro.
      See Also:
        `getName()`