[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
RE: [ve-dev] RE: Sweet BeanInfo for SWT
 | 
Title: Message
Thurs & fris are bad for me... Post some notes and I 
can add comments if you'd like -- I'd hate to get in the way of a 
discussion.
 
Have fun!
-- Scott
  
  
   
  
    Given the way SUN's introspector is 
    implemented today, we will have to compromise with some tactical solution 
    for the short term (v1.0.0 of VE), while pursuing a proper extension of 
    BeanInfo to support the above through a JSR (at minimum available in JDK 
    1.6).   If we are to use a tactical solution, it should be one that 
    will work with any JRE implementation, and one that is very specific, and 
    easy to implement for SWT.  
  I 
  have no problem with this.
  
     To accelerate this discussion so that we can start and drive forward 
    with VE 1.0.0 I intend to set up a conf. call to iterate some more on this 
    topic.  At a minimum it will be great if Joe, Dave, and Scott would be 
    available for this discussion. 
  This 
  sounds like a good idea to me as long as we have someone keep meeting minutes 
  and post those back here for everyone else's benefit.
  
    Does any one have any problem with a 2hr 
    discussion on one of the following dates: 
morning of Thur. 3/4/04 
morning of Fri     
     4/4/04 
  I'm 
  fine with both of these so long as we're done by 11:00 AM 
  CST.
   
   
  Regards,
   
  Dave
  
    
------------
Dr. Gili 
    Mendel
IBM
Software Development
RTP Raleigh, NC
(919)543 6408, 
    tie: 441 6408
    
      
      
        Dave Orme 
          <DaveO@xxxxxxxxxxxxxxx>  Sent by: ve-dev-admin@xxxxxxxxxxx 
          03/02/2004 09:07 AM 
            
         | 
          
            
            
              | 
                 To 
               | "'ve-dev@xxxxxxxxxxx'" <ve-dev@xxxxxxxxxxx> 
             |  
              | 
                 cc 
               | 
             |  
              | 
                 Subject 
               | RE: [ve-dev] RE: 
                Sweet BeanInfo for SWT |    
          
  | 
(Please correct me if I'm wrong, but the point 
    of the code below was that I think it addresses all of the issues you 
    raised.  Yes?) 
-----Original 
    Message-----
From: Dave Orme [mailto:DaveO@xxxxxxxxxxxxxxx] 
    
Sent: Tuesday, March 02, 2004 7:58 AM
To: 
    've-dev@xxxxxxxxxxx'
Subject: RE: [ve-dev] RE: Sweet BeanInfo for 
    SWT
  
>There are 3 kinds of "properties" you have to deal with in 
    SWT: 
 
>- Traditional JavaBeans properties 
    
>- Style bit 
    properties 
>- Public fields 
 
>The idea with the current spec is to 
    define a way that lets the builder treat all 3 the same as much as 
    possible. 
 
>I'm not sure I see a good reason here to abandon 
    this? 
The 
    thinking is that a java.beans.PropertyDescriptor assumes there is a get 
    and/or set method associated.  With a field or constructor style bit 
    there isn't.   What we're trying to do with BeanInfo is to describe 
    things that the builder tool can use, so having a 
    java.beans.PropertyDescriptor doesn't mean it belongs on the property sheet 
    - it means there is a get and/or set method that the tool knows how to show 
    and set values for.   
This is true in 
    the abstract, but in reality a bunch of things that have public fields do 
    wind up on the property sheet in one form or another.  I'm thinking of 
    org.eclipse.swt.Point and org.eclipse.swt.Rectangle off the top of my 
    head. 
  
So the original idea with Sweet was to make it possible for the tool 
    to be able to deal with all of these things that need to be represented on 
    the property sheet uniformly as much as possible. 
  
While I follow 
    and agree with your argument from a pragmatic point of view, my concern is 
    that I don't want us to lose track of this from the big picture 
    perspective. 
 <snip/> Therefore - I 
    still think that the features should be on the BeanDescriptor rather than 
    overload the java.beans.PropertyDescriptor.  I'd hate to see a new 
    release of java.beans.PropertyDescriptor kill us. 
      
I agree here. 
  
    
Can you describe the issues with 
    extending FeatureDescriptor more fully?  The intent underlying the 
    original Sweet specification / implementation was that individual BeanInfo 
    classes would use java.beans.Introspector as-is, then manually massage them 
    into the state they needed to be.  So, here's how ButtonComponentInfo 
    might look if the style bit property were added by creating a new 
    StylePropertyDescriptor that extends FeatureDescriptor: 
  
  
public class ButtonComponentInfo extends 
    OverrideComponentInfo  // which extends SimpleBeanInfo  { 
    
public ButtonComponentInfo() { 
    
      // 
    Introspect JavaBeans properties, etc, using java.beans.Introspector 
      
      // 
    This automatically gets us all the standard java.beans-compliant properties 
    and events 
    
      super(Button.class); 
  
      BeanDescriptor bd = 
    getBeanDescriptor(); 
  
      // Set the icons 
    
      
    bd.setValue("iconURLs", 
  
            new Object[] { 
              new 
    Integer(BeanInfo.ICON_COLOR_16x16), 
              
    getClass().getResource("icons/Button.gif"), 
              new 
    Integer(BeanInfo.ICON_MONO_16x16), 
              
    getClass().getResource("icons/ButtonMono.gif") 
          } 
      ); 
  
    
      // Set the palette page 
      bd.setValue("categories", "Basic"); 
    
  
      // StylePropertyDescriptor extends 
    FeatureDescriptor 
  
        StylePropertyDescriptor stylePropertyDescriptor = new 
    StylePropertyDescriptor(); 
    
     stylePropertyDescriptor.setValue("isStyleBit", new Boolean(true)); 
      
  
      // We'll use the grouping structure you 
    proposed... 
     styleValues = new Object[][] { 
    
     "style"  , new Object[] { 
    
         "arrow" , "org.eclipse.swt.SWT.ARROW" , new 
    Integer(SWT.ARROW) , 
         "push" , 
    "org.eclipse.swt.SWT.PUSH" , new Integer(SWT.PUSH), 
      
       "toggle" , "org.eclipse.swt.SWT.TOGGLE" , new 
    Integer(SWT.TOGGLE) , 
         "flat" , 
    "org.eclipse.swt.SWT.FLAT" , new Integer(SWT.FLAT) , 
    
         "radio" , "org.eclipse.swt.SWT.RADIO" , new 
    Integer(SWT.RADIO) } , 
     "alignment" , new Object[] { 
    
         "left" , "org.eclipse.swt.SWT.LEFT" , 
    new Integer(SWT.LEFT) , 
         "right" , 
    "org.eclipse.swt.SWT.RIGHT" , new Integer(SWT.RIGHT) , 
    
         "center" , "org.eclipse.swt.SWT.CENTER" , new 
    Integer(SWT.CENTER)  } , 
     "arrowDirection", new 
    Object[] { 
         "up" , 
    "org.eclipse.swt.SWT.UP" , new Integer(SWT.UP)   , 
    
         "left" , "org.eclipse.swt.SWT.LEFT" , new 
    Integer(SWT.LEFT)  , 
         "right" , 
    "org.eclipse.swt.SWT.RIGHT" , new Integer(SWT.RIGHT)  } , 
  
       } ; 
    
     stylePropertyDescriptor.setStyleValues(styleValues);   
    
  
  
        // Method added in OverrideComponentInfo... 
      
    setStylePropertyDescriptor(stylePropertyDescriptor);
 } 
    
} 
  
Also - you mention public 
    fields.  The only ones I can think of off hand are things like RowData, 
    GridData, FormData, Rectangle or Point.  These are basically data 
    structures that SWT uses elsewhere (i.e. in layout managers or controls). 
     For actual subclasses of org.eclipse.swt.widgets.Widget are there any 
    public fields that the VE has to be aware of in its model ?   
Not that I can think of right now.  Does 
    anyone else know of any?  However, I don't think this changes the fact 
    that we need to find a suitable way to represent these...  I think 
    we're still going to want to be able to expand the fields of the Rectangle 
    object contained in a Bounds property and let the user edit the individual 
    fields individually in the property sheet. 
  
  
Regards, 
  
Dave