Example #1
0
 private void SelectedGateway_Event(object sender, SelectionChangedEventArgs e)
 {
     if (e.AddedItems.Count > 0)
     {
         var item = e.AddedItems[0] as OneServerInfo;
         this.CurrentGateway.Text = item.HostName;
         var idx = GatewayList.IndexOf(item);
         var cnt = GatewayList.Count;
         if (idx >= 0)
         {
             var minShow = MinItemShowed;
             var maxShow = MinItemShowed + NumberItemShowed - 1;
             var midShow = (minShow + maxShow) / 2;
             var diff    = idx - midShow;
             if (diff != 0)
             {
                 var           newMinShow = MinItemShowed;
                 OneServerInfo scrollItem = null;
                 if (diff < 0)
                 {
                     newMinShow = Math.Max(0, MinItemShowed + diff);
                 }
                 else
                 {
                     maxShow    = Math.Min(cnt - 1, MinItemShowed + diff + NumberItemShowed - 1);
                     newMinShow = Math.Max(0, maxShow - NumberItemShowed + 1);
                 }
                 if (newMinShow != MinItemShowed)
                 {
                     int scrollidx = 0;
                     if (diff < 0)
                     {
                         scrollItem = GatewayList[newMinShow];
                         scrollidx  = newMinShow;
                     }
                     else
                     {
                         scrollItem = GatewayList[maxShow];
                         scrollidx  = maxShow;
                     }
                     MinItemShowed = newMinShow;
                     this.ViewOfGateway.ScrollIntoView(scrollItem);
                 }
             }
         }
     }
 }
Example #2
0
        private void AddGateway(String hostname, String info)
        {
            var serverInfo = new OneServerInfo();

            serverInfo.HostName = hostname;
            serverInfo.HostInfo = info;
            OneServerInfo oldServer;

            if (GatewayAdded.TryRemove(hostname, out oldServer))
            {
                this.GatewayList.Remove(oldServer);
            }
            var priorInfo = this.GatewayAdded.GetOrAdd(hostname, serverInfo);

            if (Object.ReferenceEquals(priorInfo, serverInfo))
            {
                this.GatewayList.Add(serverInfo);
            }
        }
Example #3
0
 private void AddGateway(String hostname, String info)
 {
     var serverInfo = new OneServerInfo();
     serverInfo.HostName = hostname;
     serverInfo.HostInfo = info;
     OneServerInfo oldServer;
     if (GatewayAdded.TryRemove(hostname, out oldServer))
     {
         this.GatewayList.Remove(oldServer);
     }
     var priorInfo = this.GatewayAdded.GetOrAdd(hostname, serverInfo);
     if (Object.ReferenceEquals(priorInfo, serverInfo))
     {
         this.GatewayList.Add(serverInfo);
     }
 }