001package org.jdesktop.swingx;
002
003import java.awt.Color;
004import java.awt.Component;
005import java.awt.Insets;
006import java.util.List;
007
008import javax.swing.JFormattedTextField;
009import javax.swing.JTextField;
010
011import org.jdesktop.swingx.prompt.BuddySupport;
012import org.jdesktop.swingx.prompt.PromptSupport;
013import org.jdesktop.swingx.prompt.BuddySupport.Position;
014import org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior;
015
016
017/**
018 * {@link JFormattedTextField}, with integrated support for prompts and buddies.
019 * 
020 * @see PromptSupport
021 * @see BuddySupport
022 * @author Peter Weishapl <petw@gmx.net>
023 * 
024 */
025public class JXFormattedTextField extends JFormattedTextField {
026        public JXFormattedTextField() {
027                this(null);
028        }
029
030        public JXFormattedTextField(String promptText) {
031                this(promptText, null);
032        }
033
034        public JXFormattedTextField(String promptText, Color promptForeground) {
035                this(promptText, promptForeground, null);
036        }
037        
038        public JXFormattedTextField(String promptText, Color promptForeground, Color promptBackground) {
039                PromptSupport.init(promptText, promptForeground, promptBackground, this);
040        }
041
042        /**
043         * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent)
044         */
045        public FocusBehavior getFocusBehavior() {
046                return PromptSupport.getFocusBehavior(this);
047        }
048
049        /**
050         * @see PromptSupport#getPrompt(javax.swing.text.JTextComponent)
051         */
052        public String getPrompt() {
053                return PromptSupport.getPrompt(this);
054        }
055
056        /**
057         * @see PromptSupport#getForeground(javax.swing.text.JTextComponent)
058         */
059        public Color getPromptForeground() {
060                return PromptSupport.getForeground(this);
061        }
062        
063        /**
064         * @see PromptSupport#getForeground(javax.swing.text.JTextComponent)
065         */
066        public Color getPromptBackground() {
067                return PromptSupport.getBackground(this);
068        }
069
070        /**
071         * @see PromptSupport#getFontStyle(javax.swing.text.JTextComponent)
072         */
073        public Integer getPromptFontStyle() {
074                return PromptSupport.getFontStyle(this);
075        }
076
077        /**
078         * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent)
079         */
080        public void setFocusBehavior(FocusBehavior focusBehavior) {
081                PromptSupport.setFocusBehavior(focusBehavior, this);
082        }
083
084        /**
085         * @see PromptSupport#setPrompt(String, javax.swing.text.JTextComponent)
086         */
087        public void setPrompt(String labelText) {
088                PromptSupport.setPrompt(labelText, this);
089        }
090
091        /**
092         * @see PromptSupport#setForeground(Color, javax.swing.text.JTextComponent)
093         */
094        public void setPromptForeground(Color promptTextColor) {
095                PromptSupport.setForeground(promptTextColor, this);
096        }
097        
098        /**
099         * @see PromptSupport#setBackground(Color, javax.swing.text.JTextComponent)
100         */
101        public void setPromptBackround(Color promptTextColor) {
102                PromptSupport.setBackground(promptTextColor, this);
103        }
104
105        /**
106         * @see PromptSupport#setFontStyle(Integer,
107         *      javax.swing.text.JTextComponent)
108         */
109        public void setPromptFontStyle(Integer fontStyle) {
110                PromptSupport.setFontStyle(fontStyle, this);
111        }
112        
113        /**
114         * @see BuddySupport#setOuterMargin(JTextField, Insets)
115         */
116        public void setOuterMargin(Insets margin) {
117                BuddySupport.setOuterMargin(this, margin);
118        }
119
120        /**
121         * @see BuddySupport#getOuterMargin(JTextField)
122         */
123        public Insets getOuterMargin() {
124                return BuddySupport.getOuterMargin(this);
125        }
126
127        /**
128         * @see BuddySupport#add(Component, Position, JTextField)
129         */
130        public void addBuddy(Component buddy, Position pos) {
131                BuddySupport.add(buddy, pos, this);
132        }
133
134        /**
135         * @see BuddySupport#addGap(int, Position, JTextField)
136         */
137        public void addGap(int width, Position pos) {
138                BuddySupport.addGap(width, pos, this);
139        }
140
141        /**
142         * @see BuddySupport#getBuddies(Position, JTextField)
143         */
144        public List<Component> getBuddies(Position pos) {
145                return BuddySupport.getBuddies(pos, this);
146        }
147
148        /**
149         * @see BuddySupport#removeAll(JTextField)
150         */
151        public void removeAllBuddies() {
152                BuddySupport.removeAll(this);
153        }
154}