Example #1
0
        public void TestConsoleTextEditor()
        {
            string[][] queries = new string[][]
            { new [] { "APPEND", "Hey" },
              new [] { "APPEND", " you" },
              new [] { "APPEND", ", don't" },
              new[] { "APPEND", " " },
              new [] { "APPEND", "let me down" } };
            string[]          output            = { "Hey", "Hey you", "Hey you, don't", "Hey you, don't ", "Hey you, don't let me down" };
            ConsoleTextEditor consoleTextEditor = new ConsoleTextEditor();

            string[] my = consoleTextEditor.textEditor1_2(queries);
            Assert.AreEqual(output, my);

            queries = new string[][] {
                new[] { "APPEND", "Hey, you!" },
                new[] { "BACKSPACE" },
                new[] { "APPEND", "? Impossibel!" },
                new[] { "BACKSPACE" },
                new[] { "BACKSPACE" },
                new[] { "BACKSPACE" },
                new[] { "APPEND", "le!" }
            };
            output = new string[] { "Hey, you!", "Hey, you", "Hey, you? Impossible!", "Hey, you? Impossibe", "Hey, you? Impossible", "Hey, you? Impossib", "Hey, you? Impossible!" };
            my     = consoleTextEditor.textEditor1_2(queries);
            Assert.AreEqual(output, my);
        }
Example #2
0
        public MainWindow()
        {
            InitializeComponent();

            Utilities.ResourceToList("Resources/keywords.setting", _keywords);
            Utilities.ResourceToList("Resources/methods.setting", _methods);
            Utilities.ResourceToList("Resources/snippets.setting", _snippets);

            _viewModel = DataContext as ViewModel;

            _completionDatas = new List <ICompletionData>();
            foreach (var method in _methods)
            {
                _completionDatas.Add(new CompletionData(method));
            }

            _uiThreadScheduler = TaskScheduler.FromCurrentSynchronizationContext();
            _uiDispatcher      = Dispatcher.CurrentDispatcher;

            RefreshSerialPort();

            InitConnect();

            SerialPort.GetInstance().IsWorkingChanged += delegate(bool isWorking)
            {
                EnsureWorkInUiThread(() =>
                {
                    CompileButton.IsEnabled   = DeleteButton.IsEnabled = RunButton.IsEnabled = ConnectButton.IsEnabled = CommandTextBox.IsEnabled = UploadButton.IsEnabled = DownloadButton.IsEnabled = !isWorking;
                    CompileMenuItem.IsEnabled = DeleteMenuItem.IsEnabled = RunMenuItem.IsEnabled = ConnectMenuItem.IsEnabled = UploadMenuItem.IsEnabled = DownloadMenuItem.IsEnabled = !isWorking;
                });
            };

            SerialPort.GetInstance().OnDataReceived += delegate(string data)
            {
                EnsureWorkInUiThread(() =>
                {
                    ConsoleTextEditor.AppendText(data);
                    ConsoleTextEditor.ScrollToEnd();
                });
            };

            StartBackgroundSerialPortUpdateThread();

            StartBackgroundUpdateThread();

            new Task(() =>
            {
                const string updateLink = "http://nodemcu-studio-2015.coding.io/pre_build/NodeMCU%20Studio%202015.exe";
                var req =
                    WebRequest.Create(
                        updateLink);
                req.Method = "HEAD";

                using (var resp = req.GetResponse())
                {
                    Int32 contentLength;
                    if (Int32.TryParse(resp.Headers.Get("Content-Length"), out contentLength))
                    {
                        var fileLength = new FileInfo(Assembly.GetExecutingAssembly().Location).Length;
                        if (fileLength != contentLength)
                        {
                            if (MessageBox.Show("A new version is available. Download?", "NodeMCU Studio 2015",
                                                MessageBoxButton.YesNo, MessageBoxImage.Information, MessageBoxResult.Yes) == MessageBoxResult.Yes)
                            {
                                Process.Start("NodeMcu Updataer.exe");
                            }
                        }
                    }
                }
            }).Start();
        }