Thank you so much Andrew - all is revealed! Thats so kind of you to take 
the time to help a duffer like me. Works a treat.

On Tuesday, June 24, 2014 2:06:11 AM UTC+1, Andrew Gallant wrote:
>
> You need to include tableHandler and bubbleHandler inside 
> drawVisualization, so they can be in-scope for your visualization objects.  
> You can then get information about the selected item like this:
>
> function tableHandler () {
>     // get the data used by the Table
>     var dt = table.getDataTable();
>     // get the selection from the chart
>     var selection = table.getChart().getSelection();
>     // iterate over the selection (as selection is an array, and can 
> contain multiple selections if the user selected multiple rows, or 0 if the 
> user deselected all rows)
>     for (var i = 0; i < selection.length; i++) {
>         // get the item in column 0 of the DataTable in the selected row
>         dt.getValue(selection[i].row, 0);
>     }
> }
>
> The BubbleChart's select handler would work much the same way, though it 
> will likely contain 0 or 1 elements in the select array, unless you set the 
> "selectionMode" option to "multiple".
>
> On Monday, June 23, 2014 5:50:44 PM UTC-4, [email protected] wrote:
>>
>> Can anyone please show me how to read the selected item in column zero of 
>> a table or ditto from a bubble chart? I've so many ways as described in the 
>> documentation and none of them seem to work for me. I'm sure its a foolish 
>> error but I would appreciate some help on this one. Here's my code so far - 
>> I've managed to create to listeners which work fine (even though I've put 
>> them after the draw - they don't work if I put them before - could be a 
>> clue) but I've tried various ways of using getSelection and basically I'm 
>> just stuck. Should say I'm using the ChartWrapper/Dashboard approach. Bryan.
>>
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
>> http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
>> <html xmlns="http://www.w3.org/1999/xhtml";>
>>   <head>
>>     <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
>>     <title>
>>       Google Visualization API Sample
>>     </title>
>>     <script type="text/javascript" src="//www.google.com/jsapi"></script>
>>     <script type="text/javascript">
>>       google.load('visualization', '1.1', {packages: ['controls']});
>>     </script>
>>     <script type="text/javascript">
>>       var data; 
>>       var table;
>>       var bubble;
>>       function drawVisualization() {
>>         // Prepare the data
>>         var data = google.visualization.arrayToDataTable([
>>       ['MODEL','Wave Height (ft)','Wave Period (s)','Wave 
>> Quality','SHAPER'],
>>       ['BLANK #3CRUISER',3,7,'Mush','Blanksy'],
>>       ['LITTLE BUDDY',4,9,'Fun','Matt'],
>>       ['MODTRO',4,7,'Mush','Matt'],
>>       ['UFSO',5,7,'Mush','Scott'],
>>       ['BLANK #2FISH',5,8,'Fun','Blanksy'],
>>       ['The Egg',5,10,'Fun','Clayton'],
>>       ['LCD',5,10,'Fun','Clayton'],
>>       ['DONUTS',6,8,'Heavy','Matt'],
>>       ['FAT BOY',6,7,'Heavy','Matt'],
>>       ['ROUND FISH',6,8,'Heavy','Matt'],
>>       ['Gypsy',6,11,'Classic','Clayton'],
>>       ['Mongrel',7,11,'Classic','Clayton'],
>>       ['DIABLO',7,11,'Classic','Matt'],
>>       ['Trickster',7,11,'Classic','Clayton'],
>>       ['SUPER STUMP',7,10,'Classic','Scott'],
>>       ['ROCKET FISH',7,12,'Classic','Jeff'],
>>       ['Red Ranga',7,12,'Classic','Clayton'],
>>       ['G JETZON',8,10,'Classic','Scott'],
>>       ['Jester',8,11,'Classic','Clayton'],
>>       ['VIPER',8,12,'Classic','Matt'],
>>       ['The Rox',8,10,'Classic','Clayton'],
>>       ['Makoi',8,10,'Classic','Clayton'],
>>       ['STUMPY',8,10,'Classic','Matt'],
>>       ['Ned Kelly',8,11,'Classic','Clayton'],
>>       ['BLANK #1SQUASH',8,11,'Classic','Blanksy'],
>>       ['Titan',9,8,'Heavy','Clayton'],
>>       ['Clay10 Pro',9,11,'Classic','Clayton'],
>>       ['EDGC',9,12,'Classic','Scott'],
>>       ['STUMP',9,11,'Classic','Scott'],
>>       ['Swivel',9,14,'Classic','Clayton'],
>>       ['TRXTR',9,12,'Classic','Jeff'],
>>       ['WASABI',9,11,'Classic','Matt'],
>>       ['Dredger',9,12,'Classic','Clayton'],
>>       ['MAGIC',9,13,'Classic','Matt'],
>>       ['Supernova',9,12,'Classic','Clayton'],
>>       ['Genghis',10,14,'Best','Clayton'],
>>       ['Super B',10,14,'Best','Clayton'],
>>       ['The Project',10,12,'Best','Clayton'],
>>       ['Spitfire',10,12,'Best','Clayton'],
>>       ['FLYER',10,12,'Best','Matt'],
>>       ['GTO',10,14,'Best','Matt'],
>>       ['XX BOARD',11,14,'Best','Jeff'],
>>       ['NOW BOARD',11,16,'Best','Jeff'],
>>       ['J BOARD',11,16,'Best','Jeff'],
>>       ['INDO',11,11,'Best','Scott'],
>>       ['C-Indo',12,13,'Best','Clayton']
>>         ]);
>>       
>>         // Define a slider control for the Wave Height column.
>>         var slider = new google.visualization.ControlWrapper({
>>           'controlType': 'NumberRangeFilter',
>>           'containerId': 'control1',
>>           'options': {
>>             'filterColumnLabel': 'Wave Height (ft)',
>>           'ui': {'labelStacking': 'vertical'}
>>           }
>>         });
>>         
>>         
>>         
>>         
>>         
>>         
>>       
>>         // Define a category picker control for the Shaper column
>>         var categoryPicker = new google.visualization.ControlWrapper({
>>           'controlType': 'CategoryFilter',
>>           'containerId': 'control2',
>>           'options': {
>>             'filterColumnLabel': 'SHAPER',
>>             'ui': {
>>             'labelStacking': 'vertical',
>>               'allowTyping': false,
>>               'allowMultiple': false
>>             }
>>           }
>>         });
>>         
>>         // Define a category picker control for the Wave Quality column
>>         var wcategoryPicker = new google.visualization.ControlWrapper({
>>           'controlType': 'CategoryFilter',
>>           'containerId': 'control4',
>>           'options': {
>>             'filterColumnLabel': 'Wave Quality',
>>             'ui': {
>>             'labelStacking': 'vertical',
>>               'allowTyping': false,
>>               'allowMultiple': false
>>             }
>>           }
>>         });
>>        
>>       
>>         // Define a Bubble chart
>>         var bubble = new google.visualization.ChartWrapper({
>>           'chartType': 'BubbleChart',
>>           'containerId': 'chart1',
>>           'options': {
>>             'width': 1000,
>>             'height': 800,
>>             'legend': 'none',
>>             'title': 'Choose the Wave Height & Wave Quality and see the 
>> boards that work best',
>>             'hAxis': {'title': 'Wave Size (ft)'},
>>             'sizeAxis':{'maxSize':[14]},
>>             'vAxis': {'title': 'Wave Period (sec)'}
>>             
>>           },
>>           // Instruct the bubblechart
>>           // from the 'data' DataTable.
>>           'view': {'columns': [0,1,2,3]}
>>         });
>>       
>>         // Define a table
>>         var table = new google.visualization.ChartWrapper({
>>           'chartType': 'Table',
>>           'containerId': 'chart2',
>>           'options': {
>>             'width': '350px'
>>           }
>>         });
>>       
>>         // Create a dashboard
>>         new 
>> google.visualization.Dashboard(document.getElementById('dashboard')).
>>             // Establish bindings, declaring the both the slider and the 
>> category
>>             // picker will drive both charts.
>>             bind([slider, categoryPicker, wcategoryPicker], [bubble, 
>> table]).
>>             // Draw the entire dashboard.
>>           
>>             draw(data);
>>             google.visualization.events.addListener(table, 'select', 
>> tableHandler);
>>             google.visualization.events.addListener(bubble, 'select', 
>> bubbleHandler);
>>             
>>             
>>             
>>             
>>       }
>>       
>>  //this is the bit i'm stuck on     
>>       
>>       function bubbleHandler() { 
>>       alert('You selected a bubble ');
>>     }
>>       
>>       function tableHandler() {
>>       alert('Table Selected');
>>    
>>    }
>>    
>>       google.setOnLoadCallback(drawVisualization);
>>     </script>
>>   </head>
>>   <body style="font-family: Arial;border: 0 none;">
>>     <div id="dashboard">
>>       <table>
>>         <tr style='vertical-align: top'>
>>           <td style='width: 350px; font-size: 0.9em;'>
>>             <div id="control1"></div>
>>             
>>             <div id="control2"></div>
>>             <div id="control4"></div>
>>             <div style="float: left;" id="chart2"></div>
>>           </td>
>>           <td style='width: 1000px'>
>>             <div style="float: left;" id="chart1"></div>
>>           </td>
>>         </tr>
>>           <tr>
>>           <td>
>>             <div style="float: left;" id="chart3"></div>
>>           </td>
>>         </tr>
>>       </table>
>>     </div>
>>   </body>
>> </html>
>> ​
>>
>>    
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-visualization-api.
For more options, visit https://groups.google.com/d/optout.

Reply via email to