Ejemplo n.º 1
0
        public ConnectionTabItem(ConnectionTabData connectionTabData)
        {
            // Create an instance of the usercontrol
            closeableTabHeader = new CloseableHeader();
            // Assign the usercontrol to the tab header
            this.Header = closeableTabHeader;
            closeableTabHeader.button_close.MouseEnter +=
                new MouseEventHandler(button_close_MouseEnter);
            closeableTabHeader.button_close.MouseLeave +=
                new MouseEventHandler(button_close_MouseLeave);

            closeableTabHeader.button_close.Click +=
                new RoutedEventHandler(button_close_Click);

            closeableTabHeader.label_TabTitle.SizeChanged +=
                new SizeChangedEventHandler(label_TabTitle_SizeChanged);

            this.Available         = false;
            this.ConnectionTabData = connectionTabData;
        }
Ejemplo n.º 2
0
        private void CommandExe(string key, string value)
        {
            string report = "";

            if (StrCompare(key, "exit"))
            {
                mainWindow.Dispatcher.Invoke(() => { App.Current.Shutdown(); });
            }
            else if (StrCompare(key, "send"))
            {
                if (value == null)
                {
                    mainWindow.Dispatcher.Invoke(() =>
                    {
                        mainWindow.Text_Send_Click(null, null);
                    });
                }
                else
                {
                    if (value.ElementAt(0) == '"' && value.ElementAt(value.Length - 1) == '"')
                    {
                        ;
                    }
                    int newlineMark = value.IndexOf("\\n");

                    value = value.Replace("\\n", "\n");
                    value = value.Replace("\\r", "\r");
                    mainWindow.Dispatcher.Invoke(() =>
                    {
                        SelectedConnectionTab.SendData(value, DateTime.Now);
                    });
                }
            }
            else if (StrCompare(key, "clear"))
            {
                if (value == null)
                {
                    mainWindow.Dispatcher.Invoke(() =>
                    {
                        mainWindow.Button_ReceiveWindow_Clear_Click(null, null);
                    });
                }
            }
            else if (StrCompare(key, "freeze"))
            {
                if (value == null)
                {
                    mainWindow.Dispatcher.Invoke(() =>
                    {
                    });
                }
            }


            else if (StrCompare(key, "serial"))
            {
                if (SelectedConnectionTab == null)
                {
                    Debug.WriteLine("choose serial");

                    ConnectionTabData connection = null;
                    mainWindow.Dispatcher.Invoke(() =>
                    {
                        Debug.WriteLine("NewTab");
                        connection = ConnectionTabHelper.NewTab();
                        connection.TabItem.Title           = "ArduBlockly";
                        connection.ToolBarSetting.SendText = "測試";
                        SelectedConnectionTab = connection;
                        SelectedConnectionTab.ConnectionTypeChoose(0);
                    });
                }
                ((Connection.Serial.Settings)SelectedConnectionTab.ToolBarSetting.ConnectionSettings).ComPort = int.Parse(value);
                Debug.WriteLine("set comport");
            }

            else if (StrCompare(key, "disconnect"))
            {
                mainWindow.Dispatcher.Invoke(() => { SelectedConnectionTab.Disconnect(); });
            }
            else if (StrCompare(key, "connect"))
            {
                Debug.WriteLine("Connect");
                mainWindow.Dispatcher.Invoke(() => { SelectedConnectionTab.Connect(); });
            }
            else if (StrCompare(key, "text"))
            {
                if (value != null)
                {
                    value = value.Replace("\\n", "\n");
                    value = value.Replace("\\r", "\r");
                    mainWindow.Dispatcher.Invoke(() => { mainWindow.TextBox_Send_Text.Text = value; });
                }
            }
            else if (StrCompare(key, "auto_spilt"))
            {
                bool result     = false;
                bool successful = bool.TryParse(value, out result);
                if (successful)
                {
                    mainWindow.Dispatcher.Invoke(() => { mainWindow.Toggle_Receive_AutoSpilt.IsChecked = result; });
                }
            }
            else if (StrCompare(key, "show_time"))
            {
                bool result     = false;
                bool successful = bool.TryParse(value, out result);
                if (successful)
                {
                    mainWindow.Dispatcher.Invoke(() => { mainWindow.Toggle_Receive_ShowTime.IsChecked = result; });
                }
            }
            else if (StrCompare(key, "next_line"))
            {
                mainWindow.Dispatcher.Invoke(() => { mainWindow.Button_ReceiveWindow_PrintNewLine_Click(null, null); });
            }
            else if (StrCompare(key, "window"))
            {
                System.Windows.WindowState state = System.Windows.WindowState.Normal;
                if (StrCompare(value, "max"))
                {
                    state = System.Windows.WindowState.Maximized;
                }
                else if (StrCompare(value, "min"))
                {
                    state = System.Windows.WindowState.Minimized;
                }
                else if (StrCompare(value, "normal"))
                {
                    state = System.Windows.WindowState.Normal;
                }
                mainWindow.Dispatcher.Invoke(() =>
                {
                    mainWindow.WindowState = state;
                });
            }
            else if (StrCompare(key, "selectTabByName"))
            {
                ConnectionTabData tabData = ConnectionTabHelper.ConnectionTabDataList.Find((data) => { return(data.TabItem.Title == value); });
                if (tabData != null)
                {
                    SelectedConnectionTab = tabData;
                }
            }
            else if (StrCompare(key, "selectTabByIndex"))
            {
                uint index;
                if (uint.TryParse(value, out index))
                {
                    ConnectionTabData tabData = ConnectionTabHelper.ConnectionTabDataList.ElementAt((int)index);
                    if (tabData != null)
                    {
                        SelectedConnectionTab = tabData;
                    }
                }
            }
            else if (StrCompare(key, "focus"))
            {
                if (SelectedConnectionTab != null)
                {
                    SelectedConnectionTab.Focus();
                }
            }
            else if (StrCompare(key, "connected"))
            {
            }

            else
            {
                if (SelectedConnectionTab != null)
                {
                    SelectedConnectionTab.ToolBarSetting.ConnectionSettings.Parse(key, value, report);
                }
            }
        }