Refactoring. Introducing a separate listener for each message type recieved.
This commit is contained in:
parent
9bdfb6b538
commit
0a580f8c53
13 changed files with 146 additions and 361 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package com.coder.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
|
@ -18,6 +19,11 @@ import com.coder.client.gui.selectProject.SelectProjectDialog;
|
|||
import com.coder.client.gui.selectProject.SelectProjectDialogListener;
|
||||
import com.coder.client.gui.selectServer.SelectServerDialog;
|
||||
import com.coder.client.gui.selectServer.SelectServerDialogListener;
|
||||
import com.coder.client.session.ProjectListRspMsgListener;
|
||||
import com.coder.client.session.ProjectRspMsgListener;
|
||||
import com.coder.client.session.ProjectTypeRspMsgListener;
|
||||
import com.coder.client.session.Session;
|
||||
import com.coder.client.session.SessionListener;
|
||||
import com.coder.server.message.*;
|
||||
|
||||
import zutil.log.CompactLogFormatter;
|
||||
|
|
@ -31,6 +37,7 @@ import javafx.stage.Stage;
|
|||
|
||||
public class CoderClient extends Application{
|
||||
public static final Logger logger = LogUtil.getLogger();
|
||||
private HashSet<SessionListener> sessionListeners = new HashSet<SessionListener>();
|
||||
|
||||
private Session session;
|
||||
private Stage mainStage;
|
||||
|
|
@ -197,6 +204,10 @@ public class CoderClient extends Application{
|
|||
logger.warning("Cannot setup session listeners for a non-authenticated session. ignoring call.");
|
||||
return;
|
||||
}
|
||||
//indicate for listeners that a new session is up
|
||||
for(SessionListener listener : sessionListeners){
|
||||
listener.sessionUp(session);
|
||||
}
|
||||
// create a guard for when the session is closed
|
||||
new Thread(new Runnable(){
|
||||
@Override
|
||||
|
|
@ -218,69 +229,8 @@ public class CoderClient extends Application{
|
|||
Thread.yield();
|
||||
}
|
||||
logger.fine("terminating session guard");
|
||||
}}).start();
|
||||
session.addCoderMessageReceivedListener(new CoderMessageReceivedListener() {
|
||||
@Override
|
||||
public void projectListRspReceived(final ProjectListRspMsg projectListRsp) {
|
||||
logger.fine("a ProjectListRsp received");
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for(String projectName : projectListRsp.keySet()){
|
||||
ProjectListData projectData = projectListRsp.get(projectName);
|
||||
selectProjectDialog.addProjectToList(projectName, projectData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void projectRspReceived(final ProjectRspMsg projectRspMsg) {
|
||||
logger.fine("a ProjectRspMsg received");
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(projectRspMsg.error != null){
|
||||
logger.severe("Server responded on the project request with the following error message: " + projectRspMsg.error);
|
||||
selectProjectDialog.setProject(null);
|
||||
if(projectSelectionWindow != null){
|
||||
projectSelectionWindow.setErrorMessage("ERROR: " + projectRspMsg.error);
|
||||
projectSelectionWindow.showOnStage(mainStage);
|
||||
return;
|
||||
}else{
|
||||
selectProjectDialog.setErrorMessage("ERROR: " + projectRspMsg.error);
|
||||
selectProjectDialog.showOnStage(mainStage);
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
if(projectSelectionWindow != null){
|
||||
projectSelectionWindow.setErrorMessage("");
|
||||
}
|
||||
editorWindow.setProjectName(projectRspMsg.name);
|
||||
|
||||
Properties projectConfig = projectRspMsg.config;
|
||||
String projectDescription = projectRspMsg.description;
|
||||
List<String> projectFileList = projectRspMsg.fileList;
|
||||
String projectName = projectRspMsg.name;
|
||||
String projectType = projectRspMsg.type;
|
||||
//TODO: handle msg
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void projectTypeRspReceived(final ProjectTypeRspMsg projectTypeRsp) {
|
||||
logger.fine("a ProjectTypeRspMsg received");
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for(String typeName : projectTypeRsp.keySet()){
|
||||
SupportedProperties typeData = projectTypeRsp.get(typeName);
|
||||
newProjectDialog.addProjectTypeToList(typeName, typeData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void setupSelectProjectDialog() throws IOException {
|
||||
|
|
@ -327,6 +277,26 @@ public class CoderClient extends Application{
|
|||
}
|
||||
}
|
||||
});
|
||||
this.sessionListeners.add(new SessionListener() {
|
||||
@Override
|
||||
public void sessionUp(Session session) {
|
||||
session.addProjectListRspMsgListener(new ProjectListRspMsgListener() {
|
||||
@Override
|
||||
public void messageReceived(final ProjectListRspMsg msg) {
|
||||
logger.fine("a ProjectListRsp received");
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for(String projectName : msg.keySet()){
|
||||
ProjectListData projectData = msg.get(projectName);
|
||||
selectProjectDialog.addProjectToList(projectName, projectData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setupNewProjectDialog() throws IOException {
|
||||
|
|
@ -374,6 +344,26 @@ public class CoderClient extends Application{
|
|||
selectProjectDialog.showOnStage(mainStage);
|
||||
}
|
||||
});
|
||||
this.sessionListeners.add(new SessionListener() {
|
||||
@Override
|
||||
public void sessionUp(Session session) {
|
||||
session.addProjectTypeRspMsgListener(new ProjectTypeRspMsgListener() {
|
||||
@Override
|
||||
public void messageReceived(final ProjectTypeRspMsg msg) {
|
||||
logger.fine("a ProjectTypeRspMsg received");
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for(String typeName : msg.keySet()){
|
||||
SupportedProperties typeData = msg.get(typeName);
|
||||
newProjectDialog.addProjectTypeToList(typeName, typeData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setupEditWindow() throws IOException {
|
||||
|
|
@ -418,6 +408,52 @@ public class CoderClient extends Application{
|
|||
Platform.exit();
|
||||
}
|
||||
});
|
||||
sessionListeners.add(new SessionListener() {
|
||||
@Override
|
||||
public void sessionUp(Session session) {
|
||||
session.addProjectRspMsgListener(new ProjectRspMsgListener() {
|
||||
@Override
|
||||
public void messageReceived(final ProjectRspMsg msg) {
|
||||
logger.fine("a ProjectRspMsg received");
|
||||
Platform.runLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(msg.error != null){
|
||||
logger.severe("Server responded on the project request with the following error message: " + msg.error);
|
||||
selectProjectDialog.setProject(null);
|
||||
if(projectSelectionWindow != null){
|
||||
projectSelectionWindow.setErrorMessage("ERROR: " + msg.error);
|
||||
projectSelectionWindow.showOnStage(mainStage);
|
||||
return;
|
||||
}else{
|
||||
selectProjectDialog.setErrorMessage("ERROR: " + msg.error);
|
||||
selectProjectDialog.showOnStage(mainStage);
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
if(projectSelectionWindow != null){
|
||||
projectSelectionWindow.setErrorMessage("");
|
||||
}
|
||||
editorWindow.setProjectName(msg.name);
|
||||
|
||||
Properties projectConfig = msg.config;
|
||||
String projectDescription = msg.description;
|
||||
List<String> fileList = msg.fileList;
|
||||
String projectType = msg.type;
|
||||
//TODO: handle msg
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
session.addProjectTypeRspMsgListener(new ProjectTypeRspMsgListener() {
|
||||
@Override
|
||||
public void messageReceived(ProjectTypeRspMsg msg) {
|
||||
//TODO: update the project properties
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setupSSDPClient() throws IOException{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue