public ControlHarnessBase(object control)
        {
            if (control is DependencyObject)
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode((DependencyObject)control))
                {
                    IsDesignTime = true;
                }
                else
                {
                    DependencyObject parent = VisualTreeHelper.GetParent((DependencyObject)control);

                    while (parent != null && _parent == null)
                    {
                        if (parent is IActivityContainer)
                            _parent = (IActivityContainer)parent;
                        else
                            parent = VisualTreeHelper.GetParent(parent);
                    }

                    if (_parent == null && ApplicationEx.CreatingContainer != null)
                        _parent = ApplicationEx.CreatingContainer;
                }
            }

            RegisterControl(control);
        }
Example #2
0
        private void CloseButton_Click(object sender, RoutedEventArgs e)
        {
#if SILVERLIGHT
            IActivityContainer activityContainer = ControlHarness.FindParentActivityContainer(this);

            if (activityContainer != null)
            {
                // For now, just support closing child windows, can be expanded later
                if (activityContainer is ChildWindow)
                {
                    // Probably should incorporate a dirty check at some stage, and notify the user if true?
                    var window = activityContainer as ChildWindow;
                    window.Close();
                }
            }
#elif WPF
            IActivityContainer activityContainer = ControlHarness.FindParentActivityContainer(this);

            if (activityContainer != null)
            {
                // For now, just support closing child windows, can be expanded later
                if (activityContainer is Window)
                {
                    // Probably should incorporate a dirty check at some stage, and notify the user if true?
                    var window = activityContainer as Window;
                    window.Close();
                }
            }
#endif
        }
        public ControlHarnessBase(object control)
        {
            if (control is DependencyObject)
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode((DependencyObject)control))
                {
                    IsDesignTime = true;
                }
                else
                {
                    DependencyObject parent = VisualTreeHelper.GetParent((DependencyObject)control);

                    while (parent != null && _parent == null)
                    {
                        if (parent is IActivityContainer)
                        {
                            _parent = (IActivityContainer)parent;
                        }
                        else
                        {
                            parent = VisualTreeHelper.GetParent(parent);
                        }
                    }

                    if (_parent == null && ApplicationEx.CreatingContainer != null)
                    {
                        _parent = ApplicationEx.CreatingContainer;
                    }
                }
            }

            RegisterControl(control);
        }
 public void RegisterActivity(IActivityContainer container)
 {
     if (!_openActivities.ContainsKey(container.ActivityStamp))
     {
         _openActivities.Add(container.ActivityStamp, container);
     }
 }
        public ActivityHarness(IActivityContainer container)
            : base()
        {
            this._container = container;

            if (this._container is FrameworkElement)
                _visualContainer = (FrameworkElement)container;

            if (System.ComponentModel.DesignerProperties.GetIsInDesignMode((DependencyObject)container))
                IsDesignTime = true;
        }
        public ActivityHarness(IActivityContainer container) : base()
        {
            this._container = container;

            if (this._container is FrameworkElement)
            {
                _visualContainer = (FrameworkElement)container;
            }

            if (System.ComponentModel.DesignerProperties.GetIsInDesignMode((DependencyObject)container))
            {
                IsDesignTime = true;
            }
        }
Example #7
0
        public ControlHarness(object control)
        {
            _control = control;

            if (control is DependencyObject)
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode((DependencyObject)control))
                {
                    IsDesignTime = true;
                }
                else
                {
                    _activityContainer = FindParentActivityContainer(control);
                }
            }

            RegisterControl(control);
        }
        public ControlHarness(object control)
        {
            _control = control;

            if (control is DependencyObject)
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode((DependencyObject)control))
                {
                    IsDesignTime = true;
                }
                else
                {
                    _activityContainer = FindParentActivityContainer(control);
                }
            }

            RegisterControl(control);
        }
Example #9
0
 partial void ShowActivityContainer(IActivityContainer ac)
 {
     if (ac is ChildWindowEx)
     {
         ChildWindowEx window = ac as ChildWindowEx;
         window.Show();
     }
     else if (ac is PageEx || ac is UserControlEx)
     {
         if (ActivityHostFrame != null)
         {
             ActivityHostFrame.Content = ac;
         }
     }
     else
     {
         SetRootVisual(ac as Control);
     }
 }
Example #10
0
        partial void ShowActivityContainer(IActivityContainer ac)
        {
            if (ac is WindowEx)
            {
                WindowEx window = ac as WindowEx;
                window.Show();
            }

            /*
             * else if (ac is PageEx || ac is UserControlEx)
             * {
             * if (ActivityHostFrame != null)
             * {
             *  ActivityHostFrame.Content = ac;
             * }
             * } */
            else
            {
                SetRootVisual(ac as Control);
            }
        }
Example #11
0
        /// <summary>
        /// Auto register myself with parent IActivityContainer.
        /// Might need to traverse the display list upwards until found one
        /// </summary>
        private void RegisterWithParentActivityContainer()
        {
            FrameworkElement   parent          = this.Parent as FrameworkElement;
            IActivityContainer parentContainer = null;

            while (parentContainer == null && parent != null)
            {
                if (parent is IActivityContainer)
                {
                    parentContainer = parent as IActivityContainer;
                }
                else
                {
                    parent = parent.Parent as FrameworkElement;
                }
            }

            if (parentContainer != null)
            {
                parentContainer.RegisterControl(this);
            }
        }
        public void RequestActivity(IActivityContainer container, string activity, string style, int initialKey, ServerApplicationService.ResponseCallBackDelegate callBack)
        {
            var xml = new XElement(Common.Requests.ActivityCreate);

            xml.SetAttributeValue(Common.ActivityName, activity);

            if (style == null)
            {
                style = string.Empty;
            }

            xml.SetAttributeValue(Common.ActivityStyle, style);

            if (initialKey > 0)
            {
                xml.SetAttributeValue(Common.InitialKey, initialKey.ToString());
            }

            container.AppendDataPublicationsToActivityRequest(xml);

            ServerApplicationService.SendRequestToServerPortal(xml, callBack);
        }
Example #13
0
        internal static IActivityContainer FindParentActivityContainer(object control)
        {
            IActivityContainer activityContainer = null;
            DependencyObject   parent            = VisualTreeHelper.GetParent((DependencyObject)control);

            while (parent != null && activityContainer == null)
            {
                if (parent is IActivityContainer)
                {
                    activityContainer = (IActivityContainer)parent;
                }
                else
                {
                    parent = VisualTreeHelper.GetParent(parent);
                }
            }

            if (activityContainer == null && ApplicationEx.CreatingContainer != null)
            {
                activityContainer = ApplicationEx.CreatingContainer;
            }

            return(activityContainer);
        }
 public int RegisterActivityCopy(IActivityContainer container)
 {
     _duplicateActivityCount++;
     _openActivities.Add(container.ActivityStamp + "/" + _duplicateActivityCount.ToString(), container);
     return _duplicateActivityCount;
 }
        public void RequestActivity(IActivityContainer container, string activity, string style, int initialKey, ServerApplicationService.ResponseCallBackDelegate callBack)
        {
            var xml = new XElement(Common.Requests.ActivityCreate);
            xml.SetAttributeValue(Common.ActivityName, activity);

            if (style == null)
                style = string.Empty;

            xml.SetAttributeValue(Common.ActivityStyle, style);

            if (initialKey > 0)
                xml.SetAttributeValue(Common.InitialKey, initialKey.ToString());

            container.AppendDataPublicationsToActivityRequest(xml);

            ServerApplicationService.SendRequestToServerPortal(xml, callBack);
        }
partial         void ShowActivityContainer(IActivityContainer ac);
 protected internal void ShowChildWindow(IActivityContainer ac)
 {
     ChildWindowEx window = ac as ChildWindowEx;
     window.Show();
 }
 public void SetRootVisual(IActivityContainer ac)
 {
     SetRootVisual(ac as Control);
 }
