new support classes added

This commit is contained in:
Daniel Collin 2015-10-20 06:56:14 +00:00
parent 9764f546da
commit 83e0196c50
21 changed files with 798 additions and 9 deletions

View file

@ -7,10 +7,12 @@ import java.util.logging.Logger;
import javax.swing.JOptionPane;
import com.coder.client.LoginDialog.LoginDialogAction;
import com.coder.server.CoderServer;
import com.coder.server.message.CoderMessage;
import com.coder.server.message.ConfigData;
import com.coder.server.message.ProjectListData;
import com.coder.server.message.ProjectListReqMsg;
import com.coder.server.message.ProjectRspMsg;
import zutil.log.CompactLogFormatter;
import zutil.log.LogUtil;
@ -23,6 +25,7 @@ public class CoderClient extends Thread{
private int port;
private Session session;
private ProjectEditorWindow projectEditorWindow;
private ProjectSelectDialog projectSelectDialog;
private String username = null;
private char[] password = null;
private int connectionRetriesLimit = DEFAULT_CONNECTION_RETRIES; //if zero, try forever
@ -32,6 +35,7 @@ public class CoderClient extends Thread{
this.port = port;
this.projectEditorWindow = new ProjectEditorWindow("CoderClient");
this.projectSelectDialog = new ProjectSelectDialog(null);
LogUtil.setGlobalLevel(Level.INFO);
LogUtil.setGlobalFormatter(new CompactLogFormatter());
@ -79,7 +83,7 @@ public class CoderClient extends Thread{
LoginDialog loginDialog = new LoginDialog(username, null);
loginDialog.setVisible(true); //blocking
loginDialog.dispose();
if(loginDialog.getAction() == LoginDialogAction.CANCEL){
if(loginDialog.getAction() == LoginDialog.LoginDialogAction.CANCEL){
logger.fine("Login dialog closed or canceled by the user. terminating.");
break;
}
@ -106,13 +110,46 @@ public class CoderClient extends Thread{
session.addCoderMessageReceivedListener(new CoderMessageReceivedListener() {
@Override
public void projectListRspReceived(Map<String, ProjectListData> projectListRsp) {
//TODO
for(String projectName : projectListRsp.keySet()){
ProjectListData projectData = projectListRsp.get(projectName);
projectSelectDialog.addProjectToList(projectName, projectData.type);
}
}
@Override
public void projectTypeRspReceived(Map<String, ConfigData> projectTypeRsp) {
// TODO Auto-generated method stub
}
@Override
public void projectRspReceived(ProjectRspMsg projectRspMsg) {
// TODO Auto-generated method stub
}
});
//start receiving traffic from the server
session.start();
//clear the current local project list
this.projectSelectDialog.clearProjectList();
//request a new project list from the server
CoderMessage msg = new CoderMessage();
msg.ProjectListReq = new ProjectListReqMsg();
try {
session.send(msg);
} catch (IOException e) {
logger.log(Level.SEVERE, "Unable to send ProjectListReqMsg", e);
continue;
}
//show the project selector dialog
this.projectSelectDialog.setVisible(true); //blocking
if(this.projectSelectDialog.getAction() == ProjectSelectDialog.ProjectSelectDialogAction.CANCEL){
logger.fine("Project select dialog closed or canceled by the user. terminating.");
break;
}
String selectedProjectName = this.projectSelectDialog.getSelecteProjectName();
logger.info("Project \"" +selectedProjectName+ "\" was selected.");
//add a listener to forward messages from the editor GUI to the server
this.projectEditorWindow.addMessageSentListener(new GUIMessageSentListener(){
@Override
@ -152,15 +189,15 @@ public class CoderClient extends Thread{
}
}
private void setPassword(char[] password) {
public void setPassword(char[] password) {
this.password = password;
}
private void setUsername(String username) {
public void setUsername(String username) {
this.username = username;
}
private void setRetryConnectForever(boolean tryForever) {
public void setRetryConnectForever(boolean tryForever) {
if(tryForever){
this.connectionRetriesLimit = 0;
}else{