Example usage for com.google.gwt.user.client.ui SplitLayoutPanel SplitLayoutPanel

List of usage examples for com.google.gwt.user.client.ui SplitLayoutPanel SplitLayoutPanel

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui SplitLayoutPanel SplitLayoutPanel.

Prototype

public SplitLayoutPanel() 

Source Link

Document

Construct a new SplitLayoutPanel with the default splitter size of 8px.

Usage

From source file:cl.uai.client.MarkingInterface.java

License:Open Source License

/**
/**/*from w  w  w .j  a va2  s. com*/
 * 
 */
public MarkingInterface() {

    // The timer will check if no other resize events have been called in the last 200 ms
    resizeTimer = new Timer() {
        @Override
        public void run() {
            Date now = new Date();
            long diff = now.getTime() - resizeTime.getTime();
            // The last resize was in less than 200 ms
            if (diff < 200) {
                resizeTimer.schedule(200);
            } else {
                // More than 200 ms, we accept no more resize is being done
                resizeTimeout = false;

                Date oneyear = new Date();
                CalendarUtil.addMonthsToDate(oneyear, 12);

                Cookies.setCookie("emarking_width", Integer.toString(Window.getClientWidth()), oneyear);
                EMarkingWeb.markingInterface.loadSubmissionData();
            }
        }
    };

    // Focus panel to catch key events
    focusPanel = new FocusPanel();

    // Main panel has two rows: Toolbar and Marking panel
    mainPanel = new VerticalPanel();
    mainPanel.addStyleName(Resources.INSTANCE.css().interfaceMainPanel());

    focusPanel.setWidget(mainPanel);

    // Toolbar goes up
    toolbar = new MarkingToolBar();
    mainPanel.add(toolbar);

    focusPanel.addKeyDownHandler(new MarkingInterfaceKeyDownHandler(toolbar));

    // Marking panel containing the marking interface
    interfacePanel = new SplitLayoutPanel() {
        @Override
        public void onResize() {
            super.onResize();
            markingPagesInterface.resizePage(this.getCenterWidth());
        };
    };
    interfacePanel.animate(180);
    interfacePanel.addStyleName(Resources.INSTANCE.css().interfacepanel());

    loadingMessage = new HTML(messages.Loading() + " " + EMarkingConfiguration.getMoodleUrl());

    bubbleButtons = new ArrayList<BubbleButton>();

    bubbleButtons.add(new ShowRubricButton(Window.getClientWidth() - 40, 0, 0));
    bubbleButtons.add(new ShowChatButton(Window.getClientWidth() - 40, 45, NodeChat.SOURCE_CHAT));
    bubbleButtons.add(new ShowWallButton(Window.getClientWidth() - 40, 90, NodeChat.SOURCE_WALL));
    bubbleButtons.add(new ShowHelpButton(Window.getClientWidth() - 40, 135, NodeChat.SOURCE_SOS));

    interfacePanel.add(loadingMessage);
    // interfacePanel.setCellHorizontalAlignment(loadingMessage, HasAlignment.ALIGN_CENTER);      

    markingPanel = new AbsolutePanel();
    markingPanel.add(interfacePanel);

    for (BubbleButton b : bubbleButtons) {
        markingPanel.add(b);
    }

    mainPanel.add(markingPanel);

    // Timer for pinging system
    timer = new Timer() {
        @Override
        public void run() {
            // If there are ticks to wait before trying again, update message and update ticks
            if (ticksUntilTrying > 0) {
                loadingMessage.setHTML(messages.CantReachServerRetrying(ticksUntilTrying));
                ticksUntilTrying--;
            } else {
                // Updating next trial for one more second and trying onLoad again
                timerWaitingTurns++;
                ticksUntilTrying = Math.min(timerWaitingTurns, 60);
                loadingMessage.setHTML(messages.Loading() + " " + EMarkingConfiguration.getMoodleUrl());
                onLoad();
            }
        }
    };

    heartBeatTimer = new Timer() {
        @Override
        public void run() {
            String extradata = "";
            if (submissionData != null)
                extradata = "&marker=" + submissionData.getMarkerid() + "&draft=" + submissionData.getId();
            final String requestUrl = extradata;
            AjaxRequest.ajaxRequest("action=heartbeat" + extradata, new AsyncCallback<AjaxData>() {
                @Override
                public void onSuccess(AjaxData result) {
                    logger.info("Heartbeat! " + requestUrl);
                }

                @Override
                public void onFailure(Throwable caught) {
                    logger.warning("Failure on heartbeat");
                }
            });
        }
    };
    // Drag and Drop controller attached to marking panel
    dragController = new PickupDragController(markingPanel, false);

    waitDialog = new DialogBox(false, true);
    waitDialog.setGlassEnabled(true);
    waitDialog.addStyleName(Resources.INSTANCE.css().commentdialog());
    waitDialog.setHTML(MarkingInterface.messages.Loading());
    ProgressBar pbar = new ProgressBar(ProgressBarBase.Style.STRIPED);
    pbar.setActive(true);
    pbar.setPercent(100);
    waitDialog.setWidget(pbar);

    this.initWidget(focusPanel);
}

From source file:cl.uai.client.rubric.RubricInterface.java

License:Open Source License

/**
 * Constructor/*  w  ww  . ja  v a 2s  . com*/
 */
public RubricInterface() {
    mainSplitLayoutPanel = new SplitLayoutPanel();
    mainSplitLayoutPanel.addStyleName(Resources.INSTANCE.css().rubricinterface());

    rubricPanel = new RubricPanel(false);
    scrollRubric = new ScrollPanel(rubricPanel);
    mainSplitLayoutPanel.addNorth(scrollRubric, (int) (Window.getClientHeight() / 1.61803));

    toolsPanel = new ToolsPanel();
    scrollTools = new ScrollPanel(toolsPanel);
    mainSplitLayoutPanel.add(scrollTools);

    this.initWidget(mainSplitLayoutPanel);
}

From source file:com.ephesoft.dcma.gwt.foldermanager.client.view.FolderManagementView.java

License:Open Source License

public void setInitialFolderManagementView(FolderManagementController controller, String parentFolderPath,
        String baseFolderUrl, Map<String, String> batchClassesMap) {
    Label footer = new Label();
    folderTableView = new FolderTableView(footer);

    folderTablePresenter = new FolderTablePresenter(controller, folderTableView, parentFolderPath,
            baseFolderUrl);/*from ww  w  . j  a  v  a 2  s  .c o  m*/

    folderSystemTreeView = new FolderSystemTreeView();

    folderSystemTreePresenter = new FolderSystemTreePresenter(controller, folderSystemTreeView,
            parentFolderPath, footer);

    SplitLayoutPanel mainContentPanel = new SplitLayoutPanel();
    DockLayoutPanel leftLayoutPanel = new DockLayoutPanel(Unit.PCT);
    ScrollPanel treeScrollPanel = new ScrollPanel();
    treeScrollPanel.add(folderSystemTreeView);
    FolderSelectionWidget folderSelectionWidget = new FolderSelectionWidget(batchClassesMap,
            controller.getEventBus());
    leftLayoutPanel.addNorth(folderSelectionWidget, 10);
    leftLayoutPanel.add(treeScrollPanel);
    mainContentPanel.addWest(leftLayoutPanel, 200);
    DockLayoutPanel contentMainPanel = new DockLayoutPanel(Unit.PCT);
    contentMainPanel.add(folderTableView);
    contentMainPanel.addStyleName(FolderManagementConstants.WHITE_BACKGROUND);
    mainContentPanel.add(contentMainPanel);
    mainPanel.add(mainContentPanel);
    ScreenMaskUtility.unmaskScreen();
}

From source file:com.gmail.cjbooms.thesis.pythonappengine.client.PythonAppEngine.java

License:Open Source License

/**
 * This is the entry point method.// w ww .jav a2 s  .c  o m
 */
public void onModuleLoad() {

    VerticalPanel menuAndToolBarPanel = new VerticalPanel();
    menuAndToolBarPanel.setWidth("100%");

    // Panel to house the Main Menu
    FlowPanel menuBarPanel = new FlowPanel();
    DOM.setElementAttribute(menuBarPanel.getElement(), "id", "main_menu_panel");
    menuBarPanel.add(new MainMenuWidget());
    menuBarPanel.setHeight("1");

    HTMLPanel titleBar = new HTMLPanel(TITLE);
    DOM.setElementAttribute(titleBar.getElement(), "id", "pa-header");

    menuAndToolBarPanel.add(titleBar);
    menuAndToolBarPanel.add(menuBarPanel);
    menuAndToolBarPanel.add(new Toolbar());

    rootPanel.addNorth(menuAndToolBarPanel, 7);

    // Panel to house a footer containing File Context
    HTML footer = new HTML();
    DOM.setElementAttribute(footer.getElement(), "id", "pa-footer");
    rootPanel.addSouth(footer, 2);

    //Build the Main Work Area Panel and Add to Root
    SplitLayoutPanel mainWorkAreaPanel = new SplitLayoutPanel();
    rootPanel.add(mainWorkAreaPanel);

    FileSystemTreeWidget fileSystemTreeWidget = new FileSystemTreeWidget("Available Projects", editor, footer);
    treeScrollPanel.add(fileSystemTreeWidget);
    mainWorkAreaPanel.addWest(treeScrollPanel, 200);

    //contentScrollPanel.setHeight("100%");

    editor.setWidth("100%");
    editor.setHeight("100%");

    //contentScrollPanel.setWidget(editor);
    mainWorkAreaPanel.add(editor);
    mainWorkAreaPanel.setHeight("100%");

    RootLayoutPanel.get().add(rootPanel);

}

From source file:com.google.gwt.examples.SplitLayoutPanelExample.java

License:Apache License

public void onModuleLoad() {
    // Create a three-pane layout with splitters. 
    SplitLayoutPanel p = new SplitLayoutPanel();
    p.addWest(new HTML("navigation"), 128);
    p.addNorth(new HTML("list"), 384);
    p.add(new HTML("details"));

    // Attach the LayoutPanel to the RootLayoutPanel. The latter will listen for
    // resize events on the window to ensure that its children are informed of
    // possible size changes.
    RootLayoutPanel rp = RootLayoutPanel.get();
    rp.add(p);//from   ww  w  .  j av a  2s  . com
}

From source file:com.google.gwt.sample.stockwatcher.client.Panels.java

private Widget loadSplitLayoutPanel() {
    SplitLayoutPanel p = new SplitLayoutPanel();
    p.addWest(new HTML("navigation"), 128);
    p.addNorth(new HTML("list"), 384);
    p.add(new HTML(MUSSUM_IPSUM_LITERIS));
    p.setPixelSize(800, 500);/*w ww.j a v  a  2 s . c  o  m*/
    return p;
}

From source file:com.mashery.examples.api.client.EtsyExample.java

License:Open Source License

public EtsyExample(final PopupMapWidget mapWidget) {
    AbsolutePanel rootPanel = new AbsolutePanel();
    rootPanel.setSize("100%", "100%");

    SplitLayoutPanel panel = new SplitLayoutPanel();
    rootPanel.add(panel);//from  w w w  .ja  v  a2s .  co m
    panel.setHeight("100%");

    FlowPanel topPanel = new FlowPanel();
    panel.addNorth(topPanel, 250d);

    topPanel.add(new HTML("<h1>Featured Listings</h1>"));

    dragController = new PickupDragController(rootPanel, false);
    dragController.setBehaviorDragProxy(true);
    dragController.setBehaviorMultipleSelection(false);
    dragController.setBehaviorDragStartSensitivity(2);

    featuredListingsTable = new FeaturedListingsTable(20);
    topPanel.add(new ScrollPanel(featuredListingsTable));

    DockLayoutPanel bottomPanelContainer = new DockLayoutPanel(Unit.PX);
    panel.add(bottomPanelContainer);

    bottomPanelContainer.addNorth(new HTML("<h1>Favorite Listings</h1>"), 50d);

    bottomPanel = new DeckPanel();
    bottomPanelContainer.add(bottomPanel);

    bottomPanel.add(new HTML("Obtaining your Etsy account information..."));

    favoriteListingsTable = new FavoriteListingsTable(20);

    dropController = new SimpleDropController(favoriteListingsTable) {
        public void onDrop(DragContext context) {
            Image img = (Image) context.draggable;
            String id = img.getElement().getId();
            if (id != null && id.startsWith("listing_")) {
                try {
                    int listingId = Integer.parseInt(id.substring("listing_".length()));
                    favoriteListingsTable.createUserFavoriteListing(listingId);
                } catch (NumberFormatException e) {
                    GWT.log("Unable to parse listing id.", e);
                }
            }
        }
    };

    dragController.registerDropController(dropController);

    FlowPanel userPanel = new FlowPanel();

    userPanel.add(userLabel = new InlineHTML());
    userPanel.add(new InlineHTML("&nbsp;&nbsp;&nbsp;"));
    Anchor disconnectLink = new Anchor("Disconnect", "#");
    userPanel.add(disconnectLink);
    disconnectLink.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            event.preventDefault();
            disconnectEtsyAccount();
        }
    });

    userPanel.add(new InlineHTML("&nbsp;|&nbsp;"));
    Anchor mapProfileLink = new Anchor("Map Profile", "#");
    userPanel.add(mapProfileLink);
    mapProfileLink.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            event.preventDefault();
            if (user != null) {
                UserProfile profile = user.getProfile();
                if (profile != null) {
                    MarkerOptions opt = new MarkerOptions();
                    opt.setTitle(profile.getLoginName());
                    opt.setPosition(new LatLng(profile.getLat(), profile.getLon()));
                    opt.setClickable(true);
                    opt.setVisible(true);
                    mapWidget.show(new Marker(opt));
                }
            }
        }
    });

    mapWidget.addAutoHidePartner(mapProfileLink.getElement());

    userPanel.add(new HTML());
    userPanel.add(favoriteListingsTable);

    bottomPanel.add(new ScrollPanel(userPanel));
    bottomPanel.add(new HTML("You must be logged in in order to manage your favorite listings."));
    bottomPanel.add(createOAuthPanel());

    etsySvc = GWT.create(EtsyService.class);

    infoPanel = new PopupPanel(true);
    infoPanel.setAutoHideOnHistoryEventsEnabled(true);
    infoGrid = new Grid(2, 1);
    infoPanel.setWidget(infoGrid);
    infoGrid.setWidth("240px");

    mapListingLink = new Anchor("Map", "#");
    mapListingLink.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            event.preventDefault();
            if (selectedListing == null)
                return;

            Shop shop = selectedListing.getShop();
            if (shop == null) {
                Window.alert("No shop information available.");
                return;
            }

            if (!shop.hasLatLon()) {
                Window.alert("No location information available.");
                return;
            }

            MarkerOptions opt = new MarkerOptions();
            opt.setTitle(shop.getShopName());
            opt.setPosition(new LatLng(shop.getLat(), shop.getLon()));
            opt.setClickable(true);
            opt.setVisible(true);
            mapWidget.show(new Marker(opt));
        }
    });

    mapWidget.addAutoHidePartner(mapListingLink.getElement());

    deleteFavListingLink = new Anchor("Delete", "#");
    deleteFavListingLink.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            event.preventDefault();
            favoriteListingsTable.deleteUserFavoriteListing(selectedListing.getListingId());
            infoPanel.hide();
        }
    });

    initWidget(rootPanel);

    bottomPanel.showWidget(0);
}

From source file:com.mashery.examples.api.client.Examples.java

License:Open Source License

@Override
public void onModuleLoad() {
    DockLayoutPanel mainPanel = new DockLayoutPanel(Unit.PX);
    RootLayoutPanel.get().add(mainPanel);

    DockLayoutPanel headerPanel = new DockLayoutPanel(Unit.PX);
    mainPanel.addNorth(headerPanel, 80d);

    FlexTable rightPanel = new FlexTable();
    headerPanel.addEast(rightPanel, 250d);
    rightPanel.setCellPadding(4);//  w w w  .  j a v a 2  s  . co m
    rightPanel.setSize("100%", "100%");
    rightPanel.getCellFormatter().setHeight(0, 0, "100%");
    rightPanel.getCellFormatter().setWidth(1, 0, "100%");
    rightPanel.getCellFormatter().setAlignment(0, 0, HasHorizontalAlignment.ALIGN_RIGHT,
            HasVerticalAlignment.ALIGN_TOP);
    ((FlexTable.FlexCellFormatter) rightPanel.getCellFormatter()).setColSpan(0, 0, 2);

    final FlowPanel userPanel = new FlowPanel();
    rightPanel.setWidget(0, 0, userPanel);

    LoginServiceAsync loginSvc = GWT.create(LoginService.class);
    loginSvc.getUserEmail(new AsyncCallback<String>() {

        @Override
        public void onSuccess(final String email) {
            final Anchor loginLink = new Anchor();
            loginLink.setHref(email == null ? "/examples/login" : "/examples/login?logout=true");
            loginLink.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    String callbackURL = Window.Location.createUrlBuilder().buildString();
                    StringBuilder buf = new StringBuilder("/examples/login?callbackURL=");
                    buf.append(URL.encodeQueryString(callbackURL));
                    if (email != null)
                        buf.append("&logout=true");

                    loginLink.setHref(buf.toString());
                }
            });

            if (email == null) {
                loginLink.setHTML("Sign&nbsp;in");
            } else {
                loginLink.setHTML("Sign&nbsp;out");
                userPanel.add(new InlineLabel(email));
                userPanel.add(new InlineHTML("&nbsp;|&nbsp;"));
            }

            userPanel.add(loginLink);
        }

        @Override
        public void onFailure(Throwable caught) {
            userPanel.add(new Label(caught.getLocalizedMessage()));
        }
    });

    mapWidget = new PopupMapWidget();
    rightPanel.setWidget(1, 1, mapWidget);

    Grid logoPanel = new Grid(1, 2);
    logoPanel.setCellSpacing(8);
    logoPanel.getRowFormatter().setVerticalAlign(0, HasVerticalAlignment.ALIGN_TOP);
    headerPanel.add(logoPanel);

    Image masheryLogoImg = new Image("resources/img/mashery.gif");
    Anchor masheryLink = new Anchor();
    masheryLink.setTitle("Mashery, Inc.");
    masheryLink.setHref("http://developer.mashery.com");
    masheryLink.getElement().appendChild(masheryLogoImg.getElement());
    logoPanel.setWidget(0, 0, masheryLink);

    InlineLabel logoLabel = new InlineLabel("Mashery Examples");
    logoLabel.getElement().getStyle().setFontWeight(FontWeight.BOLD);
    logoLabel.getElement().getStyle().setFontSize(28d, Unit.PT);
    logoLabel.getElement().getStyle().setColor("#c1080a");
    logoPanel.setWidget(0, 1, logoLabel);

    SplitLayoutPanel centerPanel = new SplitLayoutPanel();
    mainPanel.add(centerPanel);

    final StackLayoutPanel examplesPanel = new StackLayoutPanel(Unit.PX);
    centerPanel.addWest(examplesPanel, 200d);

    contentPanel = new DeckPanel();
    centerPanel.add(contentPanel);
    contentPanel.getElement().getStyle().setPaddingLeft(8d, Unit.PX);
    contentPanel.setAnimationEnabled(true);

    addExample(new Example("quova", "Quova") {
        @Override
        public Widget createContent() {
            return new QuovaExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("etsy", "Etsy") {
        @Override
        public Widget createContent() {
            return new EtsyExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("weatherbug", "WeatherBug") {
        @Override
        public Widget createContent() {
            return new WeatherBugExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("hotwire", "Hotwire") {
        @Override
        public Widget createContent() {
            return new HotwireExample(mapWidget);
        }
    }, examplesPanel);

    addExample(new Example("active", "Active") {
        @Override
        public Widget createContent() {
            return new ActiveExample(mapWidget);
        }
    }, examplesPanel);

    String historyToken = History.getToken();
    Integer index = exampleIndex.get(historyToken);
    if (index == null)
        index = 0;

    examplesPanel.showWidget(index);
    showExample(index);

    examplesPanel.addSelectionHandler(new SelectionHandler<Integer>() {
        @Override
        public void onSelection(SelectionEvent<Integer> event) {
            int index = event.getSelectedItem();
            Example example = examples.get(index);
            if (example != null)
                History.newItem(example.getId());
        }
    });

    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            String historyToken = event.getValue();
            Integer index = exampleIndex.get(historyToken);
            if (index != null) {
                examplesPanel.showWidget(index);
                showExample(index);
            }
        }
    });
}

From source file:com.mecatran.otp.gwt.client.view.PlannerWidgetImpl.java

License:Open Source License

public PlannerWidgetImpl() {
    rootPanel = new DeckLayoutPanel();

    // Screen interaction widget
    screenWidget = new SplitLayoutPanel() {
        @Override//from  www .  ja  va  2 s .  com
        public void onResize() {
            super.onResize();
            if (plannerMapWidget != null)
                plannerMapWidget.updateSize();
        }
    };
    screenWidget.setSize("100%", "100%");
    selectedItineraryWidget = null;

    plannerMapWidget = new OpenLayersPlannerMapWidget();
    plannerMapWidget.setMapListener(this);
    plannerFormWidget = new PlannerFormWidget();
    plannerFormWidget.setPlannerWidget(this);
    itineraryStackWidget = new ItineraryStackWidget();
    alertStackWidget = new AlertStackWidget();

    // Firefox/Opera hack: no scroll panel...
    boolean useScrollPanel = false;
    leftPanelWidget = new LeftPanelWidget(plannerFormWidget, itineraryStackWidget, alertStackWidget,
            useScrollPanel);
    screenWidget.insert(leftPanelWidget, Direction.WEST, 300, null);
    if (!useScrollPanel) {
        leftPanelWidget.getElement().getParentElement().getStyle().setOverflow(Overflow.AUTO);
    }
    screenWidget.insert(plannerMapWidget.getAsWidget(), Direction.CENTER, 0, null);
    rootPanel.add(screenWidget);
    rootPanel.showWidget(screenWidget);
    rootPanel.setSize("100%", "100%");

    initWidget(rootPanel);
}

From source file:com.nitrous.gwt.earth.client.demo.MouseListenerDemo.java

License:Apache License

/**
 * The Google earth API has loaded, start the application
 *///from   w  ww. j ava 2  s  .co  m
private void onApiLoaded() {
    // the table that will be used to render mouse event information
    table = new CellTable<MouseEventInfo>();
    TextColumn<MouseEventInfo> eventType = new TextColumn<MouseEventInfo>() {
        @Override
        public String getValue(MouseEventInfo object) {
            return object.getEventType();
        }
    };
    eventType.setSortable(false);
    TextColumn<MouseEventInfo> eventDetail = new TextColumn<MouseEventInfo>() {
        @Override
        public String getValue(MouseEventInfo object) {
            KmlMouseEvent event = object.getMouseEvent();
            return "Button=" + event.getButton() + " Latitude=" + event.getLatitude() + " Longitude="
                    + event.getLongitude() + " X=" + event.getClientX() + " Y=" + event.getClientY();
        }
    };
    eventDetail.setSortable(false);
    TextColumn<MouseEventInfo> eventTime = new TextColumn<MouseEventInfo>() {
        @Override
        public String getValue(MouseEventInfo object) {
            return dateTimeFormat.format(object.getTimestamp());
        }
    };
    eventTime.setSortable(false);

    // add the columns
    table.addColumn(eventTime, "Time");
    table.addColumn(eventType, "Type");
    table.addColumn(eventDetail, "Detail");
    table.setWidth("100%");

    // set the data model into the table
    dataProvider = new ListDataProvider<MouseEventInfo>();
    dataProvider.addDataDisplay(table);

    // construct the UI widget
    earth = new GoogleEarthWidget();

    // register a listener to be notified when the earth plug-in has loaded
    earth.addPluginReadyListener(new GEPluginReadyListener() {
        public void pluginReady(GEPlugin ge) {
            // show map content once the plugin has loaded
            loadMapContent();
        }

        public void pluginInitFailure() {
            // failure!
            Window.alert("Failed to initialize Google Earth Plug-in");
        }
    });

    scrollPanel = new ScrollPanel();
    scrollPanel.setHeight("100%");
    scrollPanel.add(table);

    HorizontalPanel header = new HorizontalPanel();
    header.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    mouseLocation = new HTML("");
    header.add(mouseLocation);

    SplitLayoutPanel split = new SplitLayoutPanel();
    split.addWest(scrollPanel, 450);
    split.add(earth);

    DockLayoutPanel dockLayout = new DockLayoutPanel(Unit.PX);
    dockLayout.addNorth(header, 30D);
    dockLayout.add(split);
    RootLayoutPanel.get().add(dockLayout);

    // begin loading the Google Earth Plug-in
    earth.init();
}