00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 package com.realtime.crossfire.jxclient.gui.commands;
00022
00023 import com.realtime.crossfire.jxclient.gui.commandlist.GUICommand;
00024 import com.realtime.crossfire.jxclient.gui.gui.Gui;
00025 import com.realtime.crossfire.jxclient.gui.gui.GuiUtils;
00026 import com.realtime.crossfire.jxclient.gui.label.AbstractLabel;
00027 import com.realtime.crossfire.jxclient.gui.label.GUILabelFailure;
00028 import com.realtime.crossfire.jxclient.gui.textinput.CommandCallback;
00029 import com.realtime.crossfire.jxclient.gui.textinput.GUIText;
00030 import java.awt.Component;
00031 import org.jetbrains.annotations.NotNull;
00032
00037 public class AccountCreateCommand implements GUICommand {
00038
00042 @NotNull
00043 private final CommandCallback commandCallback;
00044
00048 @NotNull
00049 private final Component element;
00050
00056 public AccountCreateCommand(@NotNull final CommandCallback commandCallback, @NotNull final Component button) {
00057 this.commandCallback = commandCallback;
00058 element = button;
00059 }
00060
00064 @Override
00065 public boolean canExecute() {
00066 return true;
00067 }
00068
00072 @Override
00073 public void execute() {
00074 final Gui gui = GuiUtils.getGui(element);
00075 if (gui == null) {
00076 return;
00077 }
00078
00079 final GUIText loginField = gui.getFirstElement(GUIText.class, "account_login");
00080 final GUIText passwordField = gui.getFirstElement(GUIText.class, "account_password");
00081 final GUIText confirmField = gui.getFirstElement(GUIText.class, "account_password_confirm");
00082
00083 if (loginField == null || passwordField == null || confirmField == null) {
00084 return;
00085 }
00086
00087 final String login = loginField.getText();
00088 final String password = passwordField.getText();
00089 final String confirm = confirmField.getText();
00090
00091 if (login.isEmpty()) {
00092 final AbstractLabel error = gui.getFirstElement(GUILabelFailure.class, "account_create_error");
00093 if (error != null) {
00094 error.setText("Can't have an empty login!");
00095 }
00096 return;
00097 }
00098
00099 if (password.isEmpty()) {
00100 final AbstractLabel error = gui.getFirstElement(GUILabelFailure.class, "account_create_error");
00101 if (error != null) {
00102 error.setText("Can't have an empty password!");
00103 }
00104 return;
00105 }
00106 if (!confirm.equals(password)) {
00107 final AbstractLabel error = gui.getFirstElement(GUILabelFailure.class, "account_create_error");
00108 if (error != null) {
00109 error.setText("Passwords don't match!");
00110 }
00111 return;
00112 }
00113
00114 commandCallback.accountCreate(login, password);
00115 }
00116
00117 }