/// <summary>
        /// Let the view prepare itself for RemoteObjects. This will add "ComputerName" to the
        /// table columns.
        /// </summary>
        /// <param name="so"></param>
        internal override void PrepareForRemoteObjects(PSObject so)
        {
            Diagnostics.Assert(so != null, "so cannot be null");

            // make sure computername property exists.
            Diagnostics.Assert(so.Properties[RemotingConstants.ComputerNameNoteProperty] != null,
                               "PrepareForRemoteObjects cannot be called when the object does not contain ComputerName property.");

            if ((dataBaseInfo != null) && (dataBaseInfo.view != null) && (dataBaseInfo.view.mainControl != null))
            {
                // dont change the original format definition in the database..just make a copy and work
                // with the copy
                _tableBody = (TableControlBody)this.dataBaseInfo.view.mainControl.Copy();

                TableRowItemDefinition cnRowDefinition = new TableRowItemDefinition();
                PropertyTokenBase      propToken       = new FieldPropertyToken();
                propToken.expression = new ExpressionToken(RemotingConstants.ComputerNameNoteProperty, false);
                cnRowDefinition.formatTokenList.Add(propToken);
                _tableBody.defaultDefinition.rowItemDefinitionList.Add(cnRowDefinition);

                // add header only if there are other header definitions
                if (_tableBody.header.columnHeaderDefinitionList.Count > 0)
                {
                    TableColumnHeaderDefinition cnHeaderDefinition = new TableColumnHeaderDefinition();
                    cnHeaderDefinition.label      = new TextToken();
                    cnHeaderDefinition.label.text = RemotingConstants.ComputerNameNoteProperty;
                    _tableBody.header.columnHeaderDefinitionList.Add(cnHeaderDefinition);
                }
            }
        }
示例#2
0
        private void LoadHeadersSection(TableControlBody tableBody, XmlNode headersNode)
        {
            using (this.StackFrame(headersNode))
            {
                int columnIndex = 0;
                foreach (XmlNode n in headersNode.ChildNodes)
                {
                    if (MatchNodeName(n, XmlTags.TableColumnHeaderNode))
                    {
                        TableColumnHeaderDefinition chd = LoadColumnHeaderDefinition(n, columnIndex++);

                        if (chd != null)
                        {
                            tableBody.header.columnHeaderDefinitionList.Add(chd);
                        }
                        else
                        {
                            //Error at XPath {0} in file {1}: Column header definition is invalid; all headers are discarded.
                            this.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.InvalidColumnHeader, ComputeCurrentXPath(), FilePath));
                            tableBody.header.columnHeaderDefinitionList = null;
                            return; // fatal error
                        }
                    }
                    else
                    {
                        this.ProcessUnknownNode(n);
                    }
                }
                // NOTICE: the list can be empty if no entries were found
            }
        }
示例#3
0
 internal TableControlColumnHeader(TableColumnHeaderDefinition colheaderdefinition)
 {
     if (colheaderdefinition.label != null)
     {
         this._label = colheaderdefinition.label.text;
     }
     this._alignment = (System.Management.Automation.Alignment) colheaderdefinition.alignment;
     this._width = colheaderdefinition.width;
 }
示例#4
0
        internal override void PrepareForRemoteObjects(PSObject so)
        {
            PSPropertyInfo local1 = so.Properties[RemotingConstants.ComputerNameNoteProperty];

            if (((base.dataBaseInfo != null) && (base.dataBaseInfo.view != null)) && (base.dataBaseInfo.view.mainControl != null))
            {
                this.tableBody = (TableControlBody)base.dataBaseInfo.view.mainControl.Copy();
                TableRowItemDefinition item  = new TableRowItemDefinition();
                PropertyTokenBase      base2 = new FieldPropertyToken {
                    expression = new ExpressionToken(RemotingConstants.ComputerNameNoteProperty, false)
                };
                item.formatTokenList.Add(base2);
                this.tableBody.defaultDefinition.rowItemDefinitionList.Add(item);
                if (this.tableBody.header.columnHeaderDefinitionList.Count > 0)
                {
                    TableColumnHeaderDefinition definition2 = new TableColumnHeaderDefinition {
                        label = new TextToken()
                    };
                    definition2.label.text = RemotingConstants.ComputerNameNoteProperty;
                    this.tableBody.header.columnHeaderDefinitionList.Add(definition2);
                }
            }
        }
示例#5
0
        private TableColumnHeaderDefinition LoadColumnHeaderDefinition(XmlNode columnHeaderNode, int index)
        {
            using (this.StackFrame(columnHeaderNode, index))
            {
                TableColumnHeaderDefinition chd = new TableColumnHeaderDefinition();

                bool labelNodeFound     = false; // cardinality 0..1
                bool widthNodeFound     = false; // cardinality 0..1
                bool alignmentNodeFound = false; // cardinality 0..1

                foreach (XmlNode n in columnHeaderNode.ChildNodes)
                {
                    if (MatchNodeNameWithAttributes(n, XmlTags.LabelNode))
                    {
                        if (labelNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return(null); // fatal error
                        }

                        labelNodeFound = true;
                        chd.label      = LoadLabel(n);
                        if (chd.label == null)
                        {
                            return(null); // fatal error
                        }
                    }
                    else if (MatchNodeName(n, XmlTags.WidthNode))
                    {
                        if (widthNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return(null); // fatal error
                        }

                        widthNodeFound = true;
                        int wVal;
                        if (ReadPositiveIntegerValue(n, out wVal))
                        {
                            chd.width = wVal;
                        }
                        else
                        {
                            //Error at XPath {0} in file {1}: Invalid {2} value.
                            this.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.InvalidNodeValue, ComputeCurrentXPath(), FilePath, XmlTags.WidthNode));
                            return(null); //fatal error
                        }
                    }
                    else if (MatchNodeName(n, XmlTags.AlignmentNode))
                    {
                        if (alignmentNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return(null); // fatal error
                        }

                        alignmentNodeFound = true;
                        if (!LoadAlignmentValue(n, out chd.alignment))
                        {
                            return(null); // fatal error
                        }
                    }
                    else
                    {
                        this.ProcessUnknownNode(n);
                    }
                }
                return(chd);
            }
        }
示例#6
0
 private TableColumnHeaderDefinition LoadColumnHeaderDefinition(System.Xml.XmlNode columnHeaderNode, int index)
 {
     using (base.StackFrame(columnHeaderNode, index))
     {
         TableColumnHeaderDefinition definition = new TableColumnHeaderDefinition();
         bool flag = false;
         bool flag2 = false;
         bool flag3 = false;
         foreach (System.Xml.XmlNode node in columnHeaderNode.ChildNodes)
         {
             if (base.MatchNodeNameWithAttributes(node, "Label"))
             {
                 if (flag)
                 {
                     base.ProcessDuplicateNode(node);
                     return null;
                 }
                 flag = true;
                 definition.label = this.LoadLabel(node);
                 if (definition.label == null)
                 {
                     return null;
                 }
             }
             else if (base.MatchNodeName(node, "Width"))
             {
                 int num;
                 if (flag2)
                 {
                     base.ProcessDuplicateNode(node);
                     return null;
                 }
                 flag2 = true;
                 if (!this.ReadPositiveIntegerValue(node, out num))
                 {
                     base.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.InvalidNodeValue, new object[] { base.ComputeCurrentXPath(), base.FilePath, "Width" }));
                     return null;
                 }
                 definition.width = num;
             }
             else if (base.MatchNodeName(node, "Alignment"))
             {
                 if (flag3)
                 {
                     base.ProcessDuplicateNode(node);
                     return null;
                 }
                 flag3 = true;
                 if (!this.LoadAlignmentValue(node, out definition.alignment))
                 {
                     return null;
                 }
             }
             else
             {
                 base.ProcessUnknownNode(node);
             }
         }
         return definition;
     }
 }
示例#7
0
 private void LoadHeadersSectionFromObjectModel(TableControlBody tableBody, List<TableControlColumnHeader> headers)
 {
     foreach (TableControlColumnHeader header in headers)
     {
         TableColumnHeaderDefinition item = new TableColumnHeaderDefinition();
         if (!string.IsNullOrEmpty(header.Label))
         {
             TextToken token = new TextToken {
                 text = header.Label
             };
             item.label = token;
         }
         item.width = header.Width;
         item.alignment = (int) header.Alignment;
         tableBody.header.columnHeaderDefinitionList.Add(item);
     }
 }
示例#8
0
        /// <summary>
        /// Load the headers defined for columns
        /// </summary>
        /// <param name="tableBody"></param>
        /// <param name="headers"></param>
        private void LoadHeadersSectionFromObjectModel(TableControlBody tableBody, List<TableControlColumnHeader> headers)
        {
            foreach (TableControlColumnHeader header in headers)
            {
                TableColumnHeaderDefinition chd = new TableColumnHeaderDefinition();

                // Contains:
                //   Label     --- Label     cardinality 0..1
                //   Width     --- Width     cardinality 0..1
                //   Alignment --- Alignment cardinality 0..1
                if (!String.IsNullOrEmpty(header.Label))
                {
                    TextToken tt = new TextToken();
                    tt.text = header.Label;
                    chd.label = tt;
                }

                chd.width = header.Width;
                chd.alignment = (int)header.Alignment;
                tableBody.header.columnHeaderDefinitionList.Add(chd);
            }
        }
 internal TableControlColumnHeader(TableColumnHeaderDefinition colheaderdefinition)
 {
     if (colheaderdefinition.label != null)
     {
         Label = colheaderdefinition.label.text;
     }
     Alignment = (Alignment)colheaderdefinition.alignment;
     Width = colheaderdefinition.width;
 }
        private TableHeaderInfo GenerateTableHeaderInfoFromDataBaseInfo(PSObject so)
        {
            TableHeaderInfo thi = new TableHeaderInfo();

            bool dummy;
            List <TableRowItemDefinition> activeRowItemDefinitionList = GetActiveTableRowDefinition(_tableBody, so, out dummy);

            thi.hideHeader   = this.HideHeaders;
            thi.repeatHeader = this.RepeatHeader;

            int col = 0;

            foreach (TableRowItemDefinition rowItem in activeRowItemDefinitionList)
            {
                TableColumnInfo             ci        = new TableColumnInfo();
                TableColumnHeaderDefinition colHeader = null;
                if (_tableBody.header.columnHeaderDefinitionList.Count > 0)
                {
                    colHeader = _tableBody.header.columnHeaderDefinitionList[col];
                }

                if (colHeader != null)
                {
                    ci.width     = colHeader.width;
                    ci.alignment = colHeader.alignment;
                    if (colHeader.label != null)
                    {
                        ci.label = this.dataBaseInfo.db.displayResourceManagerCache.GetTextTokenString(colHeader.label);
                    }
                }

                if (ci.alignment == TextAlignment.Undefined)
                {
                    ci.alignment = rowItem.alignment;
                }

                if (ci.label == null)
                {
                    FormatToken token = null;
                    if (rowItem.formatTokenList.Count > 0)
                    {
                        token = rowItem.formatTokenList[0];
                    }
                    if (token != null)
                    {
                        FieldPropertyToken fpt = token as FieldPropertyToken;
                        if (fpt != null)
                        {
                            ci.label = fpt.expression.expressionValue;
                        }
                        else
                        {
                            TextToken tt = token as TextToken;
                            if (tt != null)
                            {
                                ci.label = this.dataBaseInfo.db.displayResourceManagerCache.GetTextTokenString(tt);
                            }
                        }
                    }
                    else
                    {
                        ci.label = string.Empty;
                    }
                }

                thi.tableColumnInfoList.Add(ci);
                col++;
            }

            return(thi);
        }
示例#11
0
        /// <summary>
        /// Let the view prepare itself for RemoteObjects. This will add "ComputerName" to the 
        /// table columns.
        /// </summary>
        /// <param name="so"></param>
        internal override void PrepareForRemoteObjects(PSObject so)
        {
            Diagnostics.Assert(null != so, "so cannot be null");

            // make sure computername property exists.
            Diagnostics.Assert(null != so.Properties[RemotingConstants.ComputerNameNoteProperty],
                "PrepareForRemoteObjects cannot be called when the object does not contain ComputerName property.");

            if ((dataBaseInfo != null) && (dataBaseInfo.view != null) && (dataBaseInfo.view.mainControl != null))
            {
                // dont change the original format definition in the database..just make a copy and work
                // with the copy
                _tableBody = (TableControlBody)this.dataBaseInfo.view.mainControl.Copy();

                TableRowItemDefinition cnRowDefinition = new TableRowItemDefinition();
                PropertyTokenBase propToken = new FieldPropertyToken();
                propToken.expression = new ExpressionToken(RemotingConstants.ComputerNameNoteProperty, false);
                cnRowDefinition.formatTokenList.Add(propToken);
                _tableBody.defaultDefinition.rowItemDefinitionList.Add(cnRowDefinition);

                // add header only if there are other header definitions
                if (_tableBody.header.columnHeaderDefinitionList.Count > 0)
                {
                    TableColumnHeaderDefinition cnHeaderDefinition = new TableColumnHeaderDefinition();
                    cnHeaderDefinition.label = new TextToken();
                    cnHeaderDefinition.label.text = RemotingConstants.ComputerNameNoteProperty;
                    _tableBody.header.columnHeaderDefinitionList.Add(cnHeaderDefinition);
                }
            }
        }
示例#12
0
        private TableHeaderInfo GenerateTableHeaderInfoFromDataBaseInfo(PSObject so)
        {
            bool            flag;
            TableHeaderInfo info = new TableHeaderInfo();
            List <TableRowItemDefinition> list = this.GetActiveTableRowDefinition(this.tableBody, so, out flag);

            info.hideHeader = this.HideHeaders;
            int num = 0;

            foreach (TableRowItemDefinition definition in list)
            {
                TableColumnInfo             item        = new TableColumnInfo();
                TableColumnHeaderDefinition definition2 = null;
                if (this.tableBody.header.columnHeaderDefinitionList.Count > 0)
                {
                    definition2 = this.tableBody.header.columnHeaderDefinitionList[num];
                }
                if (definition2 != null)
                {
                    item.width     = definition2.width;
                    item.alignment = definition2.alignment;
                    if (definition2.label != null)
                    {
                        item.label = base.dataBaseInfo.db.displayResourceManagerCache.GetTextTokenString(definition2.label);
                    }
                }
                if (item.alignment == 0)
                {
                    item.alignment = definition.alignment;
                }
                if (item.label == null)
                {
                    FormatToken token = null;
                    if (definition.formatTokenList.Count > 0)
                    {
                        token = definition.formatTokenList[0];
                    }
                    if (token != null)
                    {
                        FieldPropertyToken token2 = token as FieldPropertyToken;
                        if (token2 != null)
                        {
                            item.label = token2.expression.expressionValue;
                        }
                        else
                        {
                            TextToken tt = token as TextToken;
                            if (tt != null)
                            {
                                item.label = base.dataBaseInfo.db.displayResourceManagerCache.GetTextTokenString(tt);
                            }
                        }
                    }
                    else
                    {
                        item.label = "";
                    }
                }
                info.tableColumnInfoList.Add(item);
                num++;
            }
            return(info);
        }
示例#13
0
        private TableColumnHeaderDefinition LoadColumnHeaderDefinition(XmlNode columnHeaderNode, int index)
        {
            using (this.StackFrame(columnHeaderNode, index))
            {
                TableColumnHeaderDefinition chd = new TableColumnHeaderDefinition();

                bool labelNodeFound = false; // cardinality 0..1
                bool widthNodeFound = false; // cardinality 0..1
                bool alignmentNodeFound = false; // cardinality 0..1

                foreach (XmlNode n in columnHeaderNode.ChildNodes)
                {
                    if (MatchNodeNameWithAttributes(n, XmlTags.LabelNode))
                    {
                        if (labelNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return null; // fatal error
                        }

                        labelNodeFound = true;
                        chd.label = LoadLabel(n);
                        if (chd.label == null)
                        {
                            return null; // fatal error
                        }
                    }
                    else if (MatchNodeName(n, XmlTags.WidthNode))
                    {
                        if (widthNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return null; // fatal error
                        }

                        widthNodeFound = true;
                        int wVal;
                        if (ReadPositiveIntegerValue(n, out wVal))
                        {
                            chd.width = wVal;
                        }
                        else
                        {
                            //Error at XPath {0} in file {1}: Invalid {2} value.
                            this.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.InvalidNodeValue, ComputeCurrentXPath(), FilePath, XmlTags.WidthNode));
                            return null; //fatal error
                        }
                    }
                    else if (MatchNodeName(n, XmlTags.AlignmentNode))
                    {
                        if (alignmentNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return null; // fatal error
                        }

                        alignmentNodeFound = true;
                        if (!LoadAlignmentValue(n, out chd.alignment))
                        {
                            return null; // fatal error
                        }
                    }
                    else
                    {
                        this.ProcessUnknownNode(n);
                    }
                } // foreach
                return chd;
            } // using
        }
示例#14
0
 internal override void PrepareForRemoteObjects(PSObject so)
 {
     PSPropertyInfo local1 = so.Properties[RemotingConstants.ComputerNameNoteProperty];
     if (((base.dataBaseInfo != null) && (base.dataBaseInfo.view != null)) && (base.dataBaseInfo.view.mainControl != null))
     {
         this.tableBody = (TableControlBody) base.dataBaseInfo.view.mainControl.Copy();
         TableRowItemDefinition item = new TableRowItemDefinition();
         PropertyTokenBase base2 = new FieldPropertyToken {
             expression = new ExpressionToken(RemotingConstants.ComputerNameNoteProperty, false)
         };
         item.formatTokenList.Add(base2);
         this.tableBody.defaultDefinition.rowItemDefinitionList.Add(item);
         if (this.tableBody.header.columnHeaderDefinitionList.Count > 0)
         {
             TableColumnHeaderDefinition definition2 = new TableColumnHeaderDefinition {
                 label = new TextToken()
             };
             definition2.label.text = RemotingConstants.ComputerNameNoteProperty;
             this.tableBody.header.columnHeaderDefinitionList.Add(definition2);
         }
     }
 }