Example usage for com.vaadin.client.ui.layout ElementResizeListener ElementResizeListener

List of usage examples for com.vaadin.client.ui.layout ElementResizeListener ElementResizeListener

Introduction

In this page you can find the example usage for com.vaadin.client.ui.layout ElementResizeListener ElementResizeListener.

Prototype

ElementResizeListener

Source Link

Usage

From source file:com.ejt.vaadin.sizereporter.shared.SizeReporterConnector.java

License:Apache License

@Override
protected void extend(ServerConnector target) {
    if (target instanceof ComponentConnector) {
        widget = ((ComponentConnector) target).getWidget();

        if (widget.getOffsetWidth() > 0 && widget.getOffsetHeight() > 0) {
            reportSize(); // for widgets already in the layout
        }// w  ww .j a  va2  s. c o  m

        // ElementResizeListener does not work for widgets that are 'loaded' (e.g. Image...)
        if (widget instanceof HasLoadHandlers) {
            ((HasLoadHandlers) widget).addLoadHandler(new LoadHandler() {
                @Override
                public void onLoad(LoadEvent event) {
                    reportSize();
                }
            });
        } else {
            LayoutManager.get(getConnection()).addElementResizeListener(widget.getElement(),
                    new ElementResizeListener() {
                        @Override
                        public void onElementResize(ElementResizeEvent event) {
                            reportSize();
                        }
                    });
        }
    }
}

From source file:com.haulmont.cuba.web.widgets.client.addons.aceeditor.AceEditorConnector.java

License:Apache License

@Override
public void init() {
    super.init();

    // Needed if inside a resizable subwindow.
    // Should we check that and only listen if yes?
    getLayoutManager().addElementResizeListener(getWidget().getElement(), new ElementResizeListener() {
        @Override/*from  w  w  w . jav  a 2  s  . c o m*/
        public void onElementResize(ElementResizeEvent e) {
            getWidget().resize();
        }
    });
}

From source file:info.magnolia.ui.vaadin.gwt.client.actionbar.connector.ActionbarConnector.java

License:Open Source License

@Override
protected void init() {
    super.init();
    addStateChangeHandler(previewChangeHandler);
    addStateChangeHandler("sections", sectionRearrangementHandler);
    addStateChangeHandler("visibleSections", visibleSectionSetChangeHandler);
    addStateChangeHandler("disabledActions", enabledActionSetChangeHandler);
    addStateChangeHandler("isOpen", collapseChangeHandler);

    if (isDeviceTablet()) {
        setOpened(true);/*from   w  w  w.j  a  v a  2s.  c  o m*/
    }

    getLayoutManager().addElementResizeListener(getWidget().getElement(), new ElementResizeListener() {

        @Override
        public void onElementResize(ElementResizeEvent e) {
            getWidget().updateLayout();
        }
    });
}

From source file:info.magnolia.ui.vaadin.gwt.client.applauncher.widget.AppLauncherViewImpl.java

License:Open Source License

public void addTemporaryAppGroup(AppGroup groupParams) {
    final VTemporaryAppTileGroup group = new VTemporaryAppTileGroup(groupParams.getBackgroundColor());
    group.setClientGroup(groupParams.isClientGroup());
    groups.put(groupParams.getName(), group);
    temporarySectionsBar.addGroup(groupParams.getCaption(), group);
    add(group);//from w w w  .  j  av  a 2 s  .c  o  m

    presenter.registerElementResizeListener(group.getElement(), new ElementResizeListener() {
        @Override
        public void onElementResize(ElementResizeEvent e) {
            final VTemporaryAppTileGroup currentOpenGroup = temporarySectionsBar.getCurrentOpenGroup();
            if (currentOpenGroup == null || group == currentOpenGroup) {
                permanentAppScrollPanel.getElement().getStyle()
                        .setBottom(TEMPORARY_PERMANENT_SECTIONS_OFFSET + group.getOffsetHeight(), Unit.PX);
                updatePermanentAppGroupBorder();
            }
        }
    });
}

From source file:info.magnolia.ui.vaadin.gwt.client.applauncher.widget.AppLauncherViewImpl.java

License:Open Source License

public void addPermanentAppGroup(AppGroup groupParams) {
    final VPermanentAppTileGroup group = new VPermanentAppTileGroup(groupParams.getCaption(),
            groupParams.getBackgroundColor());
    group.setClientGroup(groupParams.isClientGroup());
    groups.put(groupParams.getName(), group);
    permanentAppContainer.add(group);//from ww  w  .j  a v  a  2s. c o  m

    presenter.registerElementResizeListener(permanentAppScrollPanel.getElement(), new ElementResizeListener() {
        @Override
        public void onElementResize(ElementResizeEvent e) {
            updatePermanentAppGroupBorder();
        }
    });
}

From source file:info.magnolia.ui.vaadin.gwt.client.layout.thumbnaillayout.connector.LazyThumbnailLayoutConnector.java

License:Open Source License

@Override
protected void init() {
    super.init();
    registerRpc(ThumbnailLayoutClientRpc.class, new ThumbnailLayoutClientRpc() {
        @Override/*  w  ww  .j  a  v  a2  s. c o  m*/
        public void addThumbnails(List<ThumbnailData> data, int startingFrom) {
            final Range received = Range.withLength(startingFrom, data.size());
            final Range maxCacheRange = getMaxCacheRange();
            final Range[] partition = received.partitionWith(maxCacheRange);
            final Range newUsefulData = partition[1];
            if (!newUsefulData.isEmpty()) {
                // Update the parts that are actually inside
                for (int i = newUsefulData.getStart(); i < newUsefulData.getEnd(); i++) {
                    final ThumbnailData thumbnailData = data.get(i - startingFrom);
                    if (thumbnailData.isRealResource()) {
                        idToUrl.put(thumbnailData.getThumbnailId(),
                                getResourceUrl(thumbnailData.getThumbnailId()));
                    }

                    indexToThumbnail.put(i, thumbnailData);
                    idToIndex.put(thumbnailData.getThumbnailId(), i);
                }

                final Range toPushToWidget = newUsefulData.restrictTo(getWidget().getDisplayedRange());
                for (int i = toPushToWidget.getStart(); i < toPushToWidget.getEnd(); ++i) {
                    updateThumbnailContentAtIndex(i);
                }

                // Potentially extend the range
                if (cachedThumbnails.isEmpty()) {
                    cachedThumbnails = newUsefulData;
                } else {
                    purgeCache();
                    if (!cachedThumbnails.isEmpty()) {
                        cachedThumbnails = cachedThumbnails.combineWith(newUsefulData);
                    } else {
                        cachedThumbnails = newUsefulData;
                    }
                }
            }

            waitingData = false;

            // Eventually check whether all needed rows are now available
            serveThumbnails();
        }

        @Override
        public void refresh() {
            refreshViewport();
        }
    });

    getLayoutManager().addElementResizeListener(getWidget().getElement(), new ElementResizeListener() {
        @Override
        public void onElementResize(ElementResizeEvent e) {
            getWidget().resize();
        }
    });
}

From source file:info.magnolia.ui.vaadin.gwt.client.magnoliashell.shell.MagnoliaShellConnector.java

License:Open Source License

@Override
protected void init() {
    super.init();
    addStateChangeHandler(new StateChangeHandler() {
        @Override//from w  w w .  ja v  a 2s. c  o m
        public void onStateChanged(StateChangeEvent event) {
            MagnoliaShellState state = getState();
            Iterator<Entry<ShellAppType, Integer>> it = state.indications.entrySet().iterator();
            while (it.hasNext()) {
                final Entry<ShellAppType, Integer> entry = it.next();
                view.setShellAppIndication(entry.getKey(), entry.getValue());
            }
        }
    });

    registerRpc(ShellClientRpc.class, new ShellClientRpc() {
        @Override
        public void showMessage(String type, String topic, String msg, String id) {
            view.showMessage(MessageType.valueOf(type), topic, msg, id);
        }

        @Override
        public void hideAllMessages() {
            view.hideAllMessages();
        }

        @Override
        public void setFullScreen(boolean isFullScreen) {
            MagnoliaShellConnector.this.doFullScreen(isFullScreen);
        }
    });

    getLayoutManager().addElementResizeListener(getWidget().getElement(), new ElementResizeListener() {
        @Override
        public void onElementResize(ElementResizeEvent e) {
            view.updateShellDivet();
        }
    });

    eventBus.addHandler(CurrentAppCloseEvent.TYPE, new CurrentAppCloseEvent.Handler() {
        @Override
        public void onViewportClose(CurrentAppCloseEvent event) {
            closeCurrentApp();
        }
    });

    /**
     * Fired when the transition that reveals a shell app has just started.
     */
    eventBus.addHandler(ShellAppStartingEvent.TYPE, new ShellAppStartingEvent.Handler() {
        @Override
        public void onShellAppStarting(ShellAppStartingEvent event) {
            ShellState.get().setShellAppStarting();
            view.onShellAppStarting(event.getType());
        }
    });

    /**
     * Fired when the transition that reveals a shell app has just finished.
     */
    eventBus.addHandler(ShellAppStartedEvent.TYPE, new ShellAppStartedEvent.Handler() {
        @Override
        public void onShellAppStarted(ShellAppStartedEvent event) {
            final String currentHistoryToken = History.getToken();
            final Fragment fragment = Fragment.fromString(currentHistoryToken);
            String newShellAppName = event.getType().name();
            ShellState.get().setShellAppStarted();
            if (currentHistoryToken.isEmpty() || !fragment.isShellApp()
                    || !fragment.getAppName().equalsIgnoreCase(newShellAppName)) {
                final Fragment newFragment = Fragment
                        .fromString("shell:" + newShellAppName.toLowerCase() + ":");
                History.newItem(newFragment.toFragment(), false);
                lastHandledFragment = newFragment;
                activateShellApp(newFragment);
            }
        }
    });

    /**
     * Fired when the shell app icon was clicked twice, or area outside of a shell app was clicked.
     */
    eventBus.addHandler(HideShellAppsRequestedEvent.TYPE, new HideShellAppsRequestedEvent.Handler() {
        @Override
        public void onHideShellAppsRequest(HideShellAppsRequestedEvent event) {
            if (ShellState.get().isShellAppStarted() || ShellState.get().isShellAppStarting()) {
                onHideShellAppsRequested();
            }
        }
    });

    /**
     * Fired when the shell app viewport is completely hidden.
     */
    eventBus.addHandler(ShellAppsHiddenEvent.TYPE, new ShellAppsHiddenEvent.Handler() {
        @Override
        public void onShellAppsHidden(ShellAppsHiddenEvent event) {
            rpc.stopCurrentShellApp();
        }
    });

    /**
     * This one is only fired after swipe/keyboard navigation.
     */
    eventBus.addHandler(ActivateAppEvent.TYPE, new ActivateAppEvent.Handler() {
        @Override
        public void onActivateApp(ActivateAppEvent event) {
            if (!ShellState.get().isShellAppStarting()) {
                log.log(Level.WARNING, "Starting from swipe/keyboard: " + event.getName());
                ShellState.get().setAppStarting();
                rpc.activateApp(Fragment.fromString("app:" + event.getName()));
            }
        }
    });

    /**
     * Handles the address bar navigation.
     */
    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            final Fragment newFragment = Fragment.fromString(event.getValue());

            if (newFragment.equals(lastHandledFragment)) {
                return;
            }

            if (newFragment.isShellApp()) {
                if (!getConnection().hasActiveRequest() || !ShellState.get().isAppStarting()) {
                    doShowShellApp(newFragment.resolveShellAppType());
                }
            } else {

                if (lastHandledFragment != null) {
                    log.warning("App navigation from " + lastHandledFragment.toFragment() + " to "
                            + newFragment.toFragment()
                            + (!newFragment.sameSubApp(lastHandledFragment) ? "" : "not")
                            + ", request will %s be sent");
                }

                // The fragment of the app that was last displayed in the viewport.
                final Fragment latestLoadedAppLocation = getState().currentAppUriFragment;

                /**
                 * The new location points to the same app as before, means probably we have returned from the server roundtrip and app
                 * state/location was refined. Either was - we should mark the state as 'app started'.
                 */
                if (newFragment.isSameApp(latestLoadedAppLocation)) {
                    log.warning("Switching to 'APP STARTED' state since the updated app is already active");
                    ShellState.get().setAppStarted();
                }

                /**
                 * We either have no active request -> the location change came directly from address bar, so we have to navigate,
                 * or the new app is requested, so we notify the server about it.
                 */

                if (!getConnection().hasActiveRequest() || !newFragment.isSameApp(lastHandledFragment)) {
                    loadApp(newFragment.getAppName());
                }

                if (ShellState.get().isAppStarting() || !getConnection().hasActiveRequest()) {
                    rpc.activateApp(newFragment);
                }
            }
            lastHandledFragment = newFragment;
        }
    });
}

From source file:org.dussan.vaadin.dcharts.client.connector.DChartsConnector.java

License:Apache License

@Override
protected void init() {
    super.init();

    registerRpc(DChartsClientRPC.class, new DChartsClientRPC() {
        private static final long serialVersionUID = -3966553309119744743L;

        @Override/*from   w  w w  .  j  a va2s.  co m*/
        public void setChartId(String id) {
            getWidget().setChartId(id);
        }

        @Override
        public void setChartData(Map<Integer, String> chartData) {
            getWidget().processChartData(chartData);
        }
    });

    LayoutManager.get(getConnection()).addElementResizeListener(getWidget().getElement(),
            new ElementResizeListener() {
                @Override
                public void onElementResize(ElementResizeEvent e) {
                    if (!getWidget().isChartPrepared()) {
                        getWidget().prepareChart();
                    }
                }
            });
    getWidget().addValueChangeHandler(this);
}

From source file:org.vaadin.addons.portallayout.gwt.client.portal.connection.PortalLayoutConnector.java

License:Apache License

@Override
protected void init() {
    super.init();
    rpc = initRpc();//from  w  w  w .j a va 2s .c  o m
    this.heightRedistributionStrategy = initHeightRedistributionStrategy();
    getLayoutManager().addElementResizeListener(getWidget().getElement(), new ElementResizeListener() {
        @Override
        public void onElementResize(ElementResizeEvent e) {
        }
    });
}

From source file:org.vaadin.addons.portallayout.gwt.client.portal.connection.PortalLayoutConnector.java

License:Apache License

@Override
protected Panel createWidget() {
    this.view = initView();
    this.dropController = initDropController();
    commonDragController.registerDropController(dropController);
    view.asWidget().addAttachHandler(new AttachEvent.Handler() {
        @Override//  www  .  ja v a  2s .  c  o m
        public void onAttachOrDetach(AttachEvent event) {
            getLayoutManager().addElementResizeListener(
                    ((ComponentConnector) getParent()).getWidget().getElement(), new ElementResizeListener() {
                        @Override
                        public void onElementResize(ElementResizeEvent e) {
                            LayoutManager lm = e.getLayoutManager();
                            if (lm.getOuterHeight(e.getElement()) > lm
                                    .getOuterHeight(getWidget().getElement())) {
                                //getWidget().getElement().getStyle().setProperty("height", lm.getOuterHeight(e.getElement()) + "px");
                            }
                        }
                    });
        }
    });
    return view.asWidget();
}