New file |
0,0 → 1,201 |
/* |
* Copyright 2006 Google Inc. |
* |
* Licensed 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.tela_botanica.client; |
|
|
import com.google.gwt.json.client.JSONArray; |
import com.google.gwt.json.client.JSONBoolean; |
import com.google.gwt.json.client.JSONParser; |
import com.google.gwt.json.client.JSONString; |
import com.google.gwt.json.client.JSONValue; |
import com.google.gwt.user.client.HTTPRequest; |
import com.google.gwt.user.client.ResponseTextHandler; |
import com.google.gwt.user.client.ui.ClickListener; |
import com.google.gwt.user.client.ui.DialogBox; |
import com.google.gwt.user.client.ui.Grid; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.KeyboardListener; |
import com.google.gwt.user.client.ui.PasswordTextBox; |
import com.google.gwt.user.client.ui.TextBox; |
import com.google.gwt.user.client.ui.VerticalPanel; |
import com.google.gwt.user.client.ui.Widget; |
|
public class LoginDialog extends DialogBox { |
|
|
Mediator mediator=null; |
|
private String serviceBaseUrl = null; |
private TextBox login = new TextBox(); |
private PasswordTextBox password = new PasswordTextBox(); |
private String user=null; |
|
|
|
public LoginDialog(final Mediator med) { |
|
setText("Connexion"); |
|
mediator=med; |
|
mediator.registerLoginDialog(this); |
|
user=mediator.getUser(); |
|
serviceBaseUrl = mediator.getServiceBaseUrl(); |
|
|
VerticalPanel outer = new VerticalPanel(); |
|
Grid inner = new Grid(3,2); |
|
|
|
HTML textLogin = new HTML("E-mail:"); |
|
|
HTML textPassword = new HTML("Mot de passe:"); |
|
|
HTML okButton=new HTML("Ok"); |
okButton.setStyleName("html_button"); |
okButton.addClickListener( |
new ClickListener() { |
public void onClick(Widget sender) { |
loginFromService(login.getText(),password.getText()); |
hide(); |
} |
} |
); |
|
|
|
HTML cancelButton=new HTML("Annuler"); |
cancelButton.setStyleName("html_button"); |
cancelButton.addClickListener( |
new ClickListener() { |
public void onClick(Widget sender) { |
hide(); |
} |
} |
); |
|
|
login.addKeyboardListener( new KeyboardListener() { |
|
public void onKeyDown(Widget arg0, char arg1, int arg2) { |
|
|
if(arg1 == KEY_ENTER) |
{ |
loginFromService(login.getText(),password.getText()); |
hide(); |
} |
|
} |
|
public void onKeyUp(Widget arg0, char arg1, int arg2) { |
} |
|
public void onKeyPress(Widget arg0, char arg1, int arg2) { |
} |
|
} |
); |
|
|
|
password.addKeyboardListener( new KeyboardListener() { |
|
public void onKeyDown(Widget arg0, char arg1, int arg2) { |
|
|
if(arg1 == KEY_ENTER) |
{ |
loginFromService(login.getText(),password.getText()); |
hide(); |
} |
|
} |
|
public void onKeyUp(Widget arg0, char arg1, int arg2) { |
} |
|
public void onKeyPress(Widget arg0, char arg1, int arg2) { |
} |
|
} |
); |
|
inner.setWidget(0,0,textLogin); |
inner.setWidget(0,1,login); |
inner.setWidget(1,0,textPassword); |
inner.setWidget(1,1,password); |
inner.setWidget(2,0,okButton); |
inner.setWidget(2,1,cancelButton); |
|
inner.setCellPadding(10); |
outer.add(inner); |
|
setWidget(outer); |
|
} |
|
|
/** |
* |
*/ |
|
private void loginFromService(String login, String password) { |
|
|
HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + login + "/" + password , |
new ResponseTextHandler() { |
|
public void onCompletion(String str) { |
|
|
JSONValue jsonValue = JSONParser.parse(str); |
JSONArray jsonArray; |
if ((jsonArray = jsonValue.isArray()) != null) { |
user = ((JSONString) jsonArray.get(0)).stringValue(); |
mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue()); |
} |
|
if (mediator.getConnected()) { |
mediator.onLogin(user); |
} |
} |
}); |
|
} |
|
|
public boolean onKeyDownPreview(char key, int modifiers) { |
// Use the popup's key preview hooks to close the dialog when either |
// escape is pressed. |
switch (key) { |
case KeyboardListener.KEY_ESCAPE: |
hide(); |
break; |
} |
|
return true; |
} |
|
|
|
} |