private void RemoveFromListView(ClientProcessItem target)
        {
            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);

            Log <WorkGroupTreeNode> .Logger.DebugFormat("RemoveFromListView", new object[0]);

            if (target.Process == null)
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Target [{0}]", "NULL");
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Target [{0}]", target.Process.Description);
            }
            Log <WorkGroupTreeNode> .Logger.DebugFormat("Start Remove in ListView", new object[0]);

            ClientProcessItem item = WorkGroup.Sort.ShowListView.Items[target.Name] as ClientProcessItem;

            if (item != null)
            {
                if (--item.ShowCount == 0)
                {
                    item.Selected = false;
                    WorkGroup.Sort.ShowListView.Items.RemoveAt(item.Index);
                }
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("item is null", new object[0]);
            }
            Log <WorkGroupTreeNode> .Logger.DebugFormat("End Remove in ListView", new object[0]);

            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);
        }
Example #2
0
        public void SelectNodeFromListView()
        {
            this.View.BeginUpdate();
            HashSet <WorkGroupTreeNode> hashSet = new HashSet <WorkGroupTreeNode>();

            foreach (object obj in WorkGroup.Sort.ShowListView.Items)
            {
                ClientProcessItem clientProcessItem = (ClientProcessItem)obj;
                WorkGroupTreeNode workGroupTreeNode = this[this.GetConditionKey(clientProcessItem.Client, clientProcessItem.Process)];
                if (workGroupTreeNode != null && !hashSet.Contains(workGroupTreeNode))
                {
                    hashSet.Add(workGroupTreeNode);
                }
            }
            foreach (object obj2 in this.View.Nodes)
            {
                WorkGroupTreeNode workGroupTreeNode2 = (WorkGroupTreeNode)obj2;
                workGroupTreeNode2.ChangeCheckState(CheckState.Unchecked, hashSet.Count == 0, false);
            }
            foreach (WorkGroupTreeNode workGroupTreeNode3 in hashSet)
            {
                workGroupTreeNode3.ChangeCheckState(CheckState.Checked, true, false);
            }
            this.View.EndUpdate();
        }
        public void AddClientProcessItem(string key, ClientProcessItem target)
        {
            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);

            Log <WorkGroupTreeNode> .Logger.DebugFormat("AddClientProcessItem", new object[0]);

            if (target.Process == null)
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Key [{0}], Target [{1}]", key, "NULL");
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Key [{0}], Target [{1}]", key, target.Process.Description);
            }
            this.naConditions.Remove(key);
            this.items.Add(target);
            if (this.showing || target.ShowCount > 0)
            {
                this.AddToListView(target);
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("\"showing\" is false and \"target.ShowCount\" <= 0.", new object[0]);
            }
            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);
        }
Example #4
0
        public static ClientProcessItem GetShowItem(RCClient client, RCProcess process)
        {
            ClientProcessItem key = new ClientProcessItem(client, process);

            if (ClientProcessItem.ShowItem.ContainsKey(key))
            {
                return(ClientProcessItem.ShowItem[key]);
            }
            return(null);
        }
Example #5
0
        public int CompareTo(object obj)
        {
            ClientProcessItem clientProcessItem = (ClientProcessItem)obj;
            int num = this.Client.Name.CompareTo(clientProcessItem.Client.Name);

            if (num != 0)
            {
                return(num);
            }
            return(this.Process.Description.CompareTo(clientProcessItem.Process.Description));
        }
Example #6
0
        public void RemoveFromWorkGroup(RCClient client, RCProcess process)
        {
            string            conditionKey      = this.GetConditionKey(client, process);
            WorkGroupTreeNode workGroupTreeNode = this[conditionKey];

            if (workGroupTreeNode != null)
            {
                ClientProcessItem showItem = ClientProcessItem.GetShowItem(client, process);
                if (showItem != null)
                {
                    ClientProcessItem.ShowItem.Remove(showItem);
                    workGroupTreeNode.RemoveClientProcessItem(conditionKey, showItem);
                }
            }
        }
Example #7
0
        public static ClientProcessItem CreateListItem(RCClient client, RCProcess process)
        {
            ClientProcessItem clientProcessItem = new ClientProcessItem(client, process);

            clientProcessItem.SubItems.AddRange(new string[]
            {
                process.Description,
                client.Name,
                process.State.ToString(),
                "",
                client.ClientIP
            });
            clientProcessItem.Name      = ClientProcessItem.MakeKey(client.Name, process.Name);
            clientProcessItem.Client    = client;
            clientProcessItem.Process   = process;
            clientProcessItem.ShowCount = 0;
            clientProcessItem.RefreshState();
            return(clientProcessItem);
        }
        public void RemoveClientProcessItem(string key, ClientProcessItem target)
        {
            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);

            Log <WorkGroupTreeNode> .Logger.DebugFormat("RemoveClientProcessItem", new object[0]);

            if (target.Process == null)
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Key [{0}], Target [{1}]", key, "NULL");
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Key [{0}], Target [{1}]", key, target.Process.Description);
            }
            this.naConditions.Add(key);
            this.items.Remove(target);
            this.RemoveFromListView(target);
            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);
        }
Example #9
0
        public int Compare(object x, object y)
        {
            ClientProcessItem clientProcessItem  = x as ClientProcessItem;
            ClientProcessItem clientProcessItem2 = y as ClientProcessItem;

            if (clientProcessItem != null)
            {
                if (clientProcessItem2 == null)
                {
                    return(1);
                }
                string            conditionKey      = this.workGroup.GetConditionKey(clientProcessItem.Client, clientProcessItem.Process);
                WorkGroupTreeNode workGroupTreeNode = this.workGroup[conditionKey];
                conditionKey = this.workGroup.GetConditionKey(clientProcessItem2.Client, clientProcessItem2.Process);
                WorkGroupTreeNode workGroupTreeNode2 = this.workGroup[conditionKey];
                if (workGroupTreeNode != null)
                {
                    int num = workGroupTreeNode.CompareTo(workGroupTreeNode2);
                    if (num != 0)
                    {
                        return(num);
                    }
                    return(clientProcessItem.CompareTo(clientProcessItem2));
                }
                else
                {
                    if (workGroupTreeNode2 != null)
                    {
                        return(-1);
                    }
                    return(0);
                }
            }
            else
            {
                if (clientProcessItem2 != null)
                {
                    return(-1);
                }
                return(0);
            }
        }
Example #10
0
        public void AddToWorkGroup(RCClient client, RCProcess process)
        {
            string            conditionKey      = this.GetConditionKey(client, process);
            WorkGroupTreeNode workGroupTreeNode = this[conditionKey];

            if (workGroupTreeNode != null)
            {
                ClientProcessItem key = new ClientProcessItem(client, process);
                ClientProcessItem.CreateListItem(client, process);
                ClientProcessItem clientProcessItem;
                if (!ClientProcessItem.ShowItem.ContainsKey(key))
                {
                    clientProcessItem = ClientProcessItem.CreateListItem(client, process);
                    ClientProcessItem.ShowItem[key] = clientProcessItem;
                }
                else
                {
                    clientProcessItem = ClientProcessItem.ShowItem[key];
                }
                workGroupTreeNode.AddClientProcessItem(conditionKey, clientProcessItem);
            }
        }
        private void AddToListView(ClientProcessItem target)
        {
            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);

            Log <WorkGroupTreeNode> .Logger.DebugFormat("AddToListView", new object[0]);

            if (target.Process == null)
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Target [{0}]", "NULL");
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Target [{0}]", target.Process.Description);
            }
            Log <WorkGroupTreeNode> .Logger.DebugFormat("Start Add in ListView", new object[0]);

            if (target == null)
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Target is null.", new object[0]);

                return;
            }
            IComparer comparer = WorkGroup.Sort.ShowListView.ListViewItemSorter;
            int       top      = 0;
            int       bottom   = WorkGroup.Sort.ShowListView.Items.Count;
            int       order    = (WorkGroup.Sort.ShowListView.Sorting == SortOrder.Ascending) ? 1 : -1;

            while (top < bottom)
            {
                int          middle = (top + bottom) / 2;
                ListViewItem item   = WorkGroup.Sort.ShowListView.Items[middle];
                int          result = comparer.Compare(target, item) * order;
                if (result > 0)
                {
                    top = middle + 1;
                }
                else
                {
                    if (result >= 0)
                    {
                        Log <WorkGroupTreeNode> .Logger.DebugFormat("!!! Target is already exist.", new object[0]);

                        Log <WorkGroupTreeNode> .Logger.DebugFormat("End Add in ListView", new object[0]);

                        Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);

                        return;
                    }
                    bottom = middle;
                }
            }
            if (target.Process != null)
            {
                if (target.Process.DefaultSelect)
                {
                    target.Selected = true;
                }
            }
            else
            {
                Log <WorkGroupTreeNode> .Logger.DebugFormat("Target.Process is NULL!!!!!!!!!!!!!!", new object[0]);
            }
            target.ShowCount = 1;
            WorkGroup.Sort.ShowListView.Items.Insert(top, target);
            Log <WorkGroupTreeNode> .Logger.DebugFormat("End Add in ListView", new object[0]);

            Log <WorkGroupTreeNode> .Logger.DebugFormat("=================================================", new object[0]);
        }