<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hello Miguel<br>
    <br>
    Will fix those up tomorrow and send the fixes.&nbsp; I had almost all the
    arrays fixed and then lost them in doing all the updates on Saturday
    and Sunday and have not had the time to go back through them. <br>
    <br>
    &nbsp;Started changing some of the methods to get parameters and was not
    sure that was right so decided not to touch them in case that caused
    you guys more work.&nbsp; So thanks for pointing that out.&nbsp; Will go
    through those as well.<br>
    <br>
    When I do a pull to update the sources it does not allow it so I
    copy to a diff file, do a stash and then later re-apply the diff by
    hand.&nbsp; My first time using git so maybe I am missing a way to do
    this automatically.<br>
    <br>
    Thanks for the pointers.<br>
    <br>
    Kenneth<br>
    <br>
    On 11/30/10 4:50 PM, Miguel de Icaza wrote:
    <blockquote
      cite="mid:AANLkTin53RW=j0AVRs0ZB+CbWZaHy+KwLW__vNV1Z+pp@mail.gmail.com"
      type="cite">Hello,
      <div><br>
        <div>
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
              0.8ex; border-left: 1px solid rgb(204, 204, 204);
              padding-left: 1ex;">
              <div text="#000000" bgcolor="#ffffff">The sample shows how
                to use the NSPredicateEditor within a program and uses
                the NSMetadataQuery to query SpotLight for a list of
                names corresponding to the Predicates from your Address
                Book.<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>A reminder: we never expose the underlying arrays as
              NSArray, instead we expose them as NSObject [] in the weak
              cases, and as NSMostDerived [] most of the time to get the
              advantage of strong typing.</div>
            <div><br>
            </div>
            <div>In particular in the NSPredicate code, you need to fix:</div>
            <div><br>
            </div>
            <div>TemplateViews return value - Also, it needs to become a
              property</div>
            <div>PredicateWithSubpredicates - with the proper strong
              type parameter</div>
            <div>DisplaableSubpredicatesOfPredicate - Strongly type
              return</div>
            <div>Constructors - arguments are weakly typed NSArrays</div>
            <div>LeftExpressions, Rightexpressions - array types and
              must be properties,</div>
            <div>RighExpressionAttributeType - must become a property</div>
            <div>Modifier - must become a property</div>
            <div>Operators - must become a property and become strongly
              typed</div>
            <div>Options - strongly type and become a property, and
              explore whether ti can be turned into an int [1]</div>
            <div>CompoundTypes - array type</div>
            <div>TemplatesWithAttributeKeyPathsInEntityDescription -
              both the array type issue and the name should be C#-ified</div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>NSRuleEditor:</div>
            <div>CriteriaForRow - array type</div>
            <div>InsertRowAtIndexeWithTypeasBlaBlaBla - Shorten to be
              C#-like, not be a clone of the ObjC aapi</div>
            <div><br>
            </div>
            <div>NSRuleEditorDelegate:</div>
            <div><br>
            </div>
            <div>The lesson here is that the signature of the methods is
              required in Objective-C as people mix a lot of responders
              in the same file so they need to be unique, and they kind
              of become unique by using the prefix of the class, but
              this is not necessary in MonoMac. &nbsp; You would use these as
              events, so the name must make sense as an event. &nbsp; For
              example:</div>
            <div><br>
            </div>
            <div>RuleEditorNumberOfChildrenForCriteriorWithRowType
              really is merely a compressed name of 3 parameters in
              ObjC: the first which is the prefix and we do not care
              about, the second is the actual oepration, and the third
              is the paramter. &nbsp; So this really should become&nbsp;</div>
            <div><br>
              int NumberOfChildren (NSRuleEditor ruleEditor, NSObject
              forCriterion, NSRuleEditorRowType withRowType)</div>
            <div><br>
            </div>
            <div>[1] In general, uints are not CLS-compliant, which
              means that some languages have trouble accessing those
              APIs, we need to explore whether a Flags or int is
              sufficient in those cases.</div>
            <div><br>
            </div>
            <div>NSPredicateEditor:</div>
            <div>RowTemplates - array type</div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>