- set_checkbox: function(record, checked) {
- if (googlemap_debug_detailed) messages.debug ("set_checkbox");
- /* Default: checked = true */
- if (typeof checked === 'undefined')
- checked = true;
-
- var key_value;
- /* The function accepts both records and their key */
- switch (manifold.get_type(record)) {
- case TYPE_VALUE:
- key_value = record;
- break;
- case TYPE_RECORD:
- /* XXX Test the key before ? */
- key_value = record[this.key];
- break;
- default:
- throw "Not implemented";
- break;
- }
-
- // we cannot directly edit html, since nothing but marker is displayed
- //var checkbox_id = this.id('checkbox', this.id_from_key(this.key, key_value));
- //checkbox_id = '#' + checkbox_id.replace(/\./g, '\\.');
- //$(checkbox_id, this.table.fnGetNodes()).attr('checked', checked);
-
- var dict_info = this.map_markers[unfold.escape_id(key_value).replace(/\\/g, '')];
-
-
- // Update the marker content
- dict_info.in_set = checked;
- dict_info.marker.content = this.get_marker_content(dict_info.record, checked);
-
- // Thierry - this code seems to cause the googlemap area to go all grayed out
- // once all the quesries have come back
- // BEG turning off temporarily
- // // Update opened infowindow
- // // XXX Factor this code
- // this.infowindow.close();
- // this.infowindow.open(this.map, dict_info.marker);
- // this.infowindow.setContent(dict_info.marker.content);
- // this.elts('map-button').unbind('click').click(this, this._button_click);
- // END turning off temporarily
- //var button = this.checkbox(record, checked);
- //this.elmt('checkbox', this.id_from_record(method, record)).html(button);
- },
-
- checkbox: function(record, checked) {
- if (googlemap_debug_detailed) messages.debug ("checkbox");
- if (typeof checked === 'undefined')
- checked = false;
-
- var method = manifold.query_store.find_analyzed_query(this.options.query_uuid).object;
- var action = checked ? 'checked' : 'del';
- var ctx = {
- action_class : checked ? 'ui-icon-circle-minus' : 'ui-icon-circle-plus',
- action_message: checked ? 'Remove from slice' : 'Add to slice',
- };
- var button = this.load_template('template', ctx);
-
- var id_record = this.id_from_record(method, record);
- if (!id_record)
- return 'ERROR';
- var id = this.id('checkbox', this.id_from_record(method, record));
- return "<div id='" + id + "'>" + button + "</div>";
- },
-
- get_marker_content: function(record, checked) {
- if (googlemap_debug_detailed) messages.debug ("get_marker_content");
- return '<p><b>' + this.method + '</b>: ' + get_value(record['resource_hrn']) + '<br/><b>network</b>: ' + get_value(record['network'])+'</p>' + this.checkbox(record, checked);
- },
-
- /**
- */
- new_record: function(record) {
- if (googlemap_debug_detailed) messages.debug ("new_record");
- // get the coordinates
- var latitude=get_value(record['latitude']);
- var longitude=get_value(record['longitude']);
- var hash = latitude + longitude;
-
- // check to see if we've seen this hash before
- if(this.coords[hash] == null) {
- // get coordinate object
- var myLatlng = new google.maps.LatLng(latitude, longitude);
- // store an indicator that we've seen this point before
- this.coords[hash] = 1;
- } else {
- // add some randomness to this point 1500 = 100 meters, 15000 = 10 meters
- var lat = latitude + (Math.random() -.5) / 1500;
- var lng = longitude + (Math.random() -.5) / 1500;
-
- // get the coordinate object
- var myLatlng = new google.maps.LatLng(lat, lng);
- }
- // XXX not working
- if (!(record['latitude'])) {
- return true;
- }