示例#1
0
 internal HeaderInfo GenerateHeaderInfo(PSObject input, OutGridViewCommand parentCmdlet)
 {
     HeaderInfo info = new HeaderInfo();
     List<MshResolvedExpressionParameterAssociation> activeAssociationList = AssociationManager.ExpandDefaultPropertySet(input, this.expressionFactory);
     if (activeAssociationList.Count > 0)
     {
         if (PSObjectHelper.ShouldShowComputerNameProperty(input))
         {
             activeAssociationList.Add(new MshResolvedExpressionParameterAssociation(null, new MshExpression(RemotingConstants.ComputerNameNoteProperty)));
         }
     }
     else
     {
         activeAssociationList = AssociationManager.ExpandAll(input);
         if (activeAssociationList.Count > 0)
         {
             AssociationManager.HandleComputerNameProperties(input, activeAssociationList);
             this.FilterActiveAssociationList(activeAssociationList);
         }
         else
         {
             activeAssociationList = new List<MshResolvedExpressionParameterAssociation>();
         }
     }
     for (int i = 0; i < activeAssociationList.Count; i++)
     {
         string staleObjectPropertyName = null;
         MshResolvedExpressionParameterAssociation association = activeAssociationList[i];
         if (association.OriginatingParameter != null)
         {
             object entry = association.OriginatingParameter.GetEntry("label");
             if (entry != AutomationNull.Value)
             {
                 staleObjectPropertyName = (string) entry;
             }
         }
         if (staleObjectPropertyName == null)
         {
             staleObjectPropertyName = association.ResolvedExpression.ToString();
         }
         Microsoft.PowerShell.Commands.ColumnInfo col = new OriginalColumnInfo(staleObjectPropertyName, staleObjectPropertyName, staleObjectPropertyName, parentCmdlet);
         info.AddColumn(col);
     }
     return info;
 }
示例#2
0
        internal HeaderInfo GenerateHeaderInfo(PSObject input, OutGridViewCommand parentCmdlet)
        {
            HeaderInfo headerInfo = new HeaderInfo();
            List <MshResolvedExpressionParameterAssociation> activeAssociationList;

            // Get properties from the default property set of the object
            activeAssociationList = AssociationManager.ExpandDefaultPropertySet(input, _expressionFactory);
            if (activeAssociationList.Count > 0)
            {
                // we got a valid set of properties from the default property set..add computername for
                // remoteobjects (if available)
                if (PSObjectHelper.ShouldShowComputerNameProperty(input))
                {
                    activeAssociationList.Add(new MshResolvedExpressionParameterAssociation(null,
                                                                                            new PSPropertyExpression(RemotingConstants.ComputerNameNoteProperty)));
                }
            }
            else
            {
                // We failed to get anything from the default property set
                activeAssociationList = AssociationManager.ExpandAll(input);
                if (activeAssociationList.Count > 0)
                {
                    // Remove PSComputerName and PSShowComputerName from the display as needed.
                    AssociationManager.HandleComputerNameProperties(input, activeAssociationList);
                    FilterActiveAssociationList(activeAssociationList);
                }
                else
                {
                    // We were unable to retrieve any properties, so we leave an empty list
                    activeAssociationList = new List <MshResolvedExpressionParameterAssociation>();
                }
            }

            for (int k = 0; k < activeAssociationList.Count; k++)
            {
                string propertyName = null;

                MshResolvedExpressionParameterAssociation association = activeAssociationList[k];

                // set the label of the column
                if (association.OriginatingParameter != null)
                {
                    object key = association.OriginatingParameter.GetEntry(FormatParameterDefinitionKeys.LabelEntryKey);
                    if (key != AutomationNull.Value)
                    {
                        propertyName = (string)key;
                    }
                }

                if (propertyName == null)
                {
                    propertyName = association.ResolvedExpression.ToString();
                }

                ColumnInfo columnInfo = new OriginalColumnInfo(propertyName, propertyName, propertyName, parentCmdlet);

                headerInfo.AddColumn(columnInfo);
            }

            return(headerInfo);
        }
示例#3
0
        internal HeaderInfo GenerateHeaderInfo(PSObject input, TableControlBody tableBody, OutGridViewCommand parentCmdlet)
        {
            HeaderInfo info = new HeaderInfo();
            bool       flag = typeof(FileSystemInfo).IsInstanceOfType(input.BaseObject);

            if (tableBody != null)
            {
                List <TableRowItemDefinition> activeTableRowDefinition = this.GetActiveTableRowDefinition(tableBody, input);
                int num = 0;
                foreach (TableRowItemDefinition definition in activeTableRowDefinition)
                {
                    Microsoft.PowerShell.Commands.ColumnInfo col = null;
                    string staleObjectPropertyName          = null;
                    TableColumnHeaderDefinition definition2 = null;
                    if (tableBody.header.columnHeaderDefinitionList.Count >= (num - 1))
                    {
                        definition2 = tableBody.header.columnHeaderDefinitionList[num];
                    }
                    if ((definition2 != null) && (definition2.label != null))
                    {
                        staleObjectPropertyName = this.typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(definition2.label);
                    }
                    FormatToken token = null;
                    if (definition.formatTokenList.Count > 0)
                    {
                        token = definition.formatTokenList[0];
                    }
                    if (token != null)
                    {
                        FieldPropertyToken token2 = token as FieldPropertyToken;
                        if (token2 != null)
                        {
                            if (staleObjectPropertyName == null)
                            {
                                staleObjectPropertyName = token2.expression.expressionValue;
                            }
                            if (token2.expression.isScriptBlock)
                            {
                                MshExpression expression = this.expressionFactory.CreateFromExpressionToken(token2.expression);
                                if (flag && staleObjectPropertyName.Equals("LastWriteTime", StringComparison.OrdinalIgnoreCase))
                                {
                                    col = new OriginalColumnInfo(staleObjectPropertyName, staleObjectPropertyName, "LastWriteTime", parentCmdlet);
                                }
                                else
                                {
                                    col = new ExpressionColumnInfo(staleObjectPropertyName, staleObjectPropertyName, expression);
                                }
                            }
                            else
                            {
                                col = new OriginalColumnInfo(token2.expression.expressionValue, staleObjectPropertyName, token2.expression.expressionValue, parentCmdlet);
                            }
                        }
                        else
                        {
                            TextToken tt = token as TextToken;
                            if (tt != null)
                            {
                                staleObjectPropertyName = this.typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(tt);
                                col = new OriginalColumnInfo(tt.text, staleObjectPropertyName, tt.text, parentCmdlet);
                            }
                        }
                    }
                    if (col != null)
                    {
                        info.AddColumn(col);
                    }
                    num++;
                }
            }
            return(info);
        }
        // Database defined types.
        internal void AddColumnsAndItem(PSObject liveObject, TableView tableView, TableControlBody tableBody)
        {
            _headerInfo = tableView.GenerateHeaderInfo(liveObject, tableBody, _parentCmdlet);

            AddColumnsAndItemEnd(liveObject);
        }
示例#5
0
        internal HeaderInfo GenerateHeaderInfo(PSObject input, TableControlBody tableBody, OutGridViewCommand parentCmdlet)
        {
            HeaderInfo headerInfo = new HeaderInfo();

            // This verification is needed because the database returns "LastWriteTime" value for file system objects
            // as strings and it is used to detect this situation and use the actual field value.
            bool fileSystemObject = typeof(FileSystemInfo).IsInstanceOfType(input.BaseObject);

            if (tableBody != null) // If the tableBody is null, the TableControlBody info was not put into the database.
            {
                // Generate HeaderInfo from the type information database.
                List <TableRowItemDefinition> activeRowItemDefinitionList = GetActiveTableRowDefinition(tableBody, input);

                int col = 0;
                foreach (TableRowItemDefinition rowItem in activeRowItemDefinitionList)
                {
                    ColumnInfo columnInfo  = null;
                    string     displayName = null;
                    TableColumnHeaderDefinition colHeader = null;
                    // Retrieve a matching TableColumnHeaderDefinition
                    if (col < tableBody.header.columnHeaderDefinitionList.Count)
                    {
                        colHeader = tableBody.header.columnHeaderDefinitionList[col];
                    }

                    if (colHeader != null && colHeader.label != null)
                    {
                        displayName = _typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(colHeader.label);
                    }

                    FormatToken token = null;
                    if (rowItem.formatTokenList.Count > 0)
                    {
                        token = rowItem.formatTokenList[0];
                    }

                    if (token != null)
                    {
                        FieldPropertyToken fpt = token as FieldPropertyToken;
                        if (fpt != null)
                        {
                            if (displayName == null)
                            {
                                // Database does not provide a label(DisplayName) for the current property, use the expression value instead.
                                displayName = fpt.expression.expressionValue;
                            }

                            if (fpt.expression.isScriptBlock)
                            {
                                PSPropertyExpression ex = _expressionFactory.CreateFromExpressionToken(fpt.expression);
                                // Using the displayName as a propertyName for a stale PSObject.
                                const string LastWriteTimePropertyName = "LastWriteTime";

                                // For FileSystem objects "LastWriteTime" property value should be used although the database indicates that a script should be executed to get the value.
                                if (fileSystemObject && displayName.Equals(LastWriteTimePropertyName, StringComparison.OrdinalIgnoreCase))
                                {
                                    columnInfo = new OriginalColumnInfo(displayName, displayName, LastWriteTimePropertyName, parentCmdlet);
                                }
                                else
                                {
                                    columnInfo = new ExpressionColumnInfo(displayName, displayName, ex);
                                }
                            }
                            else
                            {
                                columnInfo = new OriginalColumnInfo(fpt.expression.expressionValue, displayName, fpt.expression.expressionValue, parentCmdlet);
                            }
                        }
                        else
                        {
                            TextToken tt = token as TextToken;
                            if (tt != null)
                            {
                                displayName = _typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(tt);
                                columnInfo  = new OriginalColumnInfo(tt.text, displayName, tt.text, parentCmdlet);
                            }
                        }
                    }

                    if (columnInfo != null)
                    {
                        headerInfo.AddColumn(columnInfo);
                    }

                    col++;
                }
            }

            return(headerInfo);
        }
示例#6
0
 internal void AddColumnsAndItem(PSObject liveObject, TableView tableView)
 {
     this.headerInfo = tableView.GenerateHeaderInfo(liveObject, this.parentCmdlet);
     this.AddColumnsAndItemEnd(liveObject);
 }
示例#7
0
 internal void AddColumnsAndItem(PSObject liveObject)
 {
     this.headerInfo = new HeaderInfo();
     this.headerInfo.AddColumn(new ScalarTypeColumnInfo(liveObject.BaseObject.GetType()));
     this.AddColumnsAndItemEnd(liveObject);
 }
示例#8
0
 internal HeaderInfo GenerateHeaderInfo(PSObject input, TableControlBody tableBody, OutGridViewCommand parentCmdlet)
 {
     HeaderInfo info = new HeaderInfo();
     bool flag = typeof(FileSystemInfo).IsInstanceOfType(input.BaseObject);
     if (tableBody != null)
     {
         List<TableRowItemDefinition> activeTableRowDefinition = this.GetActiveTableRowDefinition(tableBody, input);
         int num = 0;
         foreach (TableRowItemDefinition definition in activeTableRowDefinition)
         {
             Microsoft.PowerShell.Commands.ColumnInfo col = null;
             string staleObjectPropertyName = null;
             TableColumnHeaderDefinition definition2 = null;
             if (tableBody.header.columnHeaderDefinitionList.Count >= (num - 1))
             {
                 definition2 = tableBody.header.columnHeaderDefinitionList[num];
             }
             if ((definition2 != null) && (definition2.label != null))
             {
                 staleObjectPropertyName = this.typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(definition2.label);
             }
             FormatToken token = null;
             if (definition.formatTokenList.Count > 0)
             {
                 token = definition.formatTokenList[0];
             }
             if (token != null)
             {
                 FieldPropertyToken token2 = token as FieldPropertyToken;
                 if (token2 != null)
                 {
                     if (staleObjectPropertyName == null)
                     {
                         staleObjectPropertyName = token2.expression.expressionValue;
                     }
                     if (token2.expression.isScriptBlock)
                     {
                         MshExpression expression = this.expressionFactory.CreateFromExpressionToken(token2.expression);
                         if (flag && staleObjectPropertyName.Equals("LastWriteTime", StringComparison.OrdinalIgnoreCase))
                         {
                             col = new OriginalColumnInfo(staleObjectPropertyName, staleObjectPropertyName, "LastWriteTime", parentCmdlet);
                         }
                         else
                         {
                             col = new ExpressionColumnInfo(staleObjectPropertyName, staleObjectPropertyName, expression);
                         }
                     }
                     else
                     {
                         col = new OriginalColumnInfo(token2.expression.expressionValue, staleObjectPropertyName, token2.expression.expressionValue, parentCmdlet);
                     }
                 }
                 else
                 {
                     TextToken tt = token as TextToken;
                     if (tt != null)
                     {
                         staleObjectPropertyName = this.typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(tt);
                         col = new OriginalColumnInfo(tt.text, staleObjectPropertyName, tt.text, parentCmdlet);
                     }
                 }
             }
             if (col != null)
             {
                 info.AddColumn(col);
             }
             num++;
         }
     }
     return info;
 }
示例#9
0
 internal void AddHeteroViewColumnsAndItem(PSObject liveObject)
 {
     this.headerInfo = new HeaderInfo();
     this.headerInfo.AddColumn(new IndexColumnInfo("IndexValue", StringUtil.Format(FormatAndOut_out_gridview.IndexColumnName, new object[0]), this.index));
     this.headerInfo.AddColumn(new ToStringColumnInfo("ToStringValue", StringUtil.Format(FormatAndOut_out_gridview.ValueColumnName, new object[0]), this.parentCmdlet));
     this.headerInfo.AddColumn(new TypeNameColumnInfo("OriginalType", StringUtil.Format(FormatAndOut_out_gridview.TypeColumnName, new object[0])));
     PSObject obj2 = this.headerInfo.AddColumnsToWindow(this, liveObject);
     this.graphicalHostReflectionWrapper.CallMethod("AddItem", new object[] { obj2 });
 }
示例#10
0
 internal void AddColumnsAndItem(PSObject liveObject)
 {
     this.headerInfo = new HeaderInfo();
     this.headerInfo.AddColumn(new ScalarTypeColumnInfo(liveObject.BaseObject.GetType()));
     this.AddColumnsAndItemEnd(liveObject);
 }
示例#11
0
 internal void AddColumnsAndItem(PSObject liveObject, TableView tableView, TableControlBody tableBody)
 {
     this.headerInfo = tableView.GenerateHeaderInfo(liveObject, tableBody, this.parentCmdlet);
     this.AddColumnsAndItemEnd(liveObject);
 }
示例#12
0
        // Hetero types.
        internal void AddHeteroViewColumnsAndItem(PSObject liveObject)
        {
            _headerInfo = new HeaderInfo();

            _headerInfo.AddColumn(new IndexColumnInfo(OutWindowProxy.IndexPropertyName,
                StringUtil.Format(FormatAndOut_out_gridview.IndexColumnName), _index));
            _headerInfo.AddColumn(new ToStringColumnInfo(OutWindowProxy.ToStringValuePropertyName,
                StringUtil.Format(FormatAndOut_out_gridview.ValueColumnName), _parentCmdlet));
            _headerInfo.AddColumn(new TypeNameColumnInfo(OutWindowProxy.OriginalTypePropertyName,
                StringUtil.Format(FormatAndOut_out_gridview.TypeColumnName)));

            // Add columns to the underlying Management list and as a byproduct get a stale PSObject.
            PSObject staleObject = _headerInfo.AddColumnsToWindow(this, liveObject);

            // Add the stale PSObject to the underlying Management list.
            _graphicalHostReflectionWrapper.CallMethod("AddItem", staleObject);
        }
示例#13
0
        // Scalar types.
        internal void AddColumnsAndItem(PSObject liveObject)
        {
            _headerInfo = new HeaderInfo();

            // On scalar types the type name is used as a column name.
            _headerInfo.AddColumn(new ScalarTypeColumnInfo(liveObject.BaseObject.GetType()));
            AddColumnsAndItemEnd(liveObject);
        }
示例#14
0
        // Types that are not defined in the database and are not scalar.
        internal void AddColumnsAndItem(PSObject liveObject, TableView tableView)
        {
            // Create a header using only the input object's properties.
            _headerInfo = tableView.GenerateHeaderInfo(liveObject, _parentCmdlet);

            AddColumnsAndItemEnd(liveObject);
        }
示例#15
0
        internal HeaderInfo GenerateHeaderInfo(PSObject input, TableControlBody tableBody, OutGridViewCommand parentCmdlet)
        {
            HeaderInfo headerInfo = new HeaderInfo();

            // This verification is needed because the database returns "LastWriteTime" value for file system objects
            // as strings and it is used to detect this situation and use the actual field value.
            bool fileSystemObject = typeof(FileSystemInfo).IsInstanceOfType(input.BaseObject);

            if (tableBody != null) // If the tableBody is null, the TableControlBody info was not put into the database.
            {
                // Generate HeaderInfo from the type information database.
                List<TableRowItemDefinition> activeRowItemDefinitionList = GetActiveTableRowDefinition(tableBody, input);

                int col = 0;
                foreach (TableRowItemDefinition rowItem in activeRowItemDefinitionList)
                {
                    ColumnInfo columnInfo = null;
                    string displayName = null;
                    TableColumnHeaderDefinition colHeader = null;
                    // Retrieve a matching TableColumnHeaderDefinition
                    if (col < tableBody.header.columnHeaderDefinitionList.Count)
                        colHeader = tableBody.header.columnHeaderDefinitionList[col];

                    if (colHeader != null && colHeader.label != null)
                    {
                        displayName = _typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(colHeader.label);
                    }

                    FormatToken token = null;
                    if (rowItem.formatTokenList.Count > 0)
                    {
                        token = rowItem.formatTokenList[0];
                    }

                    if (token != null)
                    {
                        FieldPropertyToken fpt = token as FieldPropertyToken;
                        if (fpt != null)
                        {
                            if (displayName == null)
                            {
                                // Database does not provide a label(DisplayName) for the current property, use the expression value instead.
                                displayName = fpt.expression.expressionValue;
                            }
                            if (fpt.expression.isScriptBlock)
                            {
                                MshExpression ex = _expressionFactory.CreateFromExpressionToken(fpt.expression);
                                // Using the displayName as a propertyName for a stale PSObject.
                                const string LastWriteTimePropertyName = "LastWriteTime";

                                // For FileSystem objects "LastWriteTime" property value should be used although the database indicates that a script should be executed to get the value.
                                if (fileSystemObject && displayName.Equals(LastWriteTimePropertyName, StringComparison.OrdinalIgnoreCase))
                                {
                                    columnInfo = new OriginalColumnInfo(displayName, displayName, LastWriteTimePropertyName, parentCmdlet);
                                }
                                else
                                {
                                    columnInfo = new ExpressionColumnInfo(displayName, displayName, ex);
                                }
                            }
                            else
                            {
                                columnInfo = new OriginalColumnInfo(fpt.expression.expressionValue, displayName, fpt.expression.expressionValue, parentCmdlet);
                            }
                        }
                        else
                        {
                            TextToken tt = token as TextToken;
                            if (tt != null)
                            {
                                displayName = _typeInfoDatabase.displayResourceManagerCache.GetTextTokenString(tt);
                                columnInfo = new OriginalColumnInfo(tt.text, displayName, tt.text, parentCmdlet);
                            }
                        }
                    }
                    if (columnInfo != null)
                    {
                        headerInfo.AddColumn(columnInfo);
                    }
                    col++;
                }
            }

            return headerInfo;
        }
示例#16
0
        internal HeaderInfo GenerateHeaderInfo(PSObject input, OutGridViewCommand parentCmdlet)
        {
            HeaderInfo headerInfo = new HeaderInfo();
            List<MshResolvedExpressionParameterAssociation> activeAssociationList;

            // Get properties from the default property set of the object
            activeAssociationList = AssociationManager.ExpandDefaultPropertySet(input, _expressionFactory);
            if (activeAssociationList.Count > 0)
            {
                // we got a valid set of properties from the default property set..add computername for
                // remoteobjects (if available)
                if (PSObjectHelper.ShouldShowComputerNameProperty(input))
                {
                    activeAssociationList.Add(new MshResolvedExpressionParameterAssociation(null,
                        new MshExpression(RemotingConstants.ComputerNameNoteProperty)));
                }
            }
            else
            {
                // We failed to get anything from the default property set
                activeAssociationList = AssociationManager.ExpandAll(input);
                if (activeAssociationList.Count > 0)
                {
                    // Remove PSComputerName and PSShowComputerName from the display as needed.
                    AssociationManager.HandleComputerNameProperties(input, activeAssociationList);
                    FilterActiveAssociationList(activeAssociationList);
                }
                else
                {
                    // We were unable to retrieve any properties, so we leave an empty list
                    activeAssociationList = new List<MshResolvedExpressionParameterAssociation>();
                }
            }

            for (int k = 0; k < activeAssociationList.Count; k++)
            {
                string propertyName = null;

                MshResolvedExpressionParameterAssociation association = activeAssociationList[k];

                // set the label of the column
                if (association.OriginatingParameter != null)
                {
                    object key = association.OriginatingParameter.GetEntry(FormatParameterDefinitionKeys.LabelEntryKey);
                    if (key != AutomationNull.Value)
                        propertyName = (string)key;
                }
                if (propertyName == null)
                {
                    propertyName = association.ResolvedExpression.ToString();
                }
                ColumnInfo columnInfo = new OriginalColumnInfo(propertyName, propertyName, propertyName, parentCmdlet);

                headerInfo.AddColumn(columnInfo);
            }
            return headerInfo;
        }