Ejemplo n.º 1
0
 public override void WriteXml(XmlWriter writer)
 {
     if (this._id != null)
     {
         writer.WriteAttributeString("Id", this._id);
     }
     if (this._previousContainer != null)
     {
         ILayoutPaneSerializable layoutPaneSerializable = this._previousContainer as ILayoutPaneSerializable;
         if (layoutPaneSerializable != null)
         {
             writer.WriteAttributeString("PreviousContainerId", layoutPaneSerializable.Id);
         }
     }
     base.WriteXml(writer);
 }
Ejemplo n.º 2
0
        protected virtual void FixupLayout(LayoutRoot layout)
        {
            int i;

            foreach (ILayoutPreviousContainer layoutPreviousContainer in
                     from lc in layout.Descendents().OfType <ILayoutPreviousContainer>()
                     where lc.PreviousContainerId != null
                     select lc)
            {
                ILayoutPaneSerializable layoutPaneSerializable = layout.Descendents().OfType <ILayoutPaneSerializable>().FirstOrDefault <ILayoutPaneSerializable>((ILayoutPaneSerializable lps) => lps.Id == layoutPreviousContainer.PreviousContainerId);
                if (layoutPaneSerializable == null)
                {
                    throw new ArgumentException(string.Format("Unable to find a pane with id ='{0}'", layoutPreviousContainer.PreviousContainerId));
                }
                layoutPreviousContainer.PreviousContainer = layoutPaneSerializable as ILayoutContainer;
            }
            LayoutAnchorable[] array = (
                from lc in layout.Descendents().OfType <LayoutAnchorable>()
                where lc.Content == null
                select lc).ToArray <LayoutAnchorable>();
            for (i = 0; i < (int)array.Length; i++)
            {
                LayoutAnchorable content          = array[i];
                LayoutAnchorable layoutAnchorable = null;
                if (content.ContentId != null)
                {
                    layoutAnchorable = this._previousAnchorables.FirstOrDefault <LayoutAnchorable>((LayoutAnchorable a) => a.ContentId == content.ContentId);
                }
                if (this.LayoutSerializationCallback != null)
                {
                    LayoutSerializationCallbackEventArgs layoutSerializationCallbackEventArg = new LayoutSerializationCallbackEventArgs(content, (layoutAnchorable != null ? layoutAnchorable.Content : null));
                    this.LayoutSerializationCallback(this, layoutSerializationCallbackEventArg);
                    if (layoutSerializationCallbackEventArg.Cancel)
                    {
                        content.Close();
                    }
                    else if (layoutSerializationCallbackEventArg.Content != null)
                    {
                        content.Content = layoutSerializationCallbackEventArg.Content;
                    }
                    else if (layoutSerializationCallbackEventArg.Model.Content != null)
                    {
                        content.Hide(false);
                    }
                }
                else if (layoutAnchorable != null)
                {
                    content.Content    = layoutAnchorable.Content;
                    content.IconSource = layoutAnchorable.IconSource;
                }
                else
                {
                    content.Hide(false);
                }
            }
            LayoutDocument[] layoutDocumentArray = (
                from lc in layout.Descendents().OfType <LayoutDocument>()
                where lc.Content == null
                select lc).ToArray <LayoutDocument>();
            for (i = 0; i < (int)layoutDocumentArray.Length; i++)
            {
                LayoutDocument layoutDocument  = layoutDocumentArray[i];
                LayoutDocument layoutDocument1 = null;
                if (layoutDocument.ContentId != null)
                {
                    layoutDocument1 = this._previousDocuments.FirstOrDefault <LayoutDocument>((LayoutDocument a) => a.ContentId == layoutDocument.ContentId);
                }
                if (this.LayoutSerializationCallback != null)
                {
                    LayoutSerializationCallbackEventArgs layoutSerializationCallbackEventArg1 = new LayoutSerializationCallbackEventArgs(layoutDocument, (layoutDocument1 != null ? layoutDocument1.Content : null));
                    this.LayoutSerializationCallback(this, layoutSerializationCallbackEventArg1);
                    if (layoutSerializationCallbackEventArg1.Cancel)
                    {
                        layoutDocument.Close();
                    }
                    else if (layoutSerializationCallbackEventArg1.Content != null)
                    {
                        layoutDocument.Content = layoutSerializationCallbackEventArg1.Content;
                    }
                    else if (layoutSerializationCallbackEventArg1.Model.Content != null)
                    {
                        layoutDocument.Close();
                    }
                }
                else if (layoutDocument1 != null)
                {
                    layoutDocument.Content = layoutDocument1.Content;
                }
                else
                {
                    layoutDocument.Close();
                }
            }
            layout.CollectGarbage();
        }
Ejemplo n.º 3
0
        public virtual void WriteXml(XmlWriter writer)
        {
            bool   isSelected;
            double floatingLeft;

            if (!string.IsNullOrWhiteSpace(this.Title))
            {
                writer.WriteAttributeString("Title", this.Title);
            }
            if (this.IsSelected)
            {
                isSelected = this.IsSelected;
                writer.WriteAttributeString("IsSelected", isSelected.ToString());
            }
            if (this.IsLastFocusedDocument)
            {
                isSelected = this.IsLastFocusedDocument;
                writer.WriteAttributeString("IsLastFocusedDocument", isSelected.ToString());
            }
            if (!string.IsNullOrWhiteSpace(this.ContentId))
            {
                writer.WriteAttributeString("ContentId", this.ContentId);
            }
            if (this.ToolTip != null && this.ToolTip is string && !string.IsNullOrWhiteSpace((string)this.ToolTip))
            {
                writer.WriteAttributeString("ToolTip", (string)this.ToolTip);
            }
            if (this.FloatingLeft != 0)
            {
                floatingLeft = this.FloatingLeft;
                writer.WriteAttributeString("FloatingLeft", floatingLeft.ToString(CultureInfo.InvariantCulture));
            }
            if (this.FloatingTop != 0)
            {
                floatingLeft = this.FloatingTop;
                writer.WriteAttributeString("FloatingTop", floatingLeft.ToString(CultureInfo.InvariantCulture));
            }
            if (this.FloatingWidth != 0)
            {
                floatingLeft = this.FloatingWidth;
                writer.WriteAttributeString("FloatingWidth", floatingLeft.ToString(CultureInfo.InvariantCulture));
            }
            if (this.FloatingHeight != 0)
            {
                floatingLeft = this.FloatingHeight;
                writer.WriteAttributeString("FloatingHeight", floatingLeft.ToString(CultureInfo.InvariantCulture));
            }
            if (this.IsMaximized)
            {
                isSelected = this.IsMaximized;
                writer.WriteAttributeString("IsMaximized", isSelected.ToString());
            }
            if (!this.CanClose)
            {
                isSelected = this.CanClose;
                writer.WriteAttributeString("CanClose", isSelected.ToString());
            }
            if (!this.CanFloat)
            {
                isSelected = this.CanFloat;
                writer.WriteAttributeString("CanFloat", isSelected.ToString());
            }
            if (this.LastActivationTimeStamp.HasValue)
            {
                DateTime value = this.LastActivationTimeStamp.Value;
                writer.WriteAttributeString("LastActivationTimeStamp", value.ToString(CultureInfo.InvariantCulture));
            }
            if (this._previousContainer != null)
            {
                ILayoutPaneSerializable layoutPaneSerializable = this._previousContainer as ILayoutPaneSerializable;
                if (layoutPaneSerializable != null)
                {
                    writer.WriteAttributeString("PreviousContainerId", layoutPaneSerializable.Id);
                    writer.WriteAttributeString("PreviousContainerIndex", this._previousContainerIndex.ToString());
                }
            }
        }