partial         void ShowActivityContainer(IActivityContainer ac)
        {
            if (ac is ChildWindowEx)
            {
                ChildWindowEx window = ac as ChildWindowEx;
                window.Show();
            }
            else if (ac is PageEx || ac is UserControlEx)
            {
                if (ActivityHostFrame != null)
                {
                    ActivityHostFrame.Content = ac;
                }
            }
            else
            {
                SetRootVisual(ac as Control);
            }
        }
 partial void ShowActivityContainer(IActivityContainer ac);
 public int RegisterActivityCopy(IActivityContainer container)
 {
     _duplicateActivityCount++;
     _openActivities.Add(container.ActivityStamp + "/" + _duplicateActivityCount.ToString(), container);
     return(_duplicateActivityCount);
 }
 public void RegisterActivity(IActivityContainer container)
 {
     if (!_openActivities.ContainsKey(container.ActivityStamp))
         _openActivities.Add(container.ActivityStamp, container);
 }
Example #23
0
 public void SetRootVisual(IActivityContainer ac)
 {
     SetRootVisual(ac as Control);
 }
Example #24
0
        protected internal void ShowChildWindow(IActivityContainer ac)
        {
            WindowEx window = ac as WindowEx;

            window.Show();
        }
        internal void PublishResponse(XDocument responseDocument)
        {
            //TODO: Refactor to fire event to UI
            if (responseDocument.Root.Attribute(Common.serverMsg) != null && !string.IsNullOrEmpty(responseDocument.Root.Attribute(Common.serverMsg).Value))
            {
                ApplicationEx.Instance.DisplayMessageBox(responseDocument.Root.Attribute(Common.serverMsg).Value, "System Broadcast Message");
            }

            //System.Diagnostics.Debug.WriteLine("PUBLISH RESPONSE:\r\n" + responseDocument.ToString());

            XNode child = responseDocument.Root.FirstNode;

            while (child != null)
            {
                if (child is XElement)
                {
                    XElement xml = (XElement)child;

                    switch (xml.Name.ToString())
                    {
                    case Common.ActivityNode:
                        IActivityContainer publishingContainer = null;
                        string             activityStamp       = xml.Attribute(Common.ActivityHandle).Value;

                        if (CurrentActivityDupIndex > 0)
                        {
                            activityStamp          += "/" + CurrentActivityDupIndex.ToString();
                            CurrentActivityDupIndex = 0;
                        }

                        // Look for the activity in myActivities Dictionary
                        if (activityStamp.Length > 0)
                        {
                            if (ApplicationEx.PickListActivity != null && ApplicationEx.PickListActivity == activityStamp)
                            {
                                ApplicationEx.PickListActivity = null;
                                ApplicationEx.PickListXml      = xml;
                            }
                            else
                            {
                                if (ApplicationEx.Instance.OpenActivities.ContainsKey(activityStamp))
                                {
                                    publishingContainer = ApplicationEx.Instance.OpenActivities[activityStamp];
                                }
                            }
                        }

                        if (publishingContainer != null)
                        {
                            publishingContainer.PublishResponse(xml);
                        }

                        break;

                    case Common.Requests.ActivityRequest:
                        try
                        {
                            ApplicationEx.Instance.CreateActivityContainer(xml);
                        }
                        catch (FormMappingNotFoundException ex)
                        {
                            throw;
                        }
                        catch (Exception ex)
                        {
                            Logging.LogException(ex);
                        }

                        break;

                    case Common.MessagesNode:
                        try
                        {
                            if (xml.FirstNode != null)
                            {
                                string message = "The following message(s) have been returned from the server:";
                                string title   = null;

                                XElement messageElt = (XElement)xml.FirstNode;

                                while (messageElt != null)
                                {
                                    message += Environment.NewLine + Environment.NewLine;
                                    message += messageElt.Value;

                                    if (message.Length == 0)
                                    {
                                        message = "An unknown error has been reported by the server.";
                                    }

                                    title = messageElt.Attribute(Common.MessageType).Value;

                                    messageElt = (XElement)messageElt.NextNode;
                                }

                                ApplicationEx.Instance.DisplayMessageBox(message, title ?? "Error");
                            }
                        }
                        catch (Exception ex)
                        {
                            Logging.LogException(ex);
                        }

                        break;

                    case Common.MenuNode:
                        //TODO what is this for?
                        break;
                    }//end-switch
                }

                child = child.NextNode;
            }
        }