blob: 1c74a16d38799b8cfaa81d111a8468589b4e3d85 [file] [log] [blame]
/****************************************************************
* Licensed to the Apache Software Foundation (ASF) under one *
* or more contributor license agreements. See the NOTICE file *
* distributed with this work for additional information *
* regarding copyright ownership. The ASF licenses this file *
* to you under the Apache License, Version 2.0 (the *
* "License"); you may not use this file except in compliance *
* with the License. You may obtain a copy of the License at *
* *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, *
* software distributed under the License is distributed on an *
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
* KIND, either express or implied. See the License for the *
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
package org.apache.hupa.client.mvp;
import net.customware.gwt.dispatch.client.DispatchAsync;
import net.customware.gwt.presenter.client.EventBus;
import net.customware.gwt.presenter.client.widget.WidgetDisplay;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
import org.apache.hupa.client.HupaCallback;
import org.apache.hupa.client.HupaConstants;
import org.apache.hupa.shared.events.FlashEvent;
import org.apache.hupa.shared.events.LoginEvent;
import org.apache.hupa.shared.events.SessionExpireEvent;
import org.apache.hupa.shared.events.SessionExpireEventHandler;
import org.apache.hupa.shared.rpc.LoginUser;
import org.apache.hupa.shared.rpc.LoginUserResult;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.Focusable;
import com.google.gwt.user.client.ui.HasValue;
import com.google.inject.Inject;
/**
* Presenter which handles the Login of and user to the IMAP-Server
*
*
*/
public class LoginPresenter extends WidgetPresenter<LoginPresenter.Display>{
private HupaConstants constants = GWT.create(HupaConstants.class);
<<<<<<< HEAD
<<<<<<< HEAD
=======
private int minUsernameLength = 1;
private int minPasswordLength = 1;
>>>>>>> first commit
=======
>>>>>>> constantly changed by manolo
public interface Display extends WidgetDisplay{
public HasClickHandlers getLoginClick();
public HasClickHandlers getResetClick();
public HasValue<String> getUserNameValue();
public HasValue<String> getPasswordValue();
public Focusable getUserNameFocus();
public void setLoading(boolean loading);
}
private DispatchAsync dispatcher;
@Inject
public LoginPresenter(LoginPresenter.Display display,EventBus bus,DispatchAsync dispatcher) {
super(display,bus);
this.dispatcher = dispatcher;
}
/**
* Try to login the user
*/
private void doLogin() {
<<<<<<< HEAD
<<<<<<< HEAD
String user = display.getUserNameValue().getValue().trim();
String pass = display.getPasswordValue().getValue().trim();
if (user.isEmpty() || pass.isEmpty())
=======
String user = display.getUserNameValue().getValue();
String pass = display.getPasswordValue().getValue();
if (user.length() < minUsernameLength || pass.length() < minPasswordLength)
>>>>>>> first commit
=======
String user = display.getUserNameValue().getValue().trim();
String pass = display.getPasswordValue().getValue().trim();
if (user.isEmpty() || pass.isEmpty())
>>>>>>> constantly changed by manolo
return;
display.setLoading(true);
dispatcher.execute(new LoginUser(user, pass), new HupaCallback<LoginUserResult>(dispatcher, eventBus, display) {
public void callback(LoginUserResult result) {
display.setLoading(false);
eventBus.fireEvent(new LoginEvent(result.getUser()));
doReset();
}
public void callbackError(Throwable caught) {
display.setLoading(false);
eventBus.fireEvent(new FlashEvent(constants.loginInvalid(), 4000));
doReset();
}
});
}
/**
* Reset display
*/
private void doReset() {
display.getUserNameValue().setValue("");
display.getPasswordValue().setValue("");
display.getUserNameFocus().setFocus(true);
}
@Override
protected void onBind() {
registerHandler(display.getLoginClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
doLogin();
}
}));
registerHandler(display.getResetClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
doReset();
}
}));
registerHandler(eventBus.addHandler(SessionExpireEvent.TYPE, new SessionExpireEventHandler() {
public void onSessionExpireEvent(SessionExpireEvent event) {
eventBus.fireEvent(new FlashEvent(constants.sessionTimedOut(), 4000));
}
}));
}
@Override
protected void onUnbind() {
// Nothing to do
}
@Override
protected void onRevealDisplay() {
// Nothing to do
}
}