Esempio n. 1
0
        /// <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);
            }
        }