Servus Leute, bin noch nicht allzu gut im Umgang mit GWT und habe zu meiner Applikation eine Frage an euch, mit der Hoffnung das mir hier jemand helfen kann.
Habe die Google User API eingebaut und diese funktioniert auch einwandfrei(Anmeldung - Speicherung in Datenbank).
Nun habe ich aber das Problem das beim Aufruf der Seite der Anmelde Button in meiner Applikation erscheint. Würde dies gern separieren d.h: Erst Anmelde Button dann Applikation laden.
Das zweite Problem ist das nach einer Abfrage des Nutzers(ob dieser schon angemeldet ist) eine Profilmaske erscheinen soll. Das tut es auch jedoch immer und auch in der Applikation.
Kann mir eventuell hier einer weiterhelfen?
Das ist meiner Startklasse:
Vielen Dank schon einmal.....
Habe die Google User API eingebaut und diese funktioniert auch einwandfrei(Anmeldung - Speicherung in Datenbank).
Nun habe ich aber das Problem das beim Aufruf der Seite der Anmelde Button in meiner Applikation erscheint. Würde dies gern separieren d.h: Erst Anmelde Button dann Applikation laden.
Das zweite Problem ist das nach einer Abfrage des Nutzers(ob dieser schon angemeldet ist) eine Profilmaske erscheinen soll. Das tut es auch jedoch immer und auch in der Applikation.
Kann mir eventuell hier einer weiterhelfen?
Das ist meiner Startklasse:
Java:
public class SocialMediaProjekt implements EntryPoint {
//Klassenvariablen für Google Login
private LoginInfo loginInfo = null;
private VerticalPanel loginPanel = new VerticalPanel();
private User currentUser = null;
private Button logButton = new Button("Anmelden");
public DockPanel dockPanel = new DockPanel();
public Header header= new Header();
public Navigation navigation = new Navigation();
public Content content = new Content();
public void onModuleLoad() {
googlelogincheck();
RootPanel.get("header").add(header);
RootPanel.get("navigation").add(navigation);
RootPanel.get("content").add(content);
}
public void clearContent(){
RootPanel.get("content").clear();
}
public void addPinnwandToContent(){
content.addPinnwand();
RootPanel.get("content").add(content);
}
public void addAbosToContent(){
content.addMeineAbos();
RootPanel.get("content").add(content);
}
private void googlelogincheck() {
//aufrufen async call von LoginInfo
final PinnwandVerwaltungAsync pinnwandVerwaltung = ClientSideSettings.getPinnwandVerwaltung();
pinnwandVerwaltung.login(GWT.getHostPageBaseURL(), new AsyncCallback <LoginInfo>(){
private boolean status;
public void onFailure(Throwable error) {}
public void onSuccess(LoginInfo result) {
loginInfo = result;
if(loginInfo.isLoggedIn()) {
loginInfo.getEmailAddress();
loginInfo.getNickname();
Window.alert("User-ID:"+ loginInfo.getEmailAddress() + loginInfo.getNickname());
nutzerInDatenbank(result);
if(nutzerInDatenbank(loginInfo.getEmailAddress()) == false){
// der eingeloggte Nutzer war zuvor noch nie auf der SM Plattform
VerticalPanel userInfoPanel = new VerticalPanel();
final TextBox vorname = new TextBox();
vorname.setText("Vorname");
final TextBox nachname = new TextBox();
nachname.setText("nachname");
final TextBox nickname = new TextBox();
nickname.setText(loginInfo.getNickname());
final TextBox email = new TextBox();
email.setText(loginInfo.getEmailAddress());
email.setEnabled(false);
Button abschicken = new Button();
abschicken.setText("User anlegen");
userInfoPanel.add(vorname);
userInfoPanel.add(nachname);
userInfoPanel.add(nickname);
userInfoPanel.add(email);
userInfoPanel.add(abschicken);
RootPanel.get().add(userInfoPanel);
System.out.print("CLICK");
abschicken.addClickHandler(new ClickHandler (){
@Override
public void onClick(ClickEvent event) {
// TODO Auto-generated method stub
pinnwandVerwaltung.createUser(vorname.getText(), nachname.getText(), nickname.getText(), email.getText(), new AsyncCallback<User>(){
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(User result) {
// TODO Auto-generated method stub
}
});
}
});
}
//initialisieren();
//überprüfen ob angemeldete Nutzer bereits in Datenbank ist (anhand email-adresse)
} else {
loadLogin();
}
}
private boolean nutzerInDatenbank(String email) {
pinnwandVerwaltung.findUserbyEmail(email, new AsyncCallback<User>(){
public void onFailure(Throwable caught){
System.out.println(caught.getMessage());
caught.getCause();
System.out.print("Fehler");
}
@Override
public void onSuccess(User result) {
// TODO Auto-generated method stub
if(result==null){
status = false;
}else{
status = true;
}
}
});
return status;
}
private void loadLogin() {
// Assemble login panel.
signInLink.setHref(loginInfo.getLoginUrl());
loginPanel.add(loginLabel);
loginPanel.add(signInLink);
logButton.addClickHandler(new ClickHandler(){
public void onClick(ClickEvent event) {
Window.Location.assign(loginInfo.getLoginUrl());
}
});
RootPanel.get().add(logButton);
}
});
// TODO Auto-generated method stub
}
}
Vielen Dank schon einmal.....
Zuletzt bearbeitet: