コード例 #1
0
        internal static ControlBody ResolveControlReference(TypeInfoDataBase db, List <ControlDefinition> viewControlDefinitionList,
                                                            ControlReference controlReference)
        {
            // first tri to resolve the reference at the view level
            ControlBody controlBody = ResolveControlReferenceInList(controlReference,
                                                                    viewControlDefinitionList);

            if (controlBody != null)
            {
                return(controlBody);
            }

            // fall back to the global definitions
            return(ResolveControlReferenceInList(controlReference, db.formatControlDefinitionHolder.controlDefinitionList));
        }
コード例 #2
0
 private static ControlBody ResolveControlReferenceInList(ControlReference controlReference,
                                                          List <ControlDefinition> controlDefinitionList)
 {
     foreach (ControlDefinition x in controlDefinitionList)
     {
         if (x.controlBody.GetType() != controlReference.controlType)
         {
             continue;
         }
         if (String.Compare(controlReference.name, x.name, StringComparison.OrdinalIgnoreCase) == 0)
         {
             return(x.controlBody);
         }
     }
     return(null);
 }
コード例 #3
0
        private bool ExecuteFormatControl(TraversalInfo level, ControlBase control, PSObject so, List <FormatValue> formatValueList)
        {
            ComplexControlBody complexBody      = null;
            ControlReference   controlReference = control as ControlReference;

            if ((controlReference != null) && (controlReference.controlType == typeof(ComplexControlBody)))
            {
                complexBody = DisplayDataQuery.ResolveControlReference(this.db, this.controlDefinitionList, controlReference) as ComplexControlBody;
            }
            else
            {
                complexBody = control as ComplexControlBody;
            }
            if (complexBody != null)
            {
                this.ExecuteFormatControlBody(level, so, complexBody, formatValueList);
                return(true);
            }
            return(false);
        }
コード例 #4
0
 internal bool ProcessNode(System.Xml.XmlNode n)
 {
     if (this._loader.MatchNodeName(n, "CustomControl"))
     {
         this._control = this._loader.LoadComplexControl(n);
         return true;
     }
     if (this._loader.MatchNodeName(n, "CustomControlName"))
     {
         string mandatoryInnerText = this._loader.GetMandatoryInnerText(n);
         if (mandatoryInnerText == null)
         {
             return false;
         }
         ControlReference reference = new ControlReference {
             name = mandatoryInnerText,
             controlType = typeof(ComplexControlBody)
         };
         this._control = reference;
         return true;
     }
     PSTraceSource.NewInvalidOperationException();
     return false;
 }
コード例 #5
0
 internal bool ProcessNode(XmlNode n)
 {
     if (_loader.MatchNodeName(n, XmlTags.ComplexControlNode))
     {
         // load an embedded complex control
         _control = _loader.LoadComplexControl(n);
         return true;
     }
     else if (_loader.MatchNodeName(n, XmlTags.ComplexControlNameNode))
     {
         string name = _loader.GetMandatoryInnerText(n);
         if (name == null)
         {
             return false;
         }
         ControlReference controlRef = new ControlReference();
         controlRef.name = name;
         controlRef.controlType = typeof(ComplexControlBody);
         _control = controlRef;
         return true;
     }
     // this should never happen if the API is used correctly
     PSTraceSource.NewInvalidOperationException();
     return false;
 }
コード例 #6
0
ファイル: typeDataQuery.cs プロジェクト: dfinke/powershell
 private static ControlBody ResolveControlReferenceInList(ControlReference controlReference,
                                 List<ControlDefinition> controlDefinitionList)
 {
     foreach (ControlDefinition x in controlDefinitionList)
     {
         if (x.controlBody.GetType() != controlReference.controlType)
             continue;
         if (String.Compare(controlReference.name, x.name, StringComparison.OrdinalIgnoreCase) == 0)
             return x.controlBody;
     }
     return null;
 }
コード例 #7
0
ファイル: typeDataQuery.cs プロジェクト: dfinke/powershell
        internal static ControlBody ResolveControlReference(TypeInfoDataBase db, List<ControlDefinition> viewControlDefinitionList,
                                                            ControlReference controlReference)
        {
            // first tri to resolve the reference at the view level
            ControlBody controlBody = ResolveControlReferenceInList(controlReference,
                viewControlDefinitionList);
            if (controlBody != null)
                return controlBody;

            // fall back to the global definitions
            return ResolveControlReferenceInList(controlReference, db.formatControlDefinitionHolder.controlDefinitionList);
        }
コード例 #8
0
        internal static ControlBody ResolveControlReference(TypeInfoDataBase db, List <ControlDefinition> viewControlDefinitionList, ControlReference controlReference)
        {
            ControlBody body = ResolveControlReferenceInList(controlReference, viewControlDefinitionList);

            if (body != null)
            {
                return(body);
            }
            return(ResolveControlReferenceInList(controlReference, db.formatControlDefinitionHolder.controlDefinitionList));
        }
コード例 #9
0
ファイル: DisplayDataQuery.cs プロジェクト: nickchal/pash
 private static ControlBody ResolveControlReferenceInList(ControlReference controlReference, List<ControlDefinition> controlDefinitionList)
 {
     foreach (ControlDefinition definition in controlDefinitionList)
     {
         if (!(definition.controlBody.GetType() != controlReference.controlType) && (string.Compare(controlReference.name, definition.name, StringComparison.OrdinalIgnoreCase) == 0))
         {
             return definition.controlBody;
         }
     }
     return null;
 }
コード例 #10
0
ファイル: DisplayDataQuery.cs プロジェクト: nickchal/pash
 internal static ControlBody ResolveControlReference(TypeInfoDataBase db, List<ControlDefinition> viewControlDefinitionList, ControlReference controlReference)
 {
     ControlBody body = ResolveControlReferenceInList(controlReference, viewControlDefinitionList);
     if (body != null)
     {
         return body;
     }
     return ResolveControlReferenceInList(controlReference, db.formatControlDefinitionHolder.controlDefinitionList);
 }