Issue #440 keep login window up when a username or password is incorrect.
Former-commit-id: dc4bf6dfbb2f0c58f9986b524ad49f18656cebc7
This commit is contained in:
parent
020be00301
commit
107c8ba7b9
3 changed files with 53 additions and 37 deletions
|
@ -209,41 +209,13 @@ public class CollaborationDataManager {
|
|||
}
|
||||
LoginDialog dlg = new LoginDialog(shell);
|
||||
loginData = null;
|
||||
while (isConnected() == false) {
|
||||
loginData = (LoginData) dlg.open();
|
||||
dlg.close();
|
||||
if (loginData == null) {
|
||||
break;
|
||||
}
|
||||
try {
|
||||
sessionManager = new SessionManager(loginData
|
||||
.getAccount(), loginData.getPassword());
|
||||
loginId = loginData.getAccount();
|
||||
DataUser user = CollaborationDataManager
|
||||
.getInstance().getUser(loginId);
|
||||
// try {
|
||||
// System.out.println("enter sleep...");
|
||||
// Thread.sleep(5000L);
|
||||
// System.out.println("Wake from sleep...");
|
||||
// } catch (InterruptedException e) {
|
||||
// }
|
||||
// // TODO set mode and message here.
|
||||
// user.setMode(loginData.getMode());
|
||||
// user.type = Type.AVAILABLE;
|
||||
// user.statusMessage = loginData.getModeMessage();
|
||||
} catch (Exception e) {
|
||||
MessageBox box = new MessageBox(shell, SWT.ERROR);
|
||||
box.setText("Login Failed");
|
||||
if (e.getMessage() != null) {
|
||||
box.setMessage(e.getMessage());
|
||||
} else {
|
||||
box.setMessage("Login Failed.");
|
||||
}
|
||||
box.open();
|
||||
// statusHandler.handle(Priority.WARN,
|
||||
// e.getLocalizedMessage(), e);
|
||||
}
|
||||
loginData = (LoginData) dlg.open();
|
||||
dlg.close();
|
||||
if (loginData == null) {
|
||||
return;
|
||||
}
|
||||
sessionManager = dlg.getSessionManager();
|
||||
loginId = loginData.getAccount();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -54,6 +54,9 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
|
|||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.viz.collaboration.comm.identity.IPresence;
|
||||
import com.raytheon.uf.viz.collaboration.comm.provider.session.SessionManager;
|
||||
import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager;
|
||||
import com.raytheon.uf.viz.collaboration.data.DataUser;
|
||||
import com.raytheon.uf.viz.collaboration.ui.CollaborationUtils;
|
||||
import com.raytheon.uf.viz.core.localization.LocalizationManager;
|
||||
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
||||
|
@ -104,9 +107,12 @@ public class LoginDialog extends CaveSWTDialog {
|
|||
|
||||
private LoginData loginData;
|
||||
|
||||
private SessionManager sessionManager;
|
||||
|
||||
public LoginDialog(Shell parentShell) {
|
||||
super(parentShell, SWT.DIALOG_TRIM);
|
||||
setText("Collaboration Server Login");
|
||||
this.loginData = loginData;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -367,9 +373,30 @@ public class LoginDialog extends CaveSWTDialog {
|
|||
// CollaborationUtils.statusModes[statusCombo
|
||||
// .getSelectionIndex()], messageTF
|
||||
// .getText().trim());
|
||||
setReturnValue(loginData);
|
||||
LoginDialog.this.getShell().dispose();
|
||||
} else {
|
||||
try {
|
||||
sessionManager = new SessionManager(loginData
|
||||
.getAccount(), loginData.getPassword());
|
||||
DataUser dUser = CollaborationDataManager
|
||||
.getInstance().getUser(
|
||||
loginData.getAccount());
|
||||
// // TODO set mode and message here.
|
||||
// dUser.setMode(loginData.getMode());
|
||||
// dUser.type = Type.AVAILABLE;
|
||||
// dUser.statusMessage = loginData.getModeMessage();
|
||||
setReturnValue(loginData);
|
||||
LoginDialog.this.getShell().dispose();
|
||||
} catch (Exception e) {
|
||||
if (focusField == null) {
|
||||
focusField = passwordTF;
|
||||
}
|
||||
errorMessages.add("Inavlid username or password.");
|
||||
passwordTF.setText("");
|
||||
if (sessionManager != null) {
|
||||
sessionManager.closeManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (focusField != null) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String prefix = "";
|
||||
for (String msg : errorMessages) {
|
||||
|
@ -452,4 +479,18 @@ public class LoginDialog extends CaveSWTDialog {
|
|||
}
|
||||
return lFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the loginData
|
||||
*/
|
||||
public LoginData getLoginData() {
|
||||
return loginData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the sessionManager
|
||||
*/
|
||||
public SessionManager getSessionManager() {
|
||||
return sessionManager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -169,6 +169,9 @@ public class SessionManager implements IEventPublisher {
|
|||
try {
|
||||
connectToContainer();
|
||||
} catch (ContainerConnectException e) {
|
||||
if (container != null) {
|
||||
container.dispose();
|
||||
}
|
||||
throw new CollaborationException(
|
||||
"Login failed. Invalid username or password", e);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue