diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 7341ab1..a698e59 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/src/com/coder/client/SessionHandler.java b/src/com/coder/client/SessionHandler.java
index 342cce5..73c782a 100644
--- a/src/com/coder/client/SessionHandler.java
+++ b/src/com/coder/client/SessionHandler.java
@@ -5,8 +5,6 @@ import java.util.HashSet;
import java.util.logging.Level;
import java.util.logging.Logger;
-import javax.swing.JOptionPane;
-
import zutil.log.LogUtil;
import com.coder.client.session.ProjectMessageListener;
diff --git a/src/com/coder/client/gui/editor/EditorWindow.java b/src/com/coder/client/gui/editor/EditorWindow.java
index acb89a9..652a873 100644
--- a/src/com/coder/client/gui/editor/EditorWindow.java
+++ b/src/com/coder/client/gui/editor/EditorWindow.java
@@ -2,6 +2,7 @@ package com.coder.client.gui.editor;
import java.io.IOException;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
@@ -28,6 +29,7 @@ import com.coder.client.session.ProjectTypeRspMsgListener;
import com.coder.server.message.CoderMessage;
import com.coder.server.message.FileReqMsg;
import com.coder.server.message.FileRspMsg;
+import com.coder.server.message.FileSaveReqMsg;
import com.coder.server.message.ProjectReqMsg;
import com.coder.server.message.ProjectRspMsg;
import com.coder.server.message.ProjectTypeReqMsg;
@@ -148,7 +150,10 @@ public class EditorWindow extends GuiWindow {
setErrorMessage("");
}
logger.fine("recieved file content for file: \""+msg.path+"\"");
- //TODO: load file content to text area
+ String data = new String(msg.data, StandardCharsets.UTF_8);
+ logger.fine("loading file content to edit text area");
+ editTextArea.setText(data);
+ editTextArea.setDisable(false);
}
});
@@ -169,11 +174,13 @@ public class EditorWindow extends GuiWindow {
setErrorMessage("");
setupPropertySheet();
setupFileTreeView();
+ setupEditTextArea();
}
@Override
public void willShow(){
-
+ editTextArea.setText("");
+ editTextArea.setDisable(true);
}
@FXML
@@ -210,6 +217,7 @@ public class EditorWindow extends GuiWindow {
}else{
FileTreeFile file = (FileTreeFile)fileTreeItem;
logger.fine("file " + file.getName() + " selected in the file tree. The file has the full path: \""+file.getFullPath()+"\"");
+ editTextArea.setDisable(true);
//sending file request message
CoderMessage msg = new CoderMessage();
msg.FileReq = new FileReqMsg();
@@ -243,6 +251,20 @@ public class EditorWindow extends GuiWindow {
propertySheet.getItems().clear();
}
+
+ private void setupEditTextArea(){
+ editTextArea.focusedProperty().addListener((observable, oldValue, newValue)->{
+ if(!editTextArea.isFocused()){
+ logger.fine("edit text area lost focus");
+ logger.fine("will send a file save req");
+ CoderMessage msg = new CoderMessage();
+ msg.FileSaveReq = new FileSaveReqMsg();
+ msg.FileSaveReq.path = ((FileTreeFile)fileTreeView.getSelectionModel().getSelectedItem().getValue()).getFullPath();
+ msg.FileSaveReq.data = editTextArea.getText().getBytes(StandardCharsets.UTF_8);
+ sessionHandler.sendMessage(msg);
+ }
+ });
+ }
@Override
public String getTitle() {
diff --git a/src/com/coder/client/gui/selectProject/SelectProjectDialog.fxml b/src/com/coder/client/gui/selectProject/SelectProjectDialog.fxml
index a5c5bba..d7b0f6b 100644
--- a/src/com/coder/client/gui/selectProject/SelectProjectDialog.fxml
+++ b/src/com/coder/client/gui/selectProject/SelectProjectDialog.fxml
@@ -44,7 +44,7 @@
-