Ejemplo n.º 1
0
        /// <summary>
        /// Removes a previously added items from a subscription.
        /// </summary>
        private void UndoAddItems()
        {
            try
            {
                if (mItems_ != null)
                {
                    mSubscription_.RemoveItems(mItems_);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                mItems_ = null;
            }

            // move to add items panel.
            backBtn_.Enabled     = true;
            nextBtn_.Enabled     = true;
            cancelBtn_.Visible   = true;
            doneBtn_.Visible     = false;
            optionsBtn_.Visible  = true;
            browseCtrl_.Visible  = true;
            itemsCtrl_.Visible   = true;
            resultsCtrl_.Visible = false;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Removes a previously added items from a subscription.
        /// </summary>
        private void UndoAddItems()
        {
            try
            {
                if (m_items != null)
                {
                    m_subscription.RemoveItems(m_items);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                m_items = null;
            }

            // move to add items panel.
            BackBTN.Enabled     = true;
            NextBTN.Enabled     = true;
            CancelBTN.Visible   = true;
            DoneBTN.Visible     = false;
            OptionsBTN.Visible  = true;
            BrowseCTRL.Visible  = true;
            ItemsCTRL.Visible   = true;
            ResultsCTRL.Visible = false;
        }
        /// <summary>
        /// Edits items in the specified subscription.
        /// </summary>
        private void EditItem(TreeNode node, TsCDaSubscription subscription, TsCDaItem item)
        {
            try
            {
                // save existing item id.
                OpcItem itemId = new OpcItem(item);

                TsCDaItem[] items = new ItemListEditDlg().ShowDialog(new TsCDaItem[] { item }, false, false);

                if (items == null)
                {
                    return;
                }

                // modify an existing item.
                if (itemId.Key == items[0].Key)
                {
                    subscription.ModifyItems((int)TsCDaStateMask.All, items);
                }

                // add/remove item because the item id changed.
                else
                {
                    items = subscription.AddItems(items);
                    subscription.RemoveItems(new OpcItem[] { itemId });
                }

                node.Text = items[0].ItemName;
                node.Tag  = items[0];
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
 /// <summary>
 /// Remove an item in the specified subscription.
 /// </summary>
 private void RemoveItem(TreeNode node, TsCDaSubscription subscription, TsCDaItem item)
 {
     try
     {
         subscription.RemoveItems(new OpcItem[] { item });
         node.Remove();
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
        /// <summary>
        /// Edits items in the specified subscription.
        /// </summary>
        private void EditItems(TreeNode node, TsCDaSubscription subscription)
        {
            try
            {
                // save item ids to detect item id changes.
                OpcItem[] itemIDs = new OpcItem[subscription.Items.Length];

                for (int ii = 0; ii < itemIDs.Length; ii++)
                {
                    itemIDs[ii] = new OpcItem(subscription.Items[ii]);
                }

                // edit the items.
                TsCDaItem[] items = new ItemListEditDlg().ShowDialog(subscription.Items, false, false);

                if (items == null)
                {
                    return;
                }

                // separate the items in lists depending on whether item id changed.
                ArrayList insertItems = new ArrayList();
                ArrayList updateItems = new ArrayList();
                ArrayList deleteItems = new ArrayList();

                for (int ii = 0; ii < itemIDs.Length; ii++)
                {
                    if (items[ii].Key != itemIDs[ii].Key)
                    {
                        insertItems.Add(items[ii]);
                        deleteItems.Add(itemIDs[ii]);
                    }
                    else
                    {
                        updateItems.Add(items[ii]);
                    }
                }

                // update existing items.
                if (updateItems.Count > 0)
                {
                    subscription.ModifyItems((int)TsCDaStateMask.All, (TsCDaItem[])updateItems.ToArray(typeof(TsCDaItem)));
                }

                // insert new items.
                if (insertItems.Count > 0)
                {
                    subscription.AddItems((TsCDaItem[])insertItems.ToArray(typeof(TsCDaItem)));
                }

                // delete old items.
                if (deleteItems.Count > 0)
                {
                    subscription.RemoveItems((OpcItem[])deleteItems.ToArray(typeof(OpcItem)));
                }

                // update tree.
                node.Nodes.Clear();

                foreach (TsCDaItem item in subscription.Items)
                {
                    AddItem(node, item);
                }

                node.Expand();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }