Funny you mention the styling thing.  Initially I was doing that on
the instance.  But that didn't settle well with me as a) I know how
much setStyle is in terms of performance costs and b) like you pointed
out, it overrides any instance's styles set in MXML.  

But I did find the article which is basically what you advise about
doing a static style initialization method. 
http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=skinstyle_149_7.html

Thanks for the input on that.  As for the casting thing.  I guess its
just an old habit.  As for the super.setStyle, that was part of the
old, poorly coded styling for this custom component.

I have since updated the source (as of last night) to fix most of
those issues.

--- In [email protected], "Michael Schmalle"
<[EMAIL PROTECTED]> wrote:
>
> Ah, another thing;
> 
> There is no need to cast this;
> 
> var tg:Number = Number(getStyle("titleGap"));
> 
> If the style is not set, it will automajically be NaN that you can
test for.
> 
> Why do you call super?
> 
> super.setStyle("borderSkin", FieldSetBorder);
> 
> 
> No need to.
> 
> I wouldn't call a layout method from a setter;
> 
> title  ::
> 
> layoutChrome(unscaledWidth, unscaledHeight);
> 
> 
> With that property, do this.
> 
> public function set title (value:String):void
> {
>     if (value != _title)
>     {
>         _title = value;
>         titleChanged = true;
>         // text updates first in commitProperties()
>         invalidateProperties();
>         // now that you have set text, layoutChrome() will be called
>         // from this invalidatin
>         invalidateDisplayList();
>     }
> }
> 
> override protected function commitProperties():void
> {
>     super.commitProperties()
> 
>     if (titleChanged)
>     {
>         if (_titleTextField)
>             _titleTextField.text = _title;
>         titleChanged = false;
>     }
> }
> 
> 
> Peace, Mike
> 
> 
> On 5/1/07, Michael Schmalle <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > Just some advice from a fellow component dev.
> >
> >             protected function setDefaultStyles ():void {
> >                     
> >                     var tg:Number = getStyle("titleGap");
> >                     if (!isNaN(tg))
> >                             _titleGap = tg;
> >
> >                             
> >                     setStyle("titleGap", _titleGap);
> >                     
> >                     setStyle("borderStyle", "solid");
> >             setStyle("borderSkin", FieldSetBorder);
> >
> >
> >             }
> >
> > I wouldn't use set style in your class. If some one wants to
override that
> > style in a TypeSelector, they can't
> >
> > IE
> >
> > FieldSet {
> >    titleGap:30;
> > }
> >
> > Since you already committed it on the instance, it's stuck without
calling
> > setStyle() or clearStyle().
> >
> > Try creating a static loader when the class is loaded, create the
> > TypeSelector FieldSet and create a default factory.
> >
> > IE
> >
> >
> >     /**
> >      * @private
> >      */
> >     private static var stylesInited:Boolean = initStyles();
> >
> >     /**
> >      * @private
> >      */
> >     private static function initStyles():Boolean
> >     {
> >         var styles:CSSStyleDeclaration =
> >             StyleManager.getStyleDeclaration(FieldSet');
> >
> >         if (!selector)
> >         {
> >             styles= new CSSStyleDeclaration();
> >             StyleManager.setStyleDeclaration('FieldSet', styles,
false);
> >         }
> >
> >         styles.defaultFactory = function():void
> >         {
> >             this.titleGap= 10;
> >             this.borderStyle = "solid";
> >         }
> >
> >         return true;
> >     }
> >
> > I use a factory class to give me a new selector. Saves you from
having to
> > write it over and over again.
> >
> > IE
> >
> >         var styles:CSSStyleDeclaration =
> >             FSCollectionDefaults.createSelector("FormItemFX");
> >
> > Peace, Mike
> >
> > On 5/1/07, jwopitz < [EMAIL PROTECTED]> wrote:
> > >
> > >   The source is now up there.  You can use SVN to get the latest
from
> > > the repository: *http*://jwopitz- lib.googlecode.com/svn/trunk/
> > >
> > > This is the link to view it in your browser:
> > > http://jwopitz-lib.googlecode.com/svn/
> > >
> > > On 5/1/07, Bjorn Schultheiss < [EMAIL PROTECTED]> wrote:
> > > >
> > > > Hey jwoptiz,
> > > >
> > > > Is it possible to get the source for this component.
> > > > I've noticed the swc on google code, but i'm more after the
source as
> > > > files.
> > > >
> > > > I plan to use it on an existing project and extend it further,
with
> > > > functionality such as drag and drop support.
> > > >
> > > >
> > > > Regards,
> > > >
> > > > Bjorn Schultheiss
> > > > Senior Developer
> > > >
> > > > Personalised Communication Power
> > > >
> > > > Level 2, 31 Coventry St.
> > > > South Melbourne 3205,
> > > > VIC Australia
> > > >
> > > > T:  +61 3 9674 7400
> > > > F:  +61 3 9645 9160
> > > > W:   http://www.qdc.net.au
> > > >
> > > > ((------------This transmission is confidential and intended
solely
> > > > for the person or organization to whom it is addressed. It may
contain
> > > > privileged and confidential information. If you are not the
intended
> > > > recipient, you should not copy, distribute or take any action
in reliance on
> > > > it. If you believe you received this transmission in error,
please notify
> > > > the sender.---------------))
> > > >
> > > >
> > > > http://www.geocitie s.com/jwopitz/portfolio/ tileCanvas/
> > > > TileCanvasTest. swf
> > > >
> > > > Any comments, constructive criticism, etc. are appreciated. It is
> > > > still a work in progress.
> > > >
> > > > I need to work on a few things:
> > > > - better drag/drop functionality
> > > > - data accommodations from other components
> > > >
> > > > Once I get my code base straightened out, I will post the
source as
> > > > well.
> > > >
> > > > Thanks,
> > > > jwopitz
> > > >
> > > > [EMAIL PROTECTED] com <jwopitz%40gmail.com>
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > justin w. opitz
> > > 617.771.6639
> > > jwopitz(at)gmail.com
> > >
> > >  
> > >
> >
> >
> >
> > --
> > Teoti Graphix
> > http://www.teotigraphix.com
> >
> > Blog - Flex2Components
> > http://www.flex2components.com
> >
> > You can find more by solving the problem then by 'asking the
question'.
> >
> 
> 
> 
> -- 
> Teoti Graphix
> http://www.teotigraphix.com
> 
> Blog - Flex2Components
> http://www.flex2components.com
> 
> You can find more by solving the problem then by 'asking the question'.
>


Reply via email to