RadioButton

Deprecation Warning! The content below is only applicable for use within deprecated 1.x versions of CA Agile Central's App SDK. Use of the component(s) and/or code on this page is not supported. To develop custom apps within our current environments, please see App SDK 2.0 documentation.

The RadioButton component provides an easy way to create a single stateful radio button and label within a table or another custom layout.

radio

RadioButton includes the following topics:

Create a radio button

First include the App SDK JavaScript:

<script type="text/javascript" src="/apps/[version]/sdk.js"></script>

Instantiate a new RadioButton:

var radiobutton = new rally.sdk.ui.basic.RadioButton(config);

The parameters for rally.sdk.ui.basic.RadioButton are as follows:

Parameter Description Example
config* A configuration object { value: "isDaisy", label: "Daisy", groupName: "flowers" }
  * = required parameter

The RadioButton configuration object supports the following properties:

Parameter Description
groupName A name used to group a set of radio buttons.
Only one radio button in the group can be selected at a given time.
checked Specify whether the radio button should be checked by default.
showLabel If showLabel is true then the label will be shown. Defaults to true if label is specified, false otherwise.
label The text for the description that will be placed next to the radio button (default = value).
labelPosition Specify where the label will be displayed. Valid positions are: "before", "after" (default = "before").
value* A value to be associated with the radio button.
rememberChecked Persist the checked status as the default for future sessions (default = true).
  * = required parameter

Display a radio button

Once created, use the display method to display the radio button:

radiobutton.display(domElement, onChanged);

Parameter Description Example
domElement* The element in which to display the radio button. This may be either an element or an element ID. "radioButtonSpan", document.getElementById("radioButtonSpan")
onChanged A callback function that will be executed each time the radio button is checked. function onChanged(sender, eventArgs)
   var radioButtonValue = eventArgs.value;
   var checked = eventArgs.checked;
}
  * = required parameter

Public methods

Method Name Parameters Description Example
display See above - See above
destroy - Removes the component from the app radiobutton.destroy();
getChecked - Returns whether the radio button is checked var checked = radiobutton.getChecked();
getComponentValue - Same as getChecked; provides a consistent interface for retrieving the value of basic components var checked = radioButton.getComponentValue();
setChecked checked Checks the radio button radiobutton.setChecked(true);
setComponentValue checked Same as setChecked; provides a consistent interface for setting the value of basic components radioButton.setComponentValue(true);
getValue - Returns the value as specified in the constructor config var value = radiobutton.getValue();
getValidEvents - Returns an object containing the valid events for radio button var events = radiobutton.getValidEvents();

Events

Events are used to notify consumers of a component when actions occur. The following methods are provided in order to interact with this component's events:

Method Parameters Description Example
addEventListener eventName*, listener*, scope Registers the specified listener with the component's queue for the specified event and returns an object which can be used to remove the event listener later. The listener parameter should be a function with two parameters: 1) the component that fired the event; 2) an eventArgs object with properties specific to the event being fired. This function will be called by the component when the event occurs. If the optional scope parameter was specified the function will be called on that object (like scope.listener(sender, args);). function listener(sender, eventArgs) {     //Respond to event
}
var eventObj =
component.addEventListener(eventName,
listener);
removeEventListener eventObj* Unregisters the specified event from the component.
The eventObj parameter should be the return value of addEventListener() when the listener was originally registered.
var eventObj =
component.addEventListener(...);
component.removeEventListener(eventObj);
getValidEvents - Returns an object with a property for each event name supported by the component. This is useful for passing as the first parameter to addEventListener(). var eventName = component.getValidEvents().onClick;
  * = required parameter

The RadioButton component supports the following events:

Event Name Description Event Arguments Example
onChange Fired when the radio button is checked The eventArgs object passed to any event listeners contains the following properties:
value: The value of the radio button as specified in its constructor config.
checked: true if the radio button is checked, false otherwise.
function onRadioButtonChanged(radiobutton, eventArgs) {
   var value = eventArgs.value;
   var checked = eventArgs.checked;
}
radiobutton.addEventListener("onChange",
  onRadioButtonChanged);

Example

Copy and paste the following into a CA Agile Central custom app page.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Copyright (c) 2010-2011 CA Agile Central Software Development Corp. All rights reserved -->
<html>
<head>
   <title>RadioButton in a Table Example</title>
   <meta name="Name" content="Component Example: RadioButton in a Table" />
   <meta name="Version" content="2010.4" />
   <meta name="Vendor" content="CA Agile Central Software" />
   <script type="text/javascript" src="/apps/1.26/sdk.js"></script>
   <script type="text/javascript">

    function tableExample() {

       function dataCallback(results) {
         var componentItems = [];

         rally.forEach(results.stories, function(item) {
           var componentItem = {};
           componentItem.radiobutton = new
           rally.sdk.ui.basic.RadioButton({value:item._ref, groupName:"artifacts"});
          componentItem.id = item.FormattedID;
          componentItem.name = item.Name;
           componentItems.push(componentItem);

         var tableConfig = {
           columns:[
             {key: 'radiobutton', header: "Choose", width: 50},
             {key: 'id', header: "ID", width: 50},
             {key: 'name', header: "Name", width: 300}
          ],
          items: componentItems
         };

         var table = new rally.sdk.ui.Table(tableConfig);

         table.addEventListener(table.getValidEvents().onCellClick, function(t, args) {
           console.log(args.data.getValue());
         });
         table.display("tableDiv");
      });
       }

       var config = {
         key: "stories",
        type: "hierarchicalrequirement",
        fetch: "Name,FormattedID"
       };

       var rallyDataSource = new rally.sdk.data.CA Agile CentralDataSource('__WORKSPACE_OID__',
                  
                  '__PROJECT_OID__',
                '__PROJECT_SCOPING_UP__',
                 '__PROJECT_SCOPING_DOWN__');

       rallyDataSource.find(config, dataCallback);
    }

    rally.addOnLoad(tableExample);

   </script>
</head>
<body>
   <div id="tableDiv"></div>
</body>
</html>

Feedback

Need more help? The CA Agile Central Community is your one-stop shop for self-service and support. To submit feedback or cases to CA Agile Central Support, find answers, and collaborate with others, please join us in the CA Agile Central Community.