Example usage for com.vaadin.ui TooltipConfiguration setQuickOpenTimeout

List of usage examples for com.vaadin.ui TooltipConfiguration setQuickOpenTimeout

Introduction

In this page you can find the example usage for com.vaadin.ui TooltipConfiguration setQuickOpenTimeout.

Prototype

public void setQuickOpenTimeout(int quickOpenTimeout);

Source Link

Document

Sets the time (in ms) that determines when #getQuickOpenDelay() should be used instead of #getOpenDelay() .

Usage

From source file:io.mateu.ui.vaadin.framework.MyUI.java

License:Apache License

/**
 * por aqu entramos. se llama al inicio, cuando refrescamos la pgina (si no est anotado @preserveonrefresh) o la abrimos en otra pestaa
 * @param request// w ww. j a  va 2  s .  c om
 */
@Override
protected void init(VaadinRequest request) {

    /*
    inicializamos la configuracin del tooltip para las ayudas
     */
    TooltipConfiguration ttc = super.getTooltipConfiguration();
    ttc.setOpenDelay(200);
    ttc.setQuickOpenDelay(300);
    ttc.setQuickOpenTimeout(300);

    /*
    si no tenemos la app en la sesin, entonces la buscamos utilizando SPI y la metemos en la sesin
     */
    if (getApp() == null) {
        Iterator<App> apps = ServiceLoader.load(App.class).iterator();

        while (apps.hasNext()) {
            setApp((AbstractApplication) apps.next());
            System.out.println("app " + getApp().getName() + " loaded");
            break;
        }

        String u = "" + Page.getCurrent().getLocation();
        if (u.contains("#"))
            u = u.substring(0, u.indexOf("#"));

        if (getApp() == null) {

            // creamos una app al vuelo para probar la interfaz

            setApp(new AbstractApplication() {
                @Override
                public String getName() {
                    return "Test app";
                }

                @Override
                public List<AbstractArea> buildAreas() {
                    return Lists.newArrayList(new AbstractArea("Area 1") {
                        @Override
                        public List<AbstractModule> buildModules() {
                            return Lists.newArrayList(new AbstractModule() {
                                @Override
                                public String getName() {
                                    return "Mdulo 1";
                                }

                                @Override
                                public List<MenuEntry> buildMenu() {
                                    return Lists.newArrayList(new AbstractAction("Opcin 1") {
                                        @Override
                                        public void run() {
                                            io.mateu.ui.core.client.app.MateuUI.alert("hola!");
                                        }
                                    });
                                }
                            });
                        }
                    });
                }
            });

        }

        getApp().setBaseUrl(u);
    }

    /*
    corregimos el acho de la barra izda para IE9
     */
    if (getPage().getWebBrowser().isIE() && getPage().getWebBrowser().getBrowserMajorVersion() == 9) {
        menu.setWidth("320px");
    }

    /*
    ponemos el ttulo de la pgina
     */
    getPage().setTitle(getApp().getName());

    /*
    fijamos el componente root como contenido de la pgina y lo ajustamos al 100% del ancho de la pgina
     */
    setContent(root);
    root.setWidth("100%");

    /*
    creamos un navigator
     */
    navigator = new Navigator(this, viewDisplay);

    /*
    aadimos el componente men
     */
    root.addMenu(buildMenu(request));
    addStyleName(ValoTheme.UI_WITH_MENU);

    /*
    buscamos view providers utilizando SPI. Los view providers convierten de url a vista vaadin
     */
    ServiceLoader<ViewProvider> sl = ServiceLoader.load(ViewProvider.class);

    for (ViewProvider p : sl)
        navigator.addProvider(new com.vaadin.navigator.ViewProvider() {
            @Override
            public String getViewName(String viewNameAndParameters) {
                return p.getViewName(viewNameAndParameters);
            }

            @Override
            public View getView(String viewName) {
                return getVaadinView(p.getView(viewName));
            }
        });

    /*
    actualizar los settings (datos del usuario en la parte izda)
     */
    refreshSettings();

    /*
    ponemos una vista por defecto
     */
    navigator.setErrorView(HomeView.class);

    /*
    aadimos un listener para cuando cambia la url. Aqu es donde se gestiona la navegacin
     */
    navigator.addViewChangeListener(new ViewChangeListener() {

        @Override
        public boolean beforeViewChange(ViewChangeEvent event) {
            /*
            aqu controlamos si el usuario tiene acceso a esta vista
             */
            boolean ok = true;

            return ok;
        }

        @Override
        public void afterViewChange(ViewChangeEvent event) {

            View v = event.getNewView();
            if (v instanceof ViewLayout) {

                ViewLayout vl = (ViewLayout) v;

                if (!vl.getView().isGranted()) { // esta opcin no est en nuestro men, as que pedimos login
                    openLoginDialog(false);
                } else {

                    vl.getView().addListener(new ViewListener() {
                        @Override
                        public void onClose() {
                            UI.getCurrent().getPage().getJavaScript().execute("history.back()");
                        }
                    });

                    if (vl.getView() instanceof AbstractEditorView) {
                        Object id = null;
                        if (id != null) {
                            ((AbstractEditorView) vl.getView()).setInitialId(id);
                            ((AbstractEditorView) vl.getView()).load();
                        }
                    } else if (vl.getView() instanceof AbstractListView) {
                        AbstractListView lv = (AbstractListView) vl.getView();
                        Data data = null;

                        int page = 0;
                        String s = vl.getView().getParametros();
                        if (!Strings.isNullOrEmpty(s)) {

                            String d = s;
                            if (s.contains("/")) {
                                d = s.split("/")[0];
                                page = Integer.parseInt(s.split("/")[1]);
                            }

                            data = new Data(new String(BaseEncoding.base64().decode(d)));
                        }

                        if (data != null) {
                            lv.setData(data);
                        }

                        if (lv.isSearchOnOpen() || (data != null && data.getPropertyNames().size() > 0)) {
                            lv.set("_data_currentpageindex", page);
                            List<String> errors = lv.getForm().validate();
                            if (errors.size() > 0) {
                                io.mateu.ui.core.client.app.MateuUI.notifyErrors(errors);
                            } else {
                                lv.rpc();
                            }
                        }

                    }

                    getViewDisplay().removeAllComponents();
                    getViewDisplay().addComponent(v.getViewComponent());

                    refreshMenu(((ViewLayout) v).getView().getArea(), ((ViewLayout) v).getView().getMenu());

                    getPage().setTitle(((ViewLayout) v).getView().getTitle());
                }

            }

            for (Iterator<Component> it = menuItemsLayout.iterator(); it.hasNext();) {
                it.next().removeStyleName("selected");
            }
            menu.removeStyleName("valo-menu-visible");

        }
    });

    /*
    si hemos entrado por la raz y no hay contenidos pblicos, entonces pedir el login inmediatamente
     */
    String f = Page.getCurrent().getUriFragment();
    System.out.println("Page.getCurrent().getUriFragment()=" + f);
    if (f == null || f.equals("")) {
        boolean hayPartePublica = false;
        for (AbstractArea a : getApp().getAreas()) {
            hayPartePublica |= a.isPublicAccess();
        }
        if (!hayPartePublica)
            openLoginDialog(true);
    }

}