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 AccountPasswordCommand implements GUICommand {
00038
00042 @NotNull
00043 private final CommandCallback commandCallback;
00044
00048 @NotNull
00049 private final Component element;
00050
00057 public AccountPasswordCommand(@NotNull final CommandCallback commandCallback, @NotNull final Component button) {
00058 this.commandCallback = commandCallback;
00059 element = button;
00060 }
00061
00065 @Override
00066 public boolean canExecute() {
00067 return true;
00068 }
00069
00073 @Override
00074 public void execute() {
00075 final Gui gui = GuiUtils.getGui(element);
00076 if (gui == null) {
00077 return;
00078 }
00079
00080 final GUIText currentPasswordField = gui.getFirstElement(GUIText.class, "account_password_current");
00081 final GUIText newPasswordField = gui.getFirstElement(GUIText.class, "account_password_new");
00082 final GUIText confirmPasswordField = gui.getFirstElement(GUIText.class, "account_password_confirm");
00083
00084 if (currentPasswordField == null || newPasswordField == null || confirmPasswordField == null) {
00085 return;
00086 }
00087
00088 final String currentPassword = currentPasswordField.getText();
00089 final String newPassword = newPasswordField.getText();
00090 final String confirmPassword = confirmPasswordField.getText();
00091
00092 if (currentPassword.isEmpty()) {
00093 final AbstractLabel error = gui.getFirstElement(GUILabelFailure.class, "account_password_error");
00094 if (error != null) {
00095 error.setText("Please enter your current password!");
00096 }
00097 return;
00098 }
00099
00100 if (newPassword.isEmpty()) {
00101 final AbstractLabel error = gui.getFirstElement(GUILabelFailure.class, "account_password_error");
00102 if (error != null) {
00103 error.setText("Can't have an empty password!");
00104 }
00105 return;
00106 }
00107 if (!confirmPassword.equals(newPassword)) {
00108 final AbstractLabel error = gui.getFirstElement(GUILabelFailure.class, "account_password_error");
00109 if (error != null) {
00110 error.setText("Passwords don't match!");
00111 }
00112 return;
00113 }
00114
00115 commandCallback.accountPassword(currentPassword, newPassword);
00116 }
00117
00118 }