ProjectHandler, SessionHandler and SSDPHandler is now singletons

This commit is contained in:
dcollin 2015-11-17 15:48:04 +01:00
parent 825eb124cb
commit ecda338715
9 changed files with 116 additions and 66 deletions

View file

@ -14,6 +14,8 @@ import org.controlsfx.property.editor.PropertyEditor;
import zutil.log.LogUtil;
import com.coder.client.CoderClient;
import com.coder.client.ProjectHandler;
import com.coder.client.SessionHandler;
import com.coder.client.gui.GuiWindow;
import com.coder.client.project.OpenProjectEventHandler;
import com.coder.client.property.CoderClientProperty;
@ -42,6 +44,9 @@ import javafx.util.Callback;
public class EditorWindow extends GuiWindow {
public static final Logger logger = LogUtil.getLogger();
private CoderClient client;
private SessionHandler sessionHandler;
private ProjectHandler projectHandler;
@FXML private TreeView<FileTreeItem> fileTreeView;
@FXML private TextArea editTextArea;
@ -57,17 +62,20 @@ public class EditorWindow extends GuiWindow {
super(EditorWindow.class.getResource("EditorWindow.fxml"));
this.client = client;
client.getSessionHandler().addMessageListener(new ProjectRspMsgListener() {
this.sessionHandler = SessionHandler.getInstance();
this.projectHandler = ProjectHandler.getInstance();
sessionHandler.addMessageListener(new ProjectRspMsgListener() {
@Override
public void messageReceived(final ProjectRspMsg msg) {
try{
logger.fine("a ProjectRspMsg received");
if(msg.error != null){
logger.severe("Server responded on the project request with the following error message: " + msg.error);
client.getProjectHandler().setProject(null);
projectHandler.setProject(null);
return;
}else{
client.getProjectHandler().setProject(msg.name);
projectHandler.setProject(msg.name);
}
logger.info("loading project \""+msg.name+"\"");
@ -148,14 +156,14 @@ public class EditorWindow extends GuiWindow {
}
}catch(Exception e){
logger.log(Level.SEVERE, "exception while load the project", e);
client.getProjectHandler().triggerOpenProjectFailureEvent("ERROR: failed to loading project");
projectHandler.triggerOpenProjectFailureEvent("ERROR: failed to loading project");
}
client.showOnStage(EditorWindow.this);
}
});
client.getSessionHandler().addMessageListener(new ProjectTypeRspMsgListener() {
sessionHandler.addMessageListener(new ProjectTypeRspMsgListener() {
@Override
public void messageReceived(ProjectTypeRspMsg msg) {
for(String type : msg.keySet()){
@ -166,7 +174,7 @@ public class EditorWindow extends GuiWindow {
}
});
client.getSessionHandler().addMessageListener(new FileRspMsgListener(){
sessionHandler.addMessageListener(new FileRspMsgListener(){
@Override
public void messageReceived(FileRspMsg msg) {
if(msg.error != null || msg.path == null){
@ -188,13 +196,13 @@ public class EditorWindow extends GuiWindow {
}
});
client.getProjectHandler().addprojectEventHandler(new OpenProjectEventHandler() {
projectHandler.addprojectEventHandler(new OpenProjectEventHandler() {
@Override
public void openProject(String projectName) {
CoderMessage msg = new CoderMessage();
msg.ProjectReq = new ProjectReqMsg();
msg.ProjectReq.name = projectName;
client.getSessionHandler().sendMessage(msg);
sessionHandler.sendMessage(msg);
}
});
@ -224,8 +232,8 @@ public class EditorWindow extends GuiWindow {
@FXML
protected void changeProject(ActionEvent event){
client.getProjectHandler().setProject(null);
client.getProjectHandler().triggerSelectProjectEvent();
projectHandler.setProject(null);
projectHandler.triggerSelectProjectEvent();
}
@FXML
@ -237,7 +245,7 @@ public class EditorWindow extends GuiWindow {
CoderMessage msg = new CoderMessage();
msg.ProjectTypeReq = new ProjectTypeReqMsg();
msg.ProjectTypeReq.type = type;
client.getSessionHandler().sendMessage(msg);
sessionHandler.sendMessage(msg);
}
private void setupFileTreeView(){
@ -257,7 +265,7 @@ public class EditorWindow extends GuiWindow {
CoderMessage msg = new CoderMessage();
msg.FileReq = new FileReqMsg();
msg.FileReq.path = file.getFullPath();
client.getSessionHandler().sendMessage(msg);
sessionHandler.sendMessage(msg);
}
}
}