/// <summary> /// Handler for messages coming in from the browser via postMessage(). The /// @a var_message can contain anything: a JSON string; a string that encodes /// method names and arguments; etc. /// /// Here we use messages to communicate with the user interface /// /// </summary> /// <param name="vmessage">The message posted by the browser.</param> private void OnHandleMessage(object sender, Var varMessage) { if (!varMessage.IsArray) { return; } // Message should be an array with the following elements: // [command, path, extra args] var message = new VarArray(varMessage); var command = message[0].AsString(); var fileName = message[1].AsString(); if (fileName.Length == 0 || fileName[0] != '/') { ShowStatusMessage("File name must begin with /"); return; } Console.WriteLine($"command: {command} File Name: {fileName}"); if (command == "load") { Load(fileName); } else if (command == "save") { var fileText = message[2].AsString(); Save(fileName, fileText); } else if (command == "delete") { Delete(fileName); } else if (command == "list") { var dirName = fileName; messageLoop.PostWork <string>(List2, dirName); } else if (command == "makedir") { var dirName = fileName; MakeDir(dirName); } else if (command == "rename") { var newName = message[2].AsString(); Rename(fileName, newName); } else if (command == "query") { var dirName = fileName; messageLoop.PostWork <string>(Query2, dirName); //Query2(PPError.Ok, dirName); } }