001package org.jdesktop.swingx;
002
003import java.awt.Color;
004
005import javax.swing.JTextArea;
006
007import org.jdesktop.beans.JavaBean;
008import org.jdesktop.swingx.prompt.BuddySupport;
009import org.jdesktop.swingx.prompt.PromptSupport;
010import org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior;
011
012/**
013 * {@link JTextArea}, with integrated support for prompts.
014 * 
015 * @see PromptSupport
016 * @see BuddySupport
017 * @author Peter Weishapl <petw@gmx.net>
018 * 
019 */
020@JavaBean
021public class JXTextArea extends JTextArea {
022        public JXTextArea() {
023                this(null);
024        }
025
026        public JXTextArea(String promptText) {
027                this(promptText, null);
028        }
029
030        public JXTextArea(String promptText, Color promptForeground) {
031                this(promptText, promptForeground, null);
032        }
033
034        public JXTextArea(String promptText, Color promptForeground,
035                        Color promptBackground) {
036                PromptSupport.init(promptText, promptForeground, promptBackground,
037                                this);
038        }
039
040        /**
041         * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent)
042         */
043        public FocusBehavior getFocusBehavior() {
044                return PromptSupport.getFocusBehavior(this);
045        }
046
047        /**
048         * @see PromptSupport#getPrompt(javax.swing.text.JTextComponent)
049         */
050        public String getPrompt() {
051                return PromptSupport.getPrompt(this);
052        }
053
054        /**
055         * @see PromptSupport#getForeground(javax.swing.text.JTextComponent)
056         */
057        public Color getPromptForeground() {
058                return PromptSupport.getForeground(this);
059        }
060
061        /**
062         * @see PromptSupport#getForeground(javax.swing.text.JTextComponent)
063         */
064        public Color getPromptBackground() {
065                return PromptSupport.getBackground(this);
066        }
067
068        /**
069         * @see PromptSupport#getFontStyle(javax.swing.text.JTextComponent)
070         */
071        public Integer getPromptFontStyle() {
072                return PromptSupport.getFontStyle(this);
073        }
074
075        /**
076         * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent)
077         */
078        public void setFocusBehavior(FocusBehavior focusBehavior) {
079                PromptSupport.setFocusBehavior(focusBehavior, this);
080        }
081
082        /**
083         * @see PromptSupport#setPrompt(String, javax.swing.text.JTextComponent)
084         */
085        public void setPrompt(String labelText) {
086                PromptSupport.setPrompt(labelText, this);
087        }
088
089        /**
090         * @see PromptSupport#setForeground(Color, javax.swing.text.JTextComponent)
091         */
092        public void setPromptForeground(Color promptTextColor) {
093                PromptSupport.setForeground(promptTextColor, this);
094        }
095
096        /**
097         * @see PromptSupport#setBackground(Color, javax.swing.text.JTextComponent)
098         */
099        public void setPromptBackround(Color promptTextColor) {
100                PromptSupport.setBackground(promptTextColor, this);
101        }
102
103        /**
104         * @see PromptSupport#setFontStyle(Integer, javax.swing.text.JTextComponent)
105         */
106        public void setPromptFontStyle(Integer fontStyle) {
107                PromptSupport.setFontStyle(fontStyle, this);
108        }
109}