lightrefracted / gmaps-utility-gis

Automatically exported from code.google.com/p/gmaps-utility-gis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fusiontips does not use style object

GoogleCodeExporter opened this issue · comments

1. Call 'enableMapTips' as documented.
2. See that the opts object is not passed to the constructor.
3. See that the onAdd function adds styles directly to the tooltip div.

Fix 1: pass the options object to the constructor.
Fix 2: let users pass a CSS class name to the options:

var mapTipOptions = {
    ...
    className: 'mapToolTip'
}


google.maps.FusionTablesLayer.prototype.enableMapTips = function(opts) {
    opts = opts || {};
    var maptip = new FusionTipOverlay(opts, null);
    ...


function FusionTipOverlay(opts) {
    ...
    this.style_ = opts.style || {};
    this.className = opts.className || '';
  }

FusionTipOverlay.prototype.onAdd = function() {
    var div = document.createElement('DIV');
    if (this.className) {
// use user style
        div.className = this.className;
    } else {
// no style to use, so create fallback style
        div.style.border = "1px solid black";
        div.style.position = "absolute";
        div.style.whiteSpace = "nowrap";
        div.style.backgroundColor = "#ffffcc";
        div.style.fontSize = 'x-small';
    }
    if (this.style_) {
// override with style object passed in options
      for (var x in this.style_) {
        if (this.style_.hasOwnProperty(x)) {
          div.style[x] = this.style_[x]
        }
      }
    }

Original issue reported on code.google.com by arthurclemens on 26 Jan 2012 at 11:19

Is there an example of your use case you can share (or attach to this issue)?
Do you need the css class applied or just the styles that are passed into the 
enableMapTips call?

Like this (temporary test link):
http://www.geocodezip.com/fusiontips/examples/fusiontips_style.html

Original comment by geocodezip on 19 Sep 2013 at 6:00

Passing a style object in Javascript is not ideal, I would see it as another 
workaround.
Because the downside is that you will have defined styles in different places. 
Especially when you use a CSS preprocessor (LESS, SASS) styles will only be 
managed as CSS.

Original comment by arthurclemens on 19 Sep 2013 at 6:12

Do you have a patch that does that?

Original comment by geocodezip on 20 Sep 2013 at 6:07

It is not formally a patch, but the code above should get you a long way.

Original comment by arthurclemens on 20 Sep 2013 at 6:32

> the code above should get you a long way.

It did. It works for the style object, but not for the className. 

Original comment by geocodezip on 20 Sep 2013 at 8:25

It does seem to be working:
http://www.geocodezip.com/fusiontips/examples/fusiontips_class.html

Original comment by geocodezip on 3 Oct 2013 at 4:47

Any feedback on this test version?  It seems to be working, I will check it in 
if there isn't any objection.

Original comment by geocodezip on 5 Oct 2013 at 8:59

  • Changed state: Started
fixed revision 512
http://gmaps-utility-gis.googlecode.com/svn/trunk/fusiontips/examples/fusiontips
_class.html

Original comment by geocodezip on 7 Oct 2013 at 12:44

  • Changed state: Fixed