001 package videoautomat.contentcreator;
002 import java.awt.Color;
003 import java.awt.GridLayout;
004
005 import javax.swing.Box;
006 import javax.swing.BoxLayout;
007 import javax.swing.JComponent;
008 import javax.swing.JLabel;
009 import javax.swing.JPanel;
010 import javax.swing.JPasswordField;
011 import javax.swing.JTextArea;
012 import javax.swing.JTextField;
013
014 import sale.FormSheet;
015 import sale.FormSheetContentCreator;
016 import videoautomat.contentcreator.stdactions.RollBackAction;
017 import videoautomat.contentcreator.stdactions.TransitWithAction;
018 import videoautomat.transition.RegisterOKTransition;
019
020 /**
021 * Content creator of the register process. Contains methods to set and add data
022 * independly from the gui part.
023 *
024 * @author Tobias Ruch
025 */
026 public class RegisterContentCreator extends FormSheetContentCreator {
027
028 /** Textarea for the error message */
029 private JTextArea errorMessage;
030 /** Label with the initial massage */
031 private JLabel message;
032 /** Textfield for the user name */
033 private JTextField userName;
034 /** PasswordField for the 1st password */
035 private JPasswordField password;
036 /** PasswordField for the 2nd password */
037 private JPasswordField confirmedPassword;
038 /**
039 * Creates a new content creator with an initial message
040 * @param message - initial message
041 */
042 public RegisterContentCreator(String message){
043
044 //initialize components
045 errorMessage = new JTextArea();
046 this.message = new JLabel();
047 userName = new JTextField();
048 password = new JPasswordField();
049 confirmedPassword = new JPasswordField();
050 //set initial values
051 this.message.setText(message);
052 errorMessage.setForeground(Color.RED);
053 errorMessage.setBackground(this.message.getBackground());
054 //errorMessage.setEnabled(false);
055 errorMessage.setEditable(false);
056 }
057
058 /**
059 * Method will be called from the FormSheet to which this ContentCreator is added.
060 * So the Attribut fs will be this FormSheet.
061 * You have to bild the content of your formsheet in this method
062 * @param fs - FormSheet to which this ContentCreator was added.
063 */
064 protected void createFormSheetContent(FormSheet fs) {
065 fs.removeAllButtons();
066
067
068 //settings to Panels
069 JComponent component = new JPanel();
070 JComponent outerPanel = new JPanel(); // a Panal with flow layout for optimal size of added components
071 JComponent messagePanel = new JPanel(new GridLayout(0,1));
072 JComponent inputPanel = new JPanel(new GridLayout(0,2,5,15));
073 component.setLayout(new BoxLayout(component, BoxLayout.Y_AXIS));
074 //?----outerPanel-------?
075 //|?---component-------?|
076 //||?-----------------?||
077 //||| message |||
078 //||?-----------------?||
079 //||?-----------------?||
080 //||| input |||
081 //||?-----------------?||
082 //|?-------------------?|
083 //?---------------------?
084
085
086 messagePanel.add(errorMessage);
087 messagePanel.add(message);
088
089 inputPanel.add(new JLabel("User Name"));
090 inputPanel.add(userName);
091 inputPanel.add(new JLabel("Password"));
092 inputPanel.add(password);
093 inputPanel.add(new JLabel("Confirm Password"));
094 inputPanel.add(confirmedPassword);
095
096 component.add(messagePanel);
097 component.add(Box.createVerticalStrut(30));
098 component.add(inputPanel);
099
100 outerPanel.add(component);
101 // set Buttons; using standard action to set transition classes
102 fs.addButton("OK", 1, new TransitWithAction(new RegisterOKTransition(this)));
103 fs.addButton("Cancel", 2, new RollBackAction());
104
105 fs.setComponent(outerPanel);
106 }
107
108
109 /**
110 * Returns the value of the username.
111 * @return - the username
112 */
113 public String getUserName(){
114 return userName.getText();
115 }
116
117 /**
118 * Returns the value of the password.
119 * @return - the value of the password as an char array
120 */
121 public char[] getPassword(){
122 return password.getPassword();
123 }
124
125 /**
126 * Returns the value of the confirmed password.
127 * @return - the value of the password as an char array
128 */
129 public char[] getConfirmedPassword(){
130 return confirmedPassword.getPassword();
131 }
132
133 /**
134 * Sets the value of the username
135 * @param userName - value of the username
136 */
137 public void setUserName(String userName){
138 this.userName.setText(userName);
139 }
140
141 /**
142 * Sets the error message to this formsheet.
143 * @param message - an error massage.
144 */
145 public void setErrorMessage(String message){
146 errorMessage.setText(message);
147 }
148
149 }