Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

  • GWT v3 Maps libraries work in 5.0, broken in 5.1

    Hi there,

    our service is maps heavy. We show maps in all sorts of places - layout, popups, form items, etc. We've done this for years, in all versions. Since there's no map components at all in smartGWT, we use a third-party library, branflake, to provide GWT bindings for Google's maps v3 javascript library. (github here: https://github.com/branflake2267/GWT-Maps-V3-Api)

    However, we recently tried to upgrade from 5.0 to 5.1, more specifically from smartgwt pro 5.0-p20160409 to 5.1-p20160428, and just now 5.1-p20160514 (the issue is still there).

    Basically what happens is that the gwt maps widget is totally blank, it doesn't draw anything, even though i can see that calls are being made to google to fetch data to display. There are no errors in the console that i can see.

    This is totally crucial for us upgrading, so it would be super-great if someone could help out with this.

    I have made a test-project to illustrate below. By just switching out the smartgwt jars, this project shows, or doesn't show, the actual map we're trying to display.

    Thanks in advance.


    Code:
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.maps.client.LoadApi;
    import com.google.gwt.maps.client.MapWidget;
    import com.google.gwt.maps.client.base.LatLng;
    import com.google.gwt.maps.client.base.Point;
    import com.google.gwt.maps.client.overlays.Marker;
    import com.google.gwt.maps.client.overlays.MarkerImage;
    import com.google.gwt.maps.client.overlays.MarkerOptions;
    import com.smartgwt.client.types.Alignment;
    import com.smartgwt.client.widgets.events.ResizedEvent;
    import com.smartgwt.client.widgets.events.ResizedHandler;
    import com.smartgwt.client.widgets.layout.HLayout;
    import com.smartgwt.client.widgets.layout.VLayout;
    
    import java.util.ArrayList;
    
    public class Test implements EntryPoint {
    
        public void onModuleLoad() {
            Runnable onLoad = new Runnable() {
                @Override
                public void run() {
                    initLayout();
                }
            };
            loadMapApi(onLoad);
        }
    
        public void initLayout() {
            try {
                VLayout mainLayout = new VLayout();
                mainLayout.setWidth100();
                mainLayout.setMembersMargin(30);
                mainLayout.setLayoutAlign(Alignment.CENTER);
                mainLayout.setLayoutTopMargin(20);
    
                MapLayoutWithWidget mapLayout = new MapLayoutWithWidget();
    
    
                mainLayout.setDefaultLayoutAlign(Alignment.CENTER);
    
                mapLayout.setBorder("1px solid black");
                mapLayout.setVisible(true);
                mapLayout.setHeight(200);
                mapLayout.setWidth(200);
                mapLayout.getWidget().setZoom(10);
    
    
                mainLayout.addMember(mapLayout);
                mainLayout.draw();
                LatLng sweden = LatLng.newInstance(63.049649, 16.347656);
                mapLayout.createMarker(sweden, "hello", null, 0, 0, true, false, true);
            } catch (Exception e) {
                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
            }
        }
    
        public class MapLayoutWithWidget extends HLayout {
    
            private MapWidget map;
    
            public MapLayoutWithWidget() {
                //we want to make sure that the map always takes up the entire layout, since it doesn't scale automatically.
                addResizedHandler(new ResizedHandler() {
                    public void onResized(ResizedEvent e) {
                        map.setSize(getWidth().toString(), getHeight().toString());
                        map.triggerResize();
                    }
                });
                setRedrawOnResize(true);
                setWidth100();
                setHeight100();
    
                this.setMargin(0);
                this.setPadding(0);
                this.setMembersMargin(0);
    
    
                map = new MapWidget(null);
                map.setZoom(10);
                map.setWidth(getWidthAsString());
                map.setHeight(getHeightAsString());
                addMember(map);
            }
    
            /**
             * sets the position as a marker on the map, plus sets the title if it's not null.
             * We return the marker so that it later is possible to move it if desirable.
             *
             * param location
             * param hovertext
             * @return
             */
            private Marker createMarker(LatLng location, String hovertext, String iconUrl, int iconAnchorX, int iconAnchorY,
                                        boolean setCenter, boolean draggable, boolean addToMap) {
                
                MarkerOptions options = MarkerOptions.newInstance();
                options.setTitle(hovertext);
                options.setDraggable(draggable);
    
                if (iconUrl != null) {
                    MarkerImage icon = MarkerImage.newInstance(iconUrl);
                    icon.setAnchor(Point.newInstance(iconAnchorX, iconAnchorY));
                    options.setIcon(icon);
                }
                Marker m = Marker.newInstance(options);
                m.setPosition(location);
    
                if (addToMap) {
                    m.setMap(map);
                }
                if (setCenter) {
                    map.setCenter(location);
                }
                return m;
            }
    
    
            public MapWidget getWidget() {
                return map;
            }
        }
    
        public static boolean loadMapApi(Runnable runnable) {
    
            GWT.log("loadMapApi!");
    
            boolean sensor = true;
            // load all the libs for use in the maps
            ArrayList<LoadApi.LoadLibrary> loadLibraries = new ArrayList<LoadApi.LoadLibrary>();
            loadLibraries.add(LoadApi.LoadLibrary.DRAWING);
            loadLibraries.add(LoadApi.LoadLibrary.GEOMETRY);
            loadLibraries.add(LoadApi.LoadLibrary.PLACES);
    
    
            LoadApi.go(runnable, loadLibraries, sensor);
            return true;
        }
    }

  • #2
    Sorry, we can't look into a problem with a third-party library with so little information.

    Try getting through basics like whether the third-party library is loading at all, whether it's loading it's data, etc. Try multiple browsers to see if you can get one of the to tell you what error is occurring. Inspect the DOM and see if the maps library has drawn something that just isn't showing up. See if there is a way for the maps libraries to give you any diagnostics or logging at all about what's going on (it would be pathetic if it can't).

    Basically try to get to a point where you can see what kind of failure is going on and there's at least a suggestion that SmartGWT could do something different in order to help the maps library not fail.

    Comment


    • #3
      Well, since it works in 5.0, something has obviously changed. Thought a barebones standalone test-case like the one provided would help, but ok. I'm not super-great at javascript debugging, but i guess i'll have to figure something out.

      Comment


      • #4
        Something changed, yes. But among other things, it could be a hack that shouldn't have worked in the first place, an installation issue, or many other things.

        Note, taking another look at your code, it doesn't make sense to be calling setRedrawOnResize(true) on an HLayout. HLayouts have no contents. If they did redraw on a resize, with the way your code is set up, it looks like it might just wipe out the map content - hence the debugging you should do to at least get an outline of the cause. In addition to the other steps previously suggested, you might turn on the "redraws" log to see what's actually happening here.

        Comment


        • #5
          Well, we had tons of issues originally making the maps gwt widget work inside smartgwt, making it resize, redraw etc. This is what worked in the end for us - but it might be true that the redrawonresize is not neccessary (at least not anymore, this is kinda old code).

          I tried removing that, i've tried removing my ResizedHandler (which is needed since the gwt mapwidget doesn't resize and redraw itself inside a layout when it changes). Still works in 5.0 but not 5.1. I'll try looking at the console and see if i can figure anything out tomorrow...

          Comment


          • #6
            I have now compared the debug logs between 5.0 and 5.1 for my testcase above. (i did add "setID" names to the VLayout and MapLayout to make the log easier to follow). There was one interesting difference i think:

            in the 5.0 sizing log, it looks like this:
            Code:
            12:37:49.406:INFO:sizing:isc_WidgetCanvas_0:Specified size: 198x198, drawn scroll size: 198x198, border: 0x0, margin: 0x0, reason: parentDrawn
            12:37:49.407:DEBUG:sizing:isc_WidgetCanvas_0:handle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 198,
            scrollHeight: 198,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 198,
            offsetHeight: 198,
            styleLeft: "0px",
            styleTop: "-9999px",
            styleWidth: "198px",
            styleHeight: "198px",
            styleClip: ""}
            12:37:49.410:INFO:sizing:mapLayout:Specified size: 200x200, drawn scroll size: 198x198, border: 2x2, margin: 0x0, reason: parentDrawn
            12:37:49.411:DEBUG:sizing:mapLayout:handle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 198,
            scrollHeight: 198,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 200,
            offsetHeight: 200,
            styleLeft: "0px",
            styleTop: "-9999px",
            styleWidth: "200px",
            styleHeight: "200px",
            styleClip: ""}
            12:37:49.413:INFO:sizing:mainLayout:Specified size: 500x300, drawn scroll size: 350x220, border: 0x0, margin: 0x0, reason: draw
            12:37:49.414:DEBUG:sizing:mainLayout:handle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 500,
            scrollHeight: 300,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 500,
            offsetHeight: 300,
            styleLeft: "0px",
            styleTop: "0px",
            styleWidth: "500px",
            styleHeight: "300px",
            styleClip: ""}
            12:37:49.743:INFO:Log:isc.Page is loaded
            But when you look in the 5.1 logs, it looks quite different. Most importantly, there are extra sizing calls to set styleWidth and height to "100%" that are not there in 5.0.

            Code:
            12:51:05.649:INFO:sizing:isc_WidgetCanvas_0:Specified size: 198x198, drawn scroll size: 198x0, border: 0x0, margin: 0x0, reason: parentDrawn
            12:51:05.650:DEBUG:sizing:isc_WidgetCanvas_0:clipHandle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 198,
            scrollHeight: 198,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 198,
            offsetHeight: 198,
            styleLeft: "0px",
            styleTop: "-9999px",
            styleWidth: "198px",
            styleHeight: "198px",
            styleClip: ""}
            12:51:05.651:DEBUG:sizing:isc_WidgetCanvas_0:handle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 198,
            scrollHeight: 0,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 198,
            offsetHeight: 0,
            styleLeft: "",
            styleTop: "",
            styleWidth: "100%",
            styleHeight: "",
            styleClip: ""}
            12:51:05.657:INFO:sizing:mapLayout:Specified size: 200x200, drawn scroll size: 198x198, border: 2x2, margin: 0x0, reason: parentDrawn
            12:51:05.657:DEBUG:sizing:mapLayout:clipHandle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 198,
            scrollHeight: 198,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 200,
            offsetHeight: 200,
            styleLeft: "0px",
            styleTop: "-9999px",
            styleWidth: "200px",
            styleHeight: "200px",
            styleClip: ""}
            12:51:05.658:DEBUG:sizing:mapLayout:handle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 198,
            scrollHeight: 198,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 198,
            offsetHeight: 13,
            styleLeft: "",
            styleTop: "",
            styleWidth: "100%",
            styleHeight: "",
            styleClip: ""}
            12:51:05.661:INFO:sizing:mainLayout:Specified size: 500x300, drawn scroll size: 350x220, border: 0x0, margin: 0x0, reason: draw
            12:51:05.662:DEBUG:sizing:mainLayout:clipHandle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 500,
            scrollHeight: 300,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 500,
            offsetHeight: 300,
            styleLeft: "0px",
            styleTop: "0px",
            styleWidth: "500px",
            styleHeight: "300px",
            styleClip: ""}
            12:51:05.663:DEBUG:sizing:mainLayout:handle sizes: {scrollLeft: 0,
            scrollTop: 0,
            scrollWidth: 500,
            scrollHeight: 220,
            clientWidth: undef,
            clientHeight: undef,
            offsetWidth: 500,
            offsetHeight: 13,
            styleLeft: "",
            styleTop: "",
            styleWidth: "100%",
            styleHeight: "",
            styleClip: ""}
            12:51:05.911:INFO:Log:isc.Page is loaded

            Comment


            • #7
              Also, if you look at the div structure, there are quite a few difference.

              In 5.0 that works, the div tree structure is more shallow. (isc_0-3 divs are created as you can see). In 5.1p that doesn't work, the component hierarchy is deeper (isc_0-5 divs have been created) and contains more components.

              5.0 (works):
              Code:
              <div id="isc_0" class="normal" onscroll="return mainLayout.$lh()" style="POSITION:absolute;LEFT:0px;TOP:0px;WIDTH:500px;HEIGHT:300px;Z-INDEX:200018;OVERFLOW:hidden;-moz-box-sizing:border-box;CURSOR:default;display:inline-block" eventproxy="mainLayout">
              <div id="isc_1" class="normal" onscroll="return mapLayout.$lh()" style="position: absolute; left: 150px; top: 20px; width: 200px; height: 200px; z-index: 200036; overflow: hidden; -moz-box-sizing: border-box; cursor: default; margin: 0px; padding: 0px; border: 1px solid black; display: inline-block;" eventproxy="mapLayout">
              <div id="isc_2" class="normal" onscroll="return isc_WidgetCanvas_0.$lh()" style="position: absolute; left: 0px; top: 0px; width: 198px; height: 198px; z-index: 200054; overflow: hidden; -moz-box-sizing: border-box; cursor: default; display: inline-block;" eventproxy="isc_WidgetCanvas_0">
              <div id="isc_WidgetCanvas_0_widget" style="width:100%;height:100%">
              <div style="width: 100%; height: 100%; position: relative; background-color: rgb(229, 227, 223); overflow: hidden;">
              <div class="gm-style" style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;">
              <div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0; cursor: url("http://maps.gstatic.com/mapfiles/openhand_8_8.cur"), default;">
              <div style="position: absolute; left: 0px; top: 0px; z-index: 1; width: 100%;">
              <div style="position: absolute; left: 0px; top: 0px; z-index: 2; width: 100%; height: 100%;"></div>
              <div style="position: absolute; left: 0px; top: 0px; z-index: 3; width: 100%;">
              </div>
              <div style="background-color: white; padding: 15px 21px; border: 1px solid rgb(171, 171, 171); font-family: Roboto,Arial,sans-serif; color: rgb(34, 34, 34); box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.2); z-index: 10000002; display: none; width: 144px; height: 148px; position: absolute; left: 5px; top: 9px;">
              <div class="gmnoprint" style="z-index: 1000001; position: absolute; right: 71px; bottom: 0px; width: 121px;">
              <div class="gmnoscreen" style="position: absolute; right: 0px; bottom: 0px;">
              <div class="gmnoprint gm-style-cc" style="z-index: 1000001; -moz-user-select: none; height: 14px; line-height: 14px; position: absolute; right: 0px; bottom: 0px;" draggable="false">
              <div style="width: 25px; height: 25px; margin-top: 10px; overflow: hidden; display: none; margin-right: 14px; position: absolute; top: 0px; right: 0px;">
              <div class="gm-style-cc" draggable="false" style="-moz-user-select: none; height: 14px; line-height: 14px; display: none; position: absolute; right: 0px; bottom: 0px;">
              <div class="gmnoprint" style="margin: 10px; -moz-user-select: none; position: absolute; display: none; bottom: 14px; right: 0px;" draggable="false" controlwidth="0" controlheight="0">
              <div class="gmnoprint" style="margin: 10px; z-index: 0; position: absolute; cursor: pointer; display: none; left: 0px; top: 0px;">
              <div style="margin-left: 5px; margin-right: 5px; z-index: 1000000; position: absolute; left: 0px; bottom: 0px;">
              </div>
              </div>
              </div>
              </div>
              </div>
              </div>
              5.1p (does not work):
              Code:
              <div id="isc_0" class="normal" onscroll="return mainLayout.$lh()" style="position: absolute; left: 0px; top: 0px; width: 500px; height: 300px; z-index: 200018; padding: 0px; -moz-box-sizing: border-box; overflow: hidden; cursor: default;" eventproxy="mainLayout">
              <div id="isc_1" style="POSITION:relative;display:inline-block;-moz-box-sizing:border-box;width:100%;vertical-align:top;VISIBILITY:inherit;Z-INDEX:200018;CURSOR:default;" eventproxy="mainLayout">
              <div id="isc_2" class="normal" onscroll="return mapLayout.$lh()" style="position: absolute; left: 150px; top: 20px; width: 200px; height: 200px; z-index: 200036; border: 1px solid black; padding: 0px; margin: 0px; -moz-box-sizing: border-box; overflow: hidden;" eventproxy="mapLayout">
              <div id="isc_3" style="POSITION:relative;display:inline-block;-moz-box-sizing:border-box;width:100%;vertical-align:top;VISIBILITY:inherit;Z-INDEX:200036;CURSOR:default;PADDING:0px;" eventproxy="mapLayout">
              <div id="isc_4" class="normal" onscroll="return isc_WidgetCanvas_0.$lh()" style="position: absolute; left: 0px; top: 0px; width: 198px; height: 198px; z-index: 200054; -moz-box-sizing: border-box; overflow: hidden; cursor: default;" eventproxy="isc_WidgetCanvas_0">
              <div id="isc_5" style="POSITION:relative;display:inline-block;-moz-box-sizing:border-box;width:100%;vertical-align:top;VISIBILITY:inherit;Z-INDEX:200054;CURSOR:default;" eventproxy="isc_WidgetCanvas_0">
              <div id="isc_WidgetCanvas_0_widget" style="width:100%;height:100%">
              <div style="width: 100%; height: 100%; position: relative; background-color: rgb(229, 227, 223); overflow: hidden;">
              <div class="gm-style" style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;">
              <div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0; cursor: url("http://maps.gstatic.com/mapfiles/openhand_8_8.cur"), default;">
              <div style="background-color: white; padding: 15px 21px; border: 1px solid rgb(171, 171, 171); font-family: Roboto,Arial,sans-serif; color: rgb(34, 34, 34); box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.2); z-index: 10000002; display: none; width: 144px; height: 0px; position: absolute; left: 5px; top: 5px;">
              <div class="gmnoprint" style="z-index: 1000001; position: absolute; right: 71px; bottom: 0px; width: 12px;">
              <div class="gmnoscreen" style="position: absolute; right: 0px; bottom: 0px;">
              <div class="gmnoprint gm-style-cc" style="z-index: 1000001; -moz-user-select: none; height: 14px; line-height: 14px; position: absolute; right: 0px; bottom: 0px;" draggable="false">
              <div style="width: 25px; height: 25px; margin-top: 10px; overflow: hidden; display: none; margin-right: 14px; position: absolute; top: 0px; right: 0px;">
              <div class="gm-style-cc" draggable="false" style="-moz-user-select: none; height: 14px; line-height: 14px; display: none; position: absolute; right: 0px; bottom: 0px;">
              <div class="gmnoprint" style="margin: 10px; -moz-user-select: none; position: absolute; display: none; bottom: 14px; right: 0px;" draggable="false" controlwidth="0" controlheight="0">
              <div class="gmnoprint" style="margin: 10px; z-index: 0; position: absolute; cursor: pointer; display: none; left: 0px; top: 0px;">
              <div style="margin-left: 5px; margin-right: 5px; z-index: 1000000; position: absolute; left: 0px; bottom: 0px;">
              </div>
              </div>
              </div>
              </div>
              </div>
              </div>
              </div>
              </div>
              </div>

              Comment


              • #8
                It's not clear why you're diving into DOM structures right after saying that's a weak spot for you - those structures differ by browser and have to do with nasty browser bugs, this isn't an area that makes sense for you to look at.

                Meanwhile you ignored our advice to try the "redraws" log, or to look for troubleshooting advice for the library you're using...

                You also really need to read the DOM-level integration overview, as those are the kinds of problems you're running into here. One of the bits of advice there is to use overflow:"hidden", which you haven't done either.

                Comment


                • #9
                  1. I'm not "diving into" dom structures, i'm doing what i thought i could, i.e. run my testcase and provide you with the difference. I was trying to be helpful, but by your tone i guess it was the opposite. Also, as i'm simply running my bare-bones testcase you can find above and nothing else, all the dom-code comes from the smartgwt framework. I just did view source in Firebug. It seems as though you're critizising me for not setting some "overflow;hidden" parameter, which i'm not sure why i would need in my code above, I'm just using smartGWT as intended as far as i know. I'm also am not setting any overflow in 5.0 where it works.

                  1. "Meanwhile you ignored our advice to try the "redraws" log". If you read two posts above, i actually have provided logs from when i load the page in 5.0 and 5.1. I have "redraws" turned on as per your instructions, but as you can see it didn't print anything. In total, i turned the "sizing", "draws", "redraws" and "redrawtrace" all to 'debug'. "Draws" does print something, but i didn't include it since it's basically identical. I'll post it below for reference.

                  3. I'm running a GWT module written for maps v3, so i read the section on "gwt components" in your F.A.Q. Since it states that i should be alright, i didn't think about reading some "dom-level integration overview", which i'm not even sure what it is, but apparently you think i should have read.

                  4. I am happy to assist you in any other way i can, i can put together a complete war of the testcase i use above with the jars and html page, or anything else that would aid you.



                  Edit: in my testcase above, i tried to set Overflow.HIDDEN on all the components i could. Not sure if that's what you meant, but it didn't help, unfortunately

                  Code:
                  mapLayout.setOverflow(Overflow.HIDDEN);
                  Last edited by mathias; 14th Jun 2016, 23:37.

                  Comment


                  • #10
                    For reference, here's what the draws log prints. As i mention above, i do have "redraws" turned on to debug, but nothing is written.

                    5.0 (works)
                    Code:
                    08:58:39.452:INFO:draws:mainLayout:draw(): drawing VLayout
                        Canvas.draw(_1=>undef)
                        anonymous()
                        anonymous(thisObj=>null, dispId=>46399538, p0=>com.karpet.nuba.client.Test$1@5a1b169a)
                        anonymous()
                            "__gwt_makeJavaInvoke(1)(null, 46399538, onLoad);"
                    
                    08:58:39.456:INFO:draws:mapLayout:draw(): drawing HLayout with parent: [VLayout ID:mainLayout]
                        Canvas.draw(_1=>undef)
                        Layout.layoutChildren(_1=>"initial draw", _2=>undef, _3=>undef)
                        Layout.drawChildren()
                        ** recursed on Canvas.draw
                    
                    08:58:39.459:INFO:draws:isc_WidgetCanvas_0:draw(): drawing Canvas with parent: [HLayout ID:mapLayout]
                        Canvas.draw(_1=>undef)
                        Layout.layoutChildren(_1=>"initial draw", _2=>undef, _3=>undef)
                        Layout.drawChildren()
                        ** recursed on Canvas.draw
                    5.1 (does not work)
                    Code:
                    08:53:24.303:INFO:Log:initialized
                    08:53:27.654:INFO:draws:mainLayout:draw(): drawing VLayout before page load
                        Canvas.draw(_1=>undef)
                        anonymous()
                        anonymous(thisObj=>null, dispId=>48103474, p0=>com.karpet.nuba.client.Test$1@546aa202)
                        anonymous()
                            "__gwt_makeJavaInvoke(1)(null, 48103474, onLoad);"
                    
                    08:53:27.659:INFO:draws:mapLayout:draw(): drawing HLayout with parent: [VLayout ID:mainLayout] before page load
                        Canvas.draw(_1=>undef)
                        Layout.layoutChildren(_1=>"initial draw", _2=>undef, _3=>undef)
                        Layout.drawChildren()
                        ** recursed on Canvas.draw
                    
                    08:53:27.662:INFO:draws:isc_WidgetCanvas_0:draw(): drawing Canvas with parent: [HLayout ID:mapLayout] before page load
                        Canvas.draw(_1=>undef)
                        Layout.layoutChildren(_1=>"initial draw", _2=>undef, _3=>undef)
                        Layout.drawChildren()
                        ** recursed on Canvas.draw

                    Comment


                    • #11
                      Looks like the "redraws" log is still off - should be obvious if it's on (quite a bit of output). Especially since you've forced redraws on for your containing HLayout.

                      Every time we refer to overviews it's the same thing - the set of overview documents in the special client.docs package, as covered in the QuickStart Guide. Please don't pretend this is an obscure reference, especially when the full name is the Dom Integration & Third-party Components overview.

                      Had you read it you'd already understand what we meant about overflow:hidden.

                      You also still do not appear to have looked into any kind of diagnostics available from the library you're using - this is the third time we've mentioned this.

                      Please bear in mind: we're trying to get to your posts in the few seconds we can spare from dealing with issues from customers that have paid Support, or have whole teams with licenses (which gives some priority). There is absolutely no way we can dive into your simplified test case, because the fact of the matter is we'd actually need to debug Google Maps and the GWT adapter you're using, which is a very large amount of code, and not even code that uses our framework.

                      Sending some extra attitude our way doesn't help, and if you keep disregarding our tips you're just going to end up with extended silence as we get pulled onto something else. If you're serious about being ready to put some extra effort into this, just follow the advice.

                      Comment


                      • #12
                        1. Regarding logging. There apparently seems to be something i don't understand. I fire up the isc console, go into "logging preferences", turn the packages to "debug", reload the page to run the testcase above and get the output i have provided. See attached screenshot, and the log output below. Can you see what i'm doing wrong? I'm not seeing any redraw logging, so it must be something if you say it should be lots of output.

                        logging settings messages:
                        Code:
                        Global Log Priorities updated: Logging messages at priority 'Debug' and above for category 'redraws'.
                        Global Log Priorities updated: Logging messages at priority 'Debug' and above for category 'redrawTrace'.
                        Remote Debugging unavailable (Messaging endpoint not responding).  To enable Remote Debugging, see the Remote Debugging overview in the reference.
                        Global Log Priorities updated: Logging messages at priority 'Debug' and above for category 'resize'.
                        Global Log Priorities updated: Logging messages at priority 'Debug' and above for category 'sizing'.
                        log output when i load the page (no redraw logging):
                        Code:
                        13:10:33.377:INFO:Log:initialized
                        13:10:36.777:INFO:sizing:isc_WidgetCanvas_0:Specified size: 198x198, drawn scroll size: 198x0, border: 0x0, margin: 0x0, reason: parentDrawn
                        13:10:36.779:DEBUG:sizing:isc_WidgetCanvas_0:clipHandle sizes: {scrollLeft: 0,
                        scrollTop: 0,
                        scrollWidth: 198,
                        scrollHeight: 198,
                        clientWidth: undef,
                        clientHeight: undef,
                        offsetWidth: 198,
                        offsetHeight: 198,
                        styleLeft: "0px",
                        styleTop: "-9999px",
                        styleWidth: "198px",
                        styleHeight: "198px",
                        styleClip: ""}
                        13:10:36.779:DEBUG:sizing:isc_WidgetCanvas_0:handle sizes: {scrollLeft: 0,
                        scrollTop: 0,
                        scrollWidth: 198,
                        scrollHeight: 0,
                        clientWidth: undef,
                        clientHeight: undef,
                        offsetWidth: 198,
                        offsetHeight: 0,
                        styleLeft: "",
                        styleTop: "",
                        styleWidth: "100%",
                        styleHeight: "",
                        styleClip: ""}
                        13:10:36.783:INFO:sizing:isc_Test_MapLayoutWithWidget_0:Specified size: 200x200, drawn scroll size: 198x198, border: 2x2, margin: 0x0, reason: parentDrawn
                        13:10:36.784:DEBUG:sizing:isc_Test_MapLayoutWithWidget_0:clipHandle sizes: {scrollLeft: 0,
                        scrollTop: 0,
                        scrollWidth: 198,
                        scrollHeight: 198,
                        clientWidth: undef,
                        clientHeight: undef,
                        offsetWidth: 200,
                        offsetHeight: 200,
                        styleLeft: "0px",
                        styleTop: "-9999px",
                        styleWidth: "200px",
                        styleHeight: "200px",
                        styleClip: ""}
                        13:10:36.784:DEBUG:sizing:isc_Test_MapLayoutWithWidget_0:handle sizes: {scrollLeft: 0,
                        scrollTop: 0,
                        scrollWidth: 198,
                        scrollHeight: 198,
                        clientWidth: undef,
                        clientHeight: undef,
                        offsetWidth: 198,
                        offsetHeight: 13,
                        styleLeft: "",
                        styleTop: "",
                        styleWidth: "100%",
                        styleHeight: "",
                        styleClip: ""}
                        13:10:36.787:INFO:sizing:isc_VLayout_0:Specified size: 500x300, drawn scroll size: 350x220, border: 0x0, margin: 0x0, reason: draw
                        13:10:36.787:DEBUG:sizing:isc_VLayout_0:clipHandle sizes: {scrollLeft: 0,
                        scrollTop: 0,
                        scrollWidth: 500,
                        scrollHeight: 300,
                        clientWidth: undef,
                        clientHeight: undef,
                        offsetWidth: 500,
                        offsetHeight: 300,
                        styleLeft: "0px",
                        styleTop: "0px",
                        styleWidth: "500px",
                        styleHeight: "300px",
                        styleClip: ""}
                        13:10:36.788:DEBUG:sizing:isc_VLayout_0:handle sizes: {scrollLeft: 0,
                        scrollTop: 0,
                        scrollWidth: 500,
                        scrollHeight: 220,
                        clientWidth: undef,
                        clientHeight: undef,
                        offsetWidth: 500,
                        offsetHeight: 13,
                        styleLeft: "",
                        styleTop: "",
                        styleWidth: "100%",
                        styleHeight: "",
                        styleClip: ""}
                        13:10:37.035:INFO:Log:isc.Page is loaded
                        Attached Files

                        Comment


                        • #13
                          2. Regarding documentation, and "don't pretend this is an obscure reference". I know about the docs package, i've been a customer for 6 years, but thanks for pointing it out. We initially bought smartgwt to avoid having to deal with dom trees, js and things like that as much as possible. In this particular issue, as i mentioned i read the FAQ about integrating GWT components and thought that was sufficient.
                          The Branflake API we have been using in SmartGWT for three years is a GWT library, and it works in 5.0, therefore i can't say i imagined that i needed to read up on that page. Same with overflow, i've read that page before and know what overflow is, but didn't think to consult it just because this stopped working in 5.1.

                          I'm sorry that you're not happy with how i've tried to give you background and info.

                          3. Regarding the third-party library. I havent gotten around to it. I deemed the things i've done so far as the best shot at getting this resolved. Same as you I'm doing this simultaneously while taking gazillions of customer calls, tickets, support etc... since you don't think the dom tree or logs are helpful, i'll try to understand how i can get additional info out of the Branflake API although i'm not sure if there's much there to be honest.

                          4. I do not share your view on disregarding tips or "sending attitude". I'm trying my best. I realize i do not have paid support, but well, we are a paying customer - and as i mentioned, are looking into contiuning working with smartgwt.

                          As mentioned before, i'm happy to help in any other way i can, in case you decide that you want and/or have time to take a look at it.

                          Comment


                          • #14
                            Hello,

                            i have noticed something new. I tried upgrading to 5.0-p20160615, to see if the timeline-issue i reported in another thread had been fixed by any chance.

                            I then noticed that the same issue i see in 5.1p with my example above now is the same in 5.0p, it does not work there either anymore.


                            I downloaded each release in order to see when it broke. The last release that my map example above works is 5.0-p20160511, it breaks in 5.0p-20160514.

                            Comment


                            • #15
                              You still haven't tried overflow:hidden?

                              Comment

                              Working...
                              X