public void Refresh()
        {
            {
                CameraTabs.Clear();
                CameraTabs.Add(SimpleIoc.Default.GetInstance<CamerasViewModel>());
                foreach (CameraViewModel scvm in SimpleIoc.Default.GetAllCreatedInstances<CameraViewModel>())
                {
                    CameraTabs.Add(scvm);
                }
                IEditableCollectionView itemsView = (IEditableCollectionView)CollectionViewSource.GetDefaultView(CameraTabs);
                itemsView.NewItemPlaceholderPosition = NewItemPlaceholderPosition.AtEnd;
            }

            {
                MotionControllerTabs.Clear();
                MotionControllerTabs.Add(SimpleIoc.Default.GetInstance<MotionControllersViewModel>());
                foreach (MotionControllerViewModel mcvm in SimpleIoc.Default.GetAllCreatedInstances<MotionControllerViewModel>())
                {
                    MotionControllerTabs.Add(mcvm);
                }
                IEditableCollectionView itemsView = (IEditableCollectionView)CollectionViewSource.GetDefaultView(MotionControllerTabs);
                itemsView.NewItemPlaceholderPosition = NewItemPlaceholderPosition.AtEnd;
            }

            {
                ServerTabs.Clear();
                ServerTabs.Add(SimpleIoc.Default.GetInstance<ServerViewModel>());
                IEditableCollectionView itemsView = (IEditableCollectionView)CollectionViewSource.GetDefaultView(ServerTabs);
                itemsView.NewItemPlaceholderPosition = NewItemPlaceholderPosition.AtEnd;
            }
        } // Refresh
示例#2
0
        /// <summary>
        /// Funzione che chiude un singolo tab
        /// </summary>
        /// <param name="tab">Riferimento al tab da chiudere</param>
        public void CloseTab(DynamicTabItem tab)
        {
            // Caso in cui il tab da chiudere sia l'ultimo attivo: chiusura dell'intera finestra
            if (ServerTabs.Count == 1)
            {
                this.Close();
                return;
            }

            ServerTabManagement servertab = tab.ServerTab;

            // In caso di chiusura della main window, la funzione di chiusura di questo tab non andrà più eseguita
            ClosingEvent -= servertab.ServerTabClose;

            // Chiusura del tab
            servertab.ServerTabClose();

            // Rimozione di questo tab dalla lista dei tab dei server
            ServerTabs.Remove(tab);

            // Rimozione dei questa connessione dalla lista di connessioni attive
            ActiveConnections.Remove(tab.RemoteHost);

            if (ServerTabs.Count == 1)
            {
                ForegroundAppsBox.IsEnabled = false;
            }
        }
示例#3
0
        //*************************************************************************************************************
        public void ConnectToServer(Server server)
        {
            TabPageEx tab = new TabPageEx(server.Name);

            tab.Tag = server;
            ServerTabs._tabCloseBtn = KRBTabControlNS.CustomTab.KRBTabControl.TabCloseImage.Normal;
            ServerTabs.TabPages.Add(tab);
            tab.ImageIndex     = (int)server.Type;
            tab.SomeUserObject = server;
            server.Open(tab);
            ServerTabs.SelectTab(ServerTabs.TabPages.Count - 1);
            FocusSelectedTab();
        }
示例#4
0
        /// <summary>
        /// Funzione che crea un nuovo tab
        /// </summary>
        /// <param name="client"></param>
        /// <param name="stream"></param>
        /// <param name="address"></param>
        public void NewTab(TcpClient client, NetworkStream stream, String address)
        {
            DynamicTabItem      tab = new DynamicTabItem(this);
            ServerTabManagement s   = new ServerTabManagement(tab);

            tab.ServerTab = s;

            // Il titolo del nuovo tab ed il suo host remoto corrispondono all'indirizzo del server
            tab.DynamicHeader = tab.RemoteHost = address;

            if (address.StartsWith("127."))
            {
                tab.DynamicHeader = "Loopback";
            }
            else
            {
                Dns.BeginGetHostEntry(address, new AsyncCallback((IAsyncResult ar) =>
                {
                    try
                    {
                        string host = Dns.EndGetHostEntry(ar).HostName;
                        this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
                        {
                            tab.DynamicHeader = host;
                        }));
                    }
                    catch (SocketException)
                    {
                        Console.WriteLine("Server {0}: Nessun host trovato", address);
                    }
                }), null);
            }

            s.Connection = client;
            s.Stream     = stream;
            s.StartServerDataExchange();
            tab.Content = s;

            // Aggiunta del nuovo tab alla lista
            ServerTabs.Add(tab);

            // Evidenziazione dell'ultimo tab creato
            ServerTabControl.SelectedIndex = ServerTabs.Count - 1;

            if (ServerTabs.Count > 1)
            {
                ForegroundAppsBox.IsEnabled = true;
            }
        }
示例#5
0
 //*************************************************************************************************************
 private void timerCloseTab_Tick(object sender, EventArgs e)
 {
     timerCloseTab.Stop();
     ServerTabs.CloseTabByButton(tryCloseTab);
 }