Class TextEditorPanel

    • Field Detail

      • m_Modified

        protected boolean m_Modified
        whether the content was modified.
      • m_IgnoreChanges

        protected boolean m_IgnoreChanges
        whether to ignore changes.
      • m_FileChooser

        protected transient TextFileChooser m_FileChooser
        for saving the content.
      • m_Undo

        protected UndoManager m_Undo
        for managing undo/redo.
      • m_LastFind

        protected String m_LastFind
        the last search string used.
      • m_ChangeListeners

        protected HashSet<ChangeListener> m_ChangeListeners
        the listeners for modification events.
      • m_CurrentFile

        protected File m_CurrentFile
        the current file.
      • m_CurrentEncoding

        protected String m_CurrentEncoding
        the current file encoding.
    • Constructor Detail

      • TextEditorPanel

        public TextEditorPanel()
    • Method Detail

      • initialize

        protected void initialize()
        For initializing members.
        Overrides:
        initialize in class BasePanel
      • initGUI

        protected void initGUI()
        For initializing the GUI.
        Overrides:
        initGUI in class BasePanel
      • getFileChooser

        protected TextFileChooser getFileChooser()
        Returns the file chooser and creates it if necessary.
        Returns:
        the file chooser
      • setModified

        public void setModified​(boolean value)
        Sets the modified state. If false, all edits are discarded and the last search string reset as well.
        Parameters:
        value - if true then the content is flagged as modified
      • isModified

        public boolean isModified()
        Returns whether the content has been modified.
        Returns:
        true if the content was modified
      • setContent

        public void setContent​(String value)
        Sets the content to display. Resets the modified state.
        Parameters:
        value - the text
      • getContent

        public String getContent()
        Returns the content to display.
        Returns:
        the text
      • append

        public void append​(String str)
        Appends the text at the end.
        Parameters:
        str - the text to append
      • setEditable

        public void setEditable​(boolean value)
        Sets whether the text area is editable or not.
        Parameters:
        value - if true then the text will be editable
      • isEditable

        public boolean isEditable()
        Returns whether the text area is editable or not.
        Returns:
        true if the text is editable
      • setTextFont

        public void setTextFont​(Font value)
        Sets the font of the text area.
        Parameters:
        value - the font to use
      • getTextFont

        public Font getTextFont()
        Returns the font currently in use by the text area.
        Returns:
        the font in use
      • getLastFind

        public String getLastFind()
        Returns the last search string.
        Returns:
        the last search string, can be null if no search performed yet
      • getTextArea

        public BaseTextArea getTextArea()
        Returns the underlying BaseTextArea element.
        Returns:
        the component
      • getDocument

        public Document getDocument()
        Returns the underlying document of the text area.
        Returns:
        the document
      • setCaretPosition

        public void setCaretPosition​(int value)
        Sets the position of the cursor.
        Parameters:
        value - the position
      • getCaretPosition

        public int getCaretPosition()
        Returns the current position of the cursor.
        Returns:
        the cursor position
      • setTabSize

        public void setTabSize​(int value)
        Sets the tab size, i.e., the number of maximum width characters.
        Parameters:
        value - the number of maximum width chars
      • getTabSize

        public int getTabSize()
        Returns the tab size, i.e., the number of maximum width characters.
        Returns:
        the number of maximum width chars
      • setLineWrap

        public void setLineWrap​(boolean value)
        Enables/disables line wrap.
        Parameters:
        value - if true line wrap gets enabled
      • getLineWrap

        public boolean getLineWrap()
        Returns whether line wrap is enabled.
        Returns:
        true if line wrap enabled
      • setWrapStyleWord

        public void setWrapStyleWord​(boolean word)
        Sets the style of wrapping used if the text area is wrapping lines. If set to true the lines will be wrapped at word boundaries (whitespace) if they are too long to fit within the allocated width. If set to false, the lines will be wrapped at character boundaries. By default this property is false.
        Parameters:
        word - indicates if word boundaries should be used for line wrapping
        See Also:
        getWrapStyleWord()
      • getWrapStyleWord

        public boolean getWrapStyleWord()
        Gets the style of wrapping used if the text area is wrapping lines. If set to true the lines will be wrapped at word boundaries (ie whitespace) if they are too long to fit within the allocated width. If set to false, the lines will be wrapped at character boundaries.
        Returns:
        if the wrap style should be word boundaries instead of character boundaries
        See Also:
        setWrapStyleWord(boolean)
      • checkForModified

        public boolean checkForModified()
        Returns whether we can proceed with the operation or not, depending on whether the user saved the content or discarded the changes.
        Returns:
        true if safe to proceed
      • open

        public boolean open()
        Pops up dialog to open a file.
        Returns:
        true if successfully opened
      • open

        public boolean open​(File file)
        Opens the specified file and loads/displays the content.
        Parameters:
        file - the file to load
        Returns:
        true if successfully opened
      • open

        public boolean open​(File file,
                            String encoding)
        Opens the specified file and loads/displays the content.
        Parameters:
        file - the file to load
        encoding - the encoding to use, use null or empty string for default UTF-8
        Returns:
        true if successfully opened
      • save

        public void save()
        Pops up dialog to save the content in a file if no filename provided, otherwise saves the .
      • saveAs

        public void saveAs()
        Pops up dialog to save the content in a file.
      • save

        protected void save​(File file,
                            String encoding)
        Saves the content under the specified file.
        Parameters:
        file - the file to save the content in
        encoding - the file encoding to use
      • clear

        public void clear()
        Removes all content. Does not reset the undos.
      • canUndo

        public boolean canUndo()
        Checks whether an undo action is available.
        Returns:
        true if an undo action is available
      • undo

        public void undo()
        Performs an undo, if possible.
      • canRedo

        public boolean canRedo()
        Checks whether a redo action is available.
        Returns:
        true if a redo action is available
      • redo

        public void redo()
        Performs a redo, if possible.
      • canCut

        public boolean canCut()
        Checks whether text can be cut at the moment.
        Returns:
        true if text is available for cutting
      • cut

        public void cut()
        Cuts the currently selected text and places it on the clipboard.
      • canCopy

        public boolean canCopy()
        Checks whether text can be copied at the moment.
        Returns:
        true if text is available for copying
      • copy

        public void copy()
        Copies the currently selected text to the clipboard.
      • canPaste

        public boolean canPaste()
        Checks whether text can be pasted at the moment.
        Returns:
        true if text is available for pasting
      • paste

        public void paste()
        Pastes the text from the clipboard into the document.
      • selectAll

        public void selectAll()
        Selects all the text.
      • find

        public void find()
        Initiates a search.
      • findNext

        public void findNext()
        Finds the next occurrence.
      • printText

        public void printText()
        Pops up a print dialog.
      • selectFont

        public void selectFont()
        Pops up a dialog for selecting the font.
      • getCurrentFile

        public File getCurrentFile()
        Returns the currently loaded file.
        Returns:
        the current file, null if none loaded
      • getCurrentEncoding

        public String getCurrentEncoding()
        Returns the current file encoding.
        Returns:
        the current encoding, null if no file loaded
      • addChangeListener

        public void addChangeListener​(ChangeListener l)
        Adds the given change listener to its internal list.
        Parameters:
        l - the listener to add
      • removeChangeListener

        public void removeChangeListener​(ChangeListener l)
        Removes the given change listener from its internal list.
        Parameters:
        l - the listener to remove
      • notifyChangeListeners

        protected void notifyChangeListeners()
        Sends an event to all change listeners.
      • setPopupMenuCustomizer

        public void setPopupMenuCustomizer​(PopupMenuCustomizer<TextEditorPanel> value)
        Sets the customizer to use.
        Parameters:
        value - the customizer, null to unset
      • showPopupMenu

        protected void showPopupMenu​(MouseEvent e)
        Shows the popup menu for the text area.
        Parameters:
        e - the event that triggered the action
      • setText

        public void setText​(String t)
        Sets the text of this TextComponent to the specified text. If the text is null or empty, has the effect of simply deleting the old text. When text has been inserted, the resulting caret location is determined by the implementation of the caret class.

        Note that text is not a bound property, so no PropertyChangeEvent is fired when it changes. To listen for changes to the text, use DocumentListener.

        Parameters:
        t - the new text to be set
        See Also:
        getText()
      • getText

        public String getText()
        Returns the text contained in this TextComponent. If the underlying document is null, will give a NullPointerException. Note that text is not a bound property, so no PropertyChangeEvent is fired when it changes. To listen for changes to the text, use DocumentListener.
        Returns:
        the text
        Throws:
        NullPointerException - if the document is null
        See Also:
        setText(java.lang.String)
      • getSelectedText

        public String getSelectedText()
        Returns the selected text contained in this TextComponent. If the selection is null or the document empty, returns null.
        Returns:
        the text
        Throws:
        IllegalArgumentException - if the selection doesn't have a valid mapping into the document for some reason
      • getSelectionStart

        public int getSelectionStart()
        Returns the selected text's start position. Return 0 for an empty document, or the value of dot if no selection.
        Returns:
        the start position ≥ 0
      • setSelectionStart

        public void setSelectionStart​(int selectionStart)
        Sets the selection start to the specified position. The new starting point is constrained to be before or at the current selection end.

        This is available for backward compatibility to code that called this method on java.awt.TextComponent. This is implemented to forward to the Caret implementation which is where the actual selection is maintained.

        Parameters:
        selectionStart - the start position of the text ≥ 0
      • getSelectionEnd

        public int getSelectionEnd()
        Returns the selected text's end position. Return 0 if the document is empty, or the value of dot if there is no selection.
        Returns:
        the end position ≥ 0
      • setSelectionEnd

        public void setSelectionEnd​(int selectionEnd)
        Sets the selection end to the specified position. The new end point is constrained to be at or after the current selection start.

        This is available for backward compatibility to code that called this method on java.awt.TextComponent. This is implemented to forward to the Caret implementation which is where the actual selection is maintained.

        Parameters:
        selectionEnd - the end position of the text ≥ 0
      • getCaret

        public Caret getCaret()
        Fetches the caret that allows text-oriented navigation over the view.
        Returns:
        the caret
      • setCaret

        public void setCaret​(Caret c)
        Sets the caret to be used. By default this will be set by the UI that gets installed. This can be changed to a custom caret if desired. Setting the caret results in a PropertyChange event ("caret") being fired.
        Parameters:
        c - the caret
        See Also:
        getCaret()