/// <summary> /// Handles a change to the state of the subscription. /// </summary> void Subscription_StateChanged(Subscription subscription, SubscriptionStateChangedEventArgs e) { if (InvokeRequired) { BeginInvoke(m_SubscriptionStateChanged, subscription, e); return; } else if (!IsHandleCreated) { return; } try { // ignore notifications for other subscriptions. if (!Object.ReferenceEquals(m_subscription, subscription)) { return; } // notify controls of the change. EventsCTRL.SubscriptionChanged(e); DataChangesCTRL.SubscriptionChanged(e); MonitoredItemsCTRL.SubscriptionChanged(e); // update subscription status. UpdateStatus(); } catch (Exception exception) { GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception); } }
/// <summary> /// Displays the dialog. /// </summary> public void Show(Subscription subscription, bool useTypeModel) { if (subscription == null) { throw new ArgumentNullException("subscription"); } Show(); BringToFront(); // remove previous subscription. if (m_subscription != null) { m_subscription.StateChanged -= m_SubscriptionStateChanged; } // start receiving notifications from the new subscription. m_subscription = subscription; if (subscription != null) { m_subscription.StateChanged += m_SubscriptionStateChanged; } m_subscription = subscription; BrowseCTRL.AllowPick = true; BrowseCTRL.SetView(subscription.Session, (useTypeModel)?BrowseViewType.ObjectTypes:BrowseViewType.Objects, null); MonitoredItemsCTRL.Initialize(subscription); }
private void ApplyBTN_Click(object sender, EventArgs e) { try { MonitoredItemsCTRL.ApplyChanges(true); } catch (Exception exception) { GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception); } }
private void BrowseCTRL_ItemsSelected(object sender, NodesSelectedEventArgs e) { try { foreach (ReferenceDescription reference in e.References) { if (reference.ReferenceTypeId == ReferenceTypeIds.HasProperty || reference.IsForward) { MonitoredItemsCTRL.AddItem(reference); } } } catch (Exception exception) { GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception); } }
private void SubscriptionDlg_FormClosing(object sender, FormClosingEventArgs e) { try { if (m_createDialog != null) { m_createDialog.Close(); } MonitoredItemsCTRL.FormClosing(); } catch (Exception exception) { GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception); } }
/// <summary> /// Displays the dialog. /// </summary> public void Show(MonitoredItem monitoredItem) { if (monitoredItem == null) { throw new ArgumentNullException("monitoredItem"); } Show(); BringToFront(); // remove previous subscription. if (m_monitoredItem != null) { monitoredItem.Subscription.StateChanged -= m_SubscriptionStateChanged; monitoredItem.Subscription.PublishStatusChanged -= m_PublishStatusChanged; monitoredItem.Notification -= m_MonitoredItemNotification; } // start receiving notifications from the new subscription. m_monitoredItem = monitoredItem; m_subscription = null; if (m_monitoredItem != null) { m_subscription = monitoredItem.Subscription; m_monitoredItem.Subscription.StateChanged += m_SubscriptionStateChanged; m_monitoredItem.Subscription.PublishStatusChanged += m_PublishStatusChanged; m_monitoredItem.Notification += m_MonitoredItemNotification; } WindowMI_Click(WindowStatusMI, null); WindowMI_Click(WindowLatestValueMI, null); MonitoredItemsCTRL.Initialize(m_monitoredItem); EventsCTRL.Initialize(m_subscription, m_monitoredItem); DataChangesCTRL.Initialize(m_subscription, m_monitoredItem); LatestValueCTRL.ShowValue(m_monitoredItem, false); }
/// <summary> /// Displays the dialog. /// </summary> public void Show(Subscription subscription) { if (subscription == null) { throw new ArgumentNullException("subscription"); } Show(); BringToFront(); // remove previous subscription. if (m_subscription != null) { m_subscription.StateChanged -= m_SubscriptionStateChanged; m_subscription.PublishStatusChanged -= m_PublishStatusChanged; m_subscription.Session.Notification -= m_SessionNotification; } // start receiving notifications from the new subscription. m_subscription = subscription; if (subscription != null) { m_subscription.StateChanged += m_SubscriptionStateChanged; m_subscription.PublishStatusChanged += m_PublishStatusChanged; m_subscription.Session.Notification += m_SessionNotification; } MonitoredItemsCTRL.Initialize(subscription); EventsCTRL.Initialize(subscription, null); DataChangesCTRL.Initialize(subscription, null); WindowMI_Click(WindowDataChangesMI, null); UpdateStatus(); }