I'll fiddle around with it and remove some of the redundancy.

Methods, like I use more centrally and have been working well.

findRowIndex(labelField, labelValue);
findRowIndices(fieldName, labelValues);


-Mark


On Thu, May 2, 2013 at 11:44 PM, Alex Harui <aha...@adobe.com> wrote:

> Hey Mark,
>
> Do you think it is worth trying to have all of these APIs call a common
> function?  I think I'm seeing the same code more than once.
>
>
> On 5/2/13 4:48 PM, "mkess...@apache.org" <mkess...@apache.org> wrote:
>
> > Updated Branches:
> >   refs/heads/develop 7d20cec89 -> 3053c3295
> >
> >
> > FLEX-33524: Added convenience feature to enable/disable buttons in a
> > ButtonBar/TabBar.
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
> > Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/3053c329
> > Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/3053c329
> > Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/3053c329
> >
> > Branch: refs/heads/develop
> > Commit: 3053c3295e6c14b291e2aa5a947b1d88e9650a6f
> > Parents: 7d20cec
> > Author: Mark Kessler <kesslerconsult...@gmail.com>
> > Authored: Thu May 2 19:41:46 2013 -0400
> > Committer: Mark Kessler <kesslerconsult...@gmail.com>
> > Committed: Thu May 2 19:44:51 2013 -0400
> >
> > ----------------------------------------------------------------------
> >  .../components/supportClasses/ButtonBarBase.as     |  198
> ++++++++++++++-
> >  1 files changed, 197 insertions(+), 1 deletions(-)
> > ----------------------------------------------------------------------
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/3053c329/frameworks/proje
> > cts/spark/src/spark/components/supportClasses/ButtonBarBase.as
> > ----------------------------------------------------------------------
> > diff --git
> >
> a/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.
> > as
> >
> b/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.
> > as
> > index 233a210..b41504e 100644
> > ---
> >
> a/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.
> > as
> > +++
> >
> b/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.
> > as
> > @@ -513,7 +513,203 @@ public class ButtonBarBase extends ListBase
> >      //  Methods
> >      //
> >
> >
> //--------------------------------------------------------------------------
> > -
> > +
> > +    /**
> > +    *  Disable a ButtonBar's Button referencing it by the
> ButtonBarbutton's
> > <code>label</code>.
> > +    *
> > +    *  <p>The function takes a single argument which is the
> ButtonBarButtons
> > label.</p>
> > +    *  <pre>myButtonBar.disableButton("My Button Label")</pre>
> > +    *
> > +    *  @param labelValue Is the ButtonBarButton label
> > +    *  @param fieldName Field used for comparing the label
> > +    *
> > +    *  @langversion 3.0
> > +    *  @playerversion Flash 11.1
> > +    *  @playerversion AIR 3.4
> > +    *  @productversion Flex 4.10
> > +    */
> > +    public function disableButton(labelValue:String, fieldName:String =
> > ""):void
> > +    {
> > +        var btnCurrent:ButtonBarButton = null;
> > +        var buttonIndex:int = -1;
> > +
> > +
> > +        if (!dataGroup || labelValue == "" || labelValue == null)
> > +        {
> > +            return;
> > +        }
> > +
> > +        if (fieldName == "" || fieldName == null)
> > +        {
> > +            buttonIndex = findRowIndex(labelField, labelValue);
> > +        }
> > +        else
> > +        {
> > +            buttonIndex = findRowIndex(fieldName, labelValue);
> > +        }
> > +
> > +        if (buttonIndex == -1)
> > +        {
> > +            return;
> > +        }
> > +
> > +
> > +        btnCurrent = dataGroup.getElementAt(buttonIndex) as
> ButtonBarButton;
> > +        btnCurrent.enabled = false;
> > +    }
> > +
> > +
> > +    /**
> > +    *  Disables several of a ButtonBar's Buttons, referencing them by
> the
> > ButtonBarbutton's <code>label</code>.
> > +    *
> > +    *  <p>The function takes a single argument which is the
> ButtonBarButtons
> > label.</p>
> > +    *  <pre>myButtonBar.disableButtons(["My Button Label1", "My
> > Label2"])</pre>
> > +    *
> > +    *  @param labelValues Is an array of ButtonBarButton labels.
> > +    *  @param fieldName Field used for comparing the label
> > +    *
> > +    *  @langversion 3.0
> > +    *  @playerversion Flash 11.1
> > +    *  @playerversion AIR 3.4
> > +    *  @productversion Flex 4.10
> > +    */
> > +    public function disableButtons(labelValues:Array, fieldName:String =
> > ""):void
> > +    {
> > +        var btnCurrent:ButtonBarButton = null;
> > +        var buttonIndices:Array;
> > +        var indicesTotal:uint = 0;
> > +        var loopingIndex:uint = 0;
> > +
> > +
> > +        if (!dataGroup || labelValues.length < 1 || labelValues == null)
> > +        {
> > +            return;
> > +        }
> > +
> > +        if (fieldName == "" || fieldName == null)
> > +        {
> > +            buttonIndices = findRowIndices(labelField, labelValues);
> > +        }
> > +        else
> > +        {
> > +            buttonIndices = findRowIndices(fieldName, labelValues);
> > +        }
> > +
> > +
> > +        indicesTotal = buttonIndices.length
> > +
> > +        if (indicesTotal == 0)
> > +        {
> > +            return;
> > +        }
> > +
> > +
> > +        for (loopingIndex; loopingIndex < indicesTotal; loopingIndex++)
> > +        {
> > +            btnCurrent =
> dataGroup.getElementAt(buttonIndices[loopingIndex])
> > as ButtonBarButton;
> > +            btnCurrent.enabled = false;
> > +        }
> > +    }
> > +
> > +
> > +    /**
> > +    *  Enable a ButtonBar's Button referencing it by the
> ButtonBarbutton's
> > <code>label</code>.
> > +    *
> > +    *  <p>The function takes a single argument which is the
> ButtonBarButtons
> > label.</p>
> > +    *  <pre>myButtonBar.enableButton("My Button Label")</pre>
> > +    *
> > +    *  @param labelValue Is the ButtonBarButton label
> > +    *  @param fieldName Field used for comparing the label
> > +    *
> > +    *  @langversion 3.0
> > +    *  @playerversion Flash 11.1
> > +    *  @playerversion AIR 3.4
> > +    *  @productversion Flex 4.10
> > +    */
> > +    public function enableButton(labelValue:String, fieldName:String =
> > ""):void
> > +    {
> > +        var btnCurrent:ButtonBarButton = null;
> > +        var buttonIndex:int = -1;
> > +
> > +
> > +        if (!dataGroup || labelValue == "" || labelValue == null)
> > +        {
> > +            return;
> > +        }
> > +
> > +        if (fieldName == "" || fieldName == null)
> > +        {
> > +            buttonIndex = findRowIndex(labelField, labelValue);
> > +        }
> > +        else
> > +        {
> > +            buttonIndex = findRowIndex(fieldName, labelValue);
> > +        }
> > +
> > +        if (buttonIndex == -1)
> > +        {
> > +            return;
> > +        }
> > +
> > +
> > +        btnCurrent = dataGroup.getElementAt(buttonIndex) as
> ButtonBarButton;
> > +        btnCurrent.enabled = true;
> > +    }
> > +
> > +
> > +    /**
> > +    *  Disables several of a ButtonBar's Buttons, referencing them by
> the
> > ButtonBarbutton's <code>label</code>.
> > +    *
> > +    *  <p>The function takes a single argument which is the
> ButtonBarButtons
> > label.</p>
> > +    *  <pre>myButtonBar.enableButtons(["My Button Label1", "My
> > Label2"])</pre>
> > +    *
> > +    *  @param labelValues Is an array of ButtonBarButton labels.
> > +    *  @param fieldName Field used for comparing the label
> > +    *
> > +    *  @langversion 3.0
> > +    *  @playerversion Flash 11.1
> > +    *  @playerversion AIR 3.4
> > +    *  @productversion Flex 4.10
> > +    */
> > +    public function enableButtons(labelValues:Array, fieldName:String =
> > ""):void
> > +    {
> > +        var btnCurrent:ButtonBarButton = null;
> > +        var buttonIndices:Array;
> > +        var indicesTotal:uint = 0;
> > +        var loopingIndex:uint = 0;
> > +
> > +
> > +        if (!dataGroup || labelValues.length < 1 || labelValues == null)
> > +        {
> > +            return;
> > +        }
> > +
> > +        if (fieldName == "" || fieldName == null)
> > +        {
> > +            buttonIndices = findRowIndices(labelField, labelValues);
> > +        }
> > +        else
> > +        {
> > +            buttonIndices = findRowIndices(fieldName, labelValues);
> > +        }
> > +
> > +
> > +        indicesTotal = buttonIndices.length
> > +
> > +        if (indicesTotal == 0)
> > +        {
> > +            return;
> > +        }
> > +
> > +
> > +        for (loopingIndex; loopingIndex < indicesTotal; loopingIndex++)
> > +        {
> > +            btnCurrent =
> dataGroup.getElementAt(buttonIndices[loopingIndex])
> > as ButtonBarButton;
> > +            btnCurrent.enabled = true;
> > +        }
> > +    }
> > +
> > +
> >      /**
> >       *  @private
> >       */
> >
>
> --
> Alex Harui
> Flex SDK Team
> Adobe Systems, Inc.
> http://blogs.adobe.com/aharui
>
>

Reply via email to