Example usage for com.google.gwt.user.client.ui MenuBar addItem

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

Introduction

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

Prototype

public MenuItem addItem(MenuItem item) 

Source Link

Document

Adds a menu item to the bar.

Usage

From source file:accelerator.client.view.desktop.DesktopMainMenuView.java

License:Open Source License

@UiHandler("editButton")
void onEditButtonClick(ClickEvent e) {
    final PopupPanel popup = new PopupPanel(true, false);
    MenuBar menu = new MenuBar(true);

    {/*from w  ww.  j a v a  2 s.  com*/
        final Project p = getSelectedProject();
        final boolean isProjectSelected = p != null;

        // 
        MenuItem edit = new MenuItem("", new Command() {
            public void execute() {
                assert (p != null);
                popup.hide();
                ProjectDialogBox dlg = new ProjectDialogBox(p);
                dlg.setHandler(new ProjectDialogBox.Handler() {
                    public void onOk(Project input) {
                        handler.updateProject(input);
                    }
                });
                dlg.center();
            }
        });
        edit.setEnabled(isProjectSelected);
        menu.addItem(edit);

        // 
        MenuItem delete = new MenuItem("", new Command() {
            public void execute() {
                assert (p != null);
                popup.hide();
                handler.deleteProject(p);
            }
        });
        delete.setEnabled(isProjectSelected);
        menu.addItem(delete);
    }

    menu.addSeparator();

    {
        final Tag t = getSelectedTag();
        final boolean isTagSelected = t != null;

        // 
        MenuItem edit = new MenuItem("", new Command() {
            public void execute() {
                assert (t != null);
                popup.hide();
                TagDialogBox dlg = new TagDialogBox(t);
                dlg.setHandler(new TagDialogBox.Handler() {
                    public void onOk(Tag input) {
                        handler.updateTag(input);
                    }
                });
                dlg.center();
            }
        });
        edit.setEnabled(isTagSelected);
        menu.addItem(edit);

        // 
        MenuItem delete = new MenuItem("", new Command() {
            public void execute() {
                assert (t != null);
                popup.hide();
                handler.deleteTag(t);
            }
        });
        delete.setEnabled(isTagSelected);
        menu.addItem(delete);
    }

    popup.setWidget(menu);
    popup.setPopupPositionAndShow(new PositionCallback() {
        public void setPosition(int offsetWidth, int offsetHeight) {
            int left = editButton.getAbsoluteLeft();
            int top = editButton.getAbsoluteTop() - offsetHeight;
            popup.setPopupPosition(left, top);
        }
    });
}

From source file:ch.heftix.mailxel.client.MailxelMainToolBar.java

License:Open Source License

public MailxelMainToolBar(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    this.mailxelService = mailxelService;
    this.mailxelPanel = mailxelPanel;

    logo = new Image("img/mailxel.png");
    logo.setTitle("MailXel " + Version.getVersion());
    logo.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            PopupPanel pp = new PopupPanel(true);
            DisclosurePanel dp = new DisclosurePanel("MailXel " + Version.getVersion());
            dp.setWidth("400px");
            dp.setOpen(true);// w w  w.j ava 2s.  c o  m

            HTML html = new HTML();
            StringBuffer sb = new StringBuffer();
            sb.append("(c) 2008-2010 by Simon Hefti. All rights reserved.<br/>");
            sb.append(
                    "<p>mailxel is licensed under the <a href=\"http://www.eclipse.org/legal/epl-v10.html\">EPL 1.0</a>. mailxel is distributed on an \"AS IS\" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.");
            sb.append("<p>mailxel relies on the following components:");
            sb.append("<ul>");
            sb.append(
                    "<li>GWT, <a href=\"http://code.google.com/webtoolkit\">http://code.google.com/webtoolkit</a></li>");
            sb.append(
                    "<li>sqlite-jdbc, <a href=\"http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC\">http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC</a></li>");
            sb.append(
                    "<li>(and thus on sqlite itself, <a href=\"http://www.sqlite.org\">http://www.sqlite.org</a>)</li>");
            sb.append(
                    "<li>Java Mail API, <a href=\"http://java.sun.com/products/javamail\">http://java.sun.com/products/javamail</a></li>");
            sb.append(
                    "<li>jetty servlet container, <a href=\"http://www.eclipse.org/jetty/\">http://www.eclipse.org/jetty/</a></li>");
            sb.append(
                    "<li>fugue-icons, <a href=\"http://code.google.com/p/fugue-icons-src/\">http://code.google.com/p/fugue-icons-src/</a></li>");
            sb.append("<li>jsoup, <a href=\"http://jsoup.org\">http://jsoup.org</a></li>");
            sb.append("</ul>");
            html.setHTML(sb.toString());
            dp.add(html);
            dp.setOpen(true);

            pp.add(dp);
            pp.show();
        }
    });

    Image home = new Image("img/find.png");
    home.setTitle("Search");
    home.setStylePrimaryName("mailxel-toolbar-item");
    home.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            Panel panel = new MailOverviewGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(panel, "Search");
        }
    });

    final Image query = new Image("img/document-task.png");
    query.setTitle("Search (predefined query)");
    query.setStylePrimaryName("mailxel-toolbar-item");
    query.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            final StatusItem si = mailxelPanel.statusStart("retrieve stored message queries");

            mailxelService.searchQueries(MessageQueryTO.T_MESSAGE_QUERY, null,
                    new AsyncCallback<List<MessageQueryTO>>() {

                        public void onFailure(Throwable caught) {
                            si.error(caught);
                        }

                        public void onSuccess(List<MessageQueryTO> result) {
                            si.done();
                            if (null != result && result.size() > 0) {
                                PopupMenu popupMenu = new PopupMenu(query);
                                for (MessageQueryTO mqTO : result) {
                                    String name = mqTO.shortname + " (" + UIUtil.shorten(mqTO.name) + ")";
                                    MenuItem menuItem = new MenuItem(name, new MessageQueryCommand(
                                            mailxelService, mailxelPanel, popupMenu, mqTO));
                                    String url = DirectMailServiceUtil.getIconURL(mqTO.iconId);
                                    if (null != url) {
                                        String html = "<img src=\"" + url + "\"/>&nbsp;" + name;
                                        menuItem.setHTML(html);
                                    }
                                    popupMenu.addItem(menuItem);
                                }
                                popupMenu.show();
                            }
                        }
                    });
        }
    });

    Image mailnew = new Image("img/mail-new.png");
    mailnew.setTitle("New Mail");
    mailnew.setStylePrimaryName("mailxel-toolbar-item");
    mailnew.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            final MailSendGrid mailSendGrid = new MailSendGrid(mailxelService, mailxelPanel, null,
                    MailSendGrid.TYPE_NEW);
            mailxelPanel.addTab(mailSendGrid, "New Mail");
        }
    });

    Image noteToSelf = new Image("img/note.png");
    noteToSelf.setTitle("Note to myself");
    noteToSelf.setStylePrimaryName("mailxel-toolbar-item");
    noteToSelf.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            final MailSendGrid mailSendGrid = new MailSendGrid(mailxelService, mailxelPanel, null,
                    MailSendGrid.TYPE_SELF);
            mailxelPanel.addTab(mailSendGrid, "New Note");
        }
    });

    Image contacts = new Image("img/address-book.png");
    contacts.setTitle("Address Book");
    contacts.setStylePrimaryName("mailxel-toolbar-item");
    contacts.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            AddressOverviewGrid ag = new AddressOverviewGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(ag, "Contacts");
        }
    });

    /**
     * mail download menu on click, a menu with the available accounts is
     * displayed, allowing the user is asked to choose the data source.
     */
    final Image download = new Image("img/download-mail.png");
    download.setTitle("Mail download");
    download.setStylePrimaryName("mailxel-toolbar-item");
    download.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            ConfigTO configTO = mailxelPanel.getConfig();
            String[] accounts = configTO.accountNames;

            if (null != accounts && accounts.length > 0) {

                PopupMenu popupMenu = new PopupMenu(download);
                // first item: allow download from all known accounts
                MenuItem menuItem = new MenuItem("Scan all accounts",
                        new ScanMailFolderCommand(mailxelService, mailxelPanel, popupMenu, accounts));
                popupMenu.addItem(menuItem);

                // add one menu item per account
                for (int i = 0; i < accounts.length; i++) {
                    String[] selectedAccount = new String[1];
                    selectedAccount[0] = accounts[i];
                    menuItem = new MenuItem(accounts[i], new ScanMailFolderCommand(mailxelService, mailxelPanel,
                            popupMenu, selectedAccount));
                    popupMenu.addItem(menuItem);
                }
                popupMenu.show();
            }
        }
    });

    final Image reorgMailFolder = new Image("img/wand.png");
    reorgMailFolder.setTitle("reorganize mail folder");
    reorgMailFolder.setStylePrimaryName("mailxel-toolbar-item");
    reorgMailFolder.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            ConfigTO configTO = mailxelPanel.getConfig();
            String[] accounts = configTO.accountNames;

            if (null != accounts && accounts.length > 0) {

                PopupMenu popupMenu = new PopupMenu(reorgMailFolder);
                // first item: allow reorg from all known accounts
                MenuItem menuItem = new MenuItem("All accounts", new ReorgMailFolderCommand(mailxelService,
                        mailxelPanel, popupMenu, reorgMailFolder, accounts));
                popupMenu.addItem(menuItem);

                // add one menu item per account
                for (int i = 0; i < accounts.length; i++) {
                    String[] selectedAccount = new String[1];
                    selectedAccount[0] = accounts[i];
                    menuItem = new MenuItem(accounts[i], new ReorgMailFolderCommand(mailxelService,
                            mailxelPanel, popupMenu, reorgMailFolder, selectedAccount));
                    popupMenu.addItem(menuItem);
                }
                popupMenu.show();
            }
        }
    });

    final Image categories = new Image("img/tags.png");
    categories.setTitle("Manage Categories");
    categories.setStylePrimaryName("mailxel-toolbar-item");
    categories.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            CategoryOverviewGrid cog = new CategoryOverviewGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(cog, "Categories");
        }
    });

    final Image setup = new Image("img/preferences-system.png");
    setup.setTitle("System Setup");
    setup.setStylePrimaryName("mailxel-toolbar-item");
    setup.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            // ConfigTabPanel cg = new ConfigTabPanel();
            ConfigGrid cg = new ConfigGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(cg, "Setup");
        }
    });

    final Image login = new Image("img/lock.png");
    login.setTitle("Login");
    login.setStylePrimaryName("mailxel-toolbar-item");
    login.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {

            // create login box
            LoginPanel loginPanel = new LoginPanel(mailxelService, mailxelPanel);
            int x = login.getAbsoluteLeft();
            int y = login.getAbsoluteTop();
            loginPanel.setPopupPosition(x, y);
            loginPanel.show();
        }
    });

    final Image additional = new Image("img/context-menu.png");
    additional.setTitle("Additional functions");
    additional.setStylePrimaryName("mailxel-toolbar-item");

    final PopupCommand importMboxCommand = new PopupCommand() {

        public void execute() {

            final PopupPanel pup = new PopupPanel(true);
            HorizontalPanel hp = new HorizontalPanel();
            final TextBox tb = new TextBox();
            tb.setWidth("300px");
            hp.add(tb);

            Button b = new Button();
            b.setText("import");
            b.addClickHandler(new ClickHandler() {

                public void onClick(ClickEvent sender) {
                    String name = tb.getText();
                    if (null != name) {
                        name = name.trim();
                        if (name.length() > 0) {
                            final StatusItem si = mailxelPanel.statusStart("Import from mbox: " + name);
                            mailxelService.importMboxFile(name, new AsyncCallback<Void>() {

                                public void onFailure(Throwable caught) {
                                    si.error(caught);
                                }

                                public void onSuccess(Void result) {
                                    si.done();
                                }
                            });
                            pup.hide();
                        }
                    }
                }
            });

            hp.add(b);
            pup.add(hp);

            int x = additional.getAbsoluteLeft();
            int y = additional.getAbsoluteTop();
            pup.setPopupPosition(x, y);
            /** show input box for path to mbox file */
            pup.show();
            /** hide the list of available additional commands */
            hide();
        }
    };

    final PopupCommand addressUploadCommand = new PopupCommand() {

        public void execute() {
            AddressUploadGrid ug = new AddressUploadGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(ug, "Address Upload");
            /** hide the list of available additional commands */
            hide();
        }
    };

    final Command showWelcomePanelCommand = new Command() {

        public void execute() {
            WelcomeToMailxelPanel wp = new WelcomeToMailxelPanel(mailxelService, mailxelPanel);
            mailxelPanel.addTab(wp, "Welcome");
        }
    };

    final PopupCommand deleteConfigCommand = new PopupCommand() {

        public void execute() {

            PopupPanel pop = new PopupPanel(true, true);
            HorizontalPanel hp = new HorizontalPanel();
            Label label = new Label("Really delete all configuration?");
            hp.add(label);
            Button b = new Button();
            b.setText("Ok");
            b.addClickHandler(new ClickHandler() {

                public void onClick(ClickEvent event) {
                    final StatusItem si = mailxelPanel.statusStart("deleting configuration");
                    mailxelService.deleteConfig(new AsyncCallback<Void>() {

                        public void onFailure(Throwable caught) {
                            si.error(caught);
                        }

                        public void onSuccess(Void result) {
                            si.done();
                        }
                    });
                }
            });
            hp.add(b);
            pop.add(hp);

            int x = additional.getAbsoluteLeft();
            int y = additional.getAbsoluteTop();
            pop.setPopupPosition(x, y);
            pop.show();
            /** hide the list of available additional commands */
            hide();
        }
    };

    final Command updateToMeFlagCommand = new Command() {

        public void execute() {
            final StatusItem si = mailxelPanel.statusStart("Update 'to me' flag");
            mailxelService.updateToMeFlag(new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    si.error(caught);
                }

                public void onSuccess(Void result) {
                    si.done();
                }
            });
        }
    };

    final Command updateFromMeFlagCommand = new Command() {

        public void execute() {
            final StatusItem si = mailxelPanel.statusStart("Update 'from me' flag");
            mailxelService.updateFromMeFlag(new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    si.error(caught);
                }

                public void onSuccess(Void result) {
                    si.done();
                }
            });
        }
    };

    final Command showStatisticsCommand = new Command() {

        public void execute() {
            StatisticsGrid sg = new StatisticsGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(sg, "Statistics");
        }
    };

    final Command showIconsCommand = new Command() {

        public void execute() {
            IconOverviewGrid og = new IconOverviewGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(og, "Icons");
        }
    };

    final Command showMessageQueriesCommand = new Command() {

        public void execute() {
            MessageQueryOverviewGrid mqog = new MessageQueryOverviewGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(mqog, "Message Queries");
        }
    };

    final Command showAttachmentGridCommand = new Command() {

        public void execute() {
            AttachmentOverviewGrid aog = new AttachmentOverviewGrid(mailxelService, mailxelPanel);
            mailxelPanel.addTab(aog, "Attachment Overview");
        }
    };

    final Command closeAllTabsCommand = new Command() {

        public void execute() {
            mailxelPanel.closeAllNonEditTabs();
        }
    };

    final Command dbHousekeeping = new Command() {

        public void execute() {
            final StatusItem si = mailxelPanel.statusStart("DB housekeeping");
            mailxelService.housekeeping(new AsyncCallback<String>() {

                public void onFailure(Throwable caught) {
                    si.error(caught);
                }

                public void onSuccess(String result) {
                    if (result.startsWith("200 OK")) {
                        si.done();
                    } else {
                        si.error(result);
                    }
                }
            });
        }
    };

    final Command messageCount = new Command() {

        public void execute() {
            updateCounts();
        }
    };

    additional.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            MenuBar popupMenuBar = new MenuBar(true);
            PopupPanel popupPanel = new PopupPanel(true);

            MenuItem menuItem = new MenuItem("Attachment Overview", showAttachmentGridCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Close all Tabs", closeAllTabsCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Message Queries", showMessageQueriesCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("DB Housekeeping", dbHousekeeping);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("update pending messages count", messageCount);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Statistics", showStatisticsCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Icons", showIconsCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Import mbox file", importMboxCommand);
            importMboxCommand.setPopupPanel(popupPanel);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Address upload", addressUploadCommand);
            addressUploadCommand.setPopupPanel(popupPanel);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Welcome", showWelcomePanelCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Delete existing configuration", deleteConfigCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Update 'from me' flag", updateFromMeFlagCommand);
            popupMenuBar.addItem(menuItem);

            menuItem = new MenuItem("Update 'to me' flag", updateToMeFlagCommand);
            popupMenuBar.addItem(menuItem);

            popupMenuBar.setVisible(true);
            popupPanel.add(popupMenuBar);

            int x = additional.getAbsoluteLeft();
            int y = additional.getAbsoluteTop();

            popupPanel.setPopupPosition(x, y);
            popupPanel.show();
        }
    });

    updateCounts();

    add(home);
    add(query);
    add(mailnew);
    add(noteToSelf);
    add(contacts);
    add(categories);
    add(download);
    add(reorgMailFolder);
    add(setup);
    add(login);
    add(additional);
    add(logo);
    add(msgCountAct);
}

From source file:com.appspot.socialinquirer.client.SocialInquirer.java

License:Apache License

/**
 * Creates the menu bar.//from   ww w.jav a  2s. co m
 *
 * @param constants the constants
 * @param user the user
 * @return the menu bar
 */
private MenuBar createMenuBar(final EverScribeConstants constants, final User user) {
    final boolean enabled = (user != null);
    final MenuBar menu = new MenuBar();
    GWT.runAsync(new RunAsyncCallback() {
        public void onFailure(Throwable caught) {
            UiUtils.showErrorDialog(constants, constants.errorCodeDownloadFailed());
        }

        public void onSuccess() {
            menu.setAutoOpen(true);
            menu.setAnimationEnabled(true);

            MenuItem homeMenuItem = new MenuItem(constants.homeMenuName(),
                    new HistoryCommand(HistoryToken.Home));
            homeMenuItem.setEnabled(enabled);
            menu.addItem(homeMenuItem);

            MenuBar networkMenuItem = new MenuBar(true);
            networkMenuItem.setAnimationEnabled(true);
            menu.addItem(new MenuItem(constants.networkMenuName(), networkMenuItem));
            MenuItem nfMenuItem = new MenuItem(constants.followersMenuName(),
                    new HistoryCommand(HistoryToken.Network_Followers));
            nfMenuItem.setEnabled(enabled);
            networkMenuItem.addItem(nfMenuItem);
            nfMenuItem = new MenuItem(constants.followingMenuName(),
                    new HistoryCommand(HistoryToken.Network_Following));
            nfMenuItem.setEnabled(enabled);
            networkMenuItem.addItem(nfMenuItem);
            nfMenuItem = new MenuItem(constants.recommendedMenuName(),
                    new HistoryCommand(HistoryToken.Network_Recommended));
            nfMenuItem.setEnabled(enabled);
            networkMenuItem.addItem(nfMenuItem);

            MenuBar activityMenuItem = new MenuBar(true);
            activityMenuItem.setAnimationEnabled(true);
            menu.addItem(new MenuItem(constants.activityMenuName(), activityMenuItem));
            MenuItem aMenuItem = new MenuItem(constants.tasksMenuName(),
                    new HistoryCommand(HistoryToken.Activity_Tasks));
            aMenuItem.setEnabled(enabled);
            activityMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.pollMenuName(), new HistoryCommand(HistoryToken.Activity_Polls));
            aMenuItem.setEnabled(enabled);
            activityMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.quizMenuName(),
                    new HistoryCommand(HistoryToken.Activity_Quizzes));
            aMenuItem.setEnabled(enabled);
            activityMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.pagesMenuName(),
                    new HistoryCommand(HistoryToken.Activity_Pages));
            aMenuItem.setEnabled(enabled);
            activityMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.messagesMenuName(),
                    new HistoryCommand(HistoryToken.Activity_Messages));
            aMenuItem.setEnabled(enabled);
            activityMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.endorsementsMenuName(),
                    new HistoryCommand(HistoryToken.Activity_Endorsements));
            aMenuItem.setEnabled(enabled);
            activityMenuItem.addItem(aMenuItem);

            //            MenuBar pagesMenuItem = new MenuBar(true);
            //            pagesMenuItem.setAnimationEnabled(true);
            //            menu.addItem(new MenuItem(constants.pagesMenuName(),
            //                  pagesMenuItem));
            //            aMenuItem = new MenuItem(constants
            //                  .followingMenuName(), new HistoryCommand(HistoryToken.Pages_Following));
            //            aMenuItem.setEnabled(enabled);
            //            pagesMenuItem.addItem(aMenuItem);
            //            aMenuItem = new MenuItem(constants
            //                  .ownedMenuName(), new HistoryCommand(HistoryToken.Pages_Created));
            //            aMenuItem.setEnabled(enabled);
            //            pagesMenuItem.addItem(aMenuItem);
            //            aMenuItem = new MenuItem(constants
            //                  .recommendedMenuName(), new HistoryCommand(HistoryToken.Pages_Recommended));
            //            aMenuItem.setEnabled(enabled);
            //            pagesMenuItem.addItem(aMenuItem);

            MenuBar questionsMenuItem = new MenuBar(true);
            questionsMenuItem.setAnimationEnabled(true);
            menu.addItem(new MenuItem(constants.questionsMenuName(), questionsMenuItem));
            aMenuItem = new MenuItem(constants.askedMenuName(),
                    new HistoryCommand(HistoryToken.Questions_Asked));
            aMenuItem.setEnabled(enabled);
            questionsMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.answeredMenuName(),
                    new HistoryCommand(HistoryToken.Questions_Answered));
            aMenuItem.setEnabled(enabled);
            questionsMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.followingMenuName(),
                    new HistoryCommand(HistoryToken.Questions_Following));
            aMenuItem.setEnabled(enabled);
            questionsMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.recommendedMenuName(),
                    new HistoryCommand(HistoryToken.Questions_Recommended));
            aMenuItem.setEnabled(enabled);
            questionsMenuItem.addItem(aMenuItem);

            MenuBar tagsMenuItem = new MenuBar(true);
            tagsMenuItem.setAnimationEnabled(true);
            menu.addItem(new MenuItem(constants.tagsMenuName(), tagsMenuItem));
            aMenuItem = new MenuItem(constants.ownedMenuName(), new HistoryCommand(HistoryToken.Topics_Active));
            aMenuItem.setEnabled(enabled);
            tagsMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.followingMenuName(),
                    new HistoryCommand(HistoryToken.Topics_Following));
            aMenuItem.setEnabled(enabled);
            tagsMenuItem.addItem(aMenuItem);
            aMenuItem = new MenuItem(constants.recommendedMenuName(),
                    new HistoryCommand(HistoryToken.Topics_Recommended));
            aMenuItem.setEnabled(enabled);
            tagsMenuItem.addItem(aMenuItem);

            MenuBar accountMenu = new MenuBar(true);
            accountMenu.setAnimationEnabled(true);
            menu.addItem(new MenuItem(constants.accountMenuName(), accountMenu));

            MenuItem loginMenuItem = new MenuItem(constants.loginMenuName(), new LoginCommand(constants));
            loginMenuItem.setEnabled(!enabled);
            accountMenu.addItem(loginMenuItem);
            MenuItem logoutMenuItem = new MenuItem(constants.logoutMenuName(), new LogoutCommand(constants));
            logoutMenuItem.setEnabled(enabled);
            accountMenu.addItem(logoutMenuItem);

            MenuItem settingsMenuItem = new MenuItem(constants.settingsMenuName(),
                    new HistoryCommand(HistoryToken.Settings));
            settingsMenuItem.setEnabled(enabled);
            accountMenu.addItem(settingsMenuItem);
        }
    });
    return menu;
}

From source file:com.bearsoft.gwt.ui.widgets.grid.Grid.java

public Grid(ProvidesKey<T> aKeyProvider) {
    super();//www .  ja va  2  s. com
    getElement().getStyle().setPosition(Style.Position.RELATIVE);
    getElement().appendChild(tdsStyleElement);
    getElement().appendChild(cellsStyleElement);
    getElement().appendChild(oddRowsStyleElement);
    getElement().appendChild(evenRowsStyleElement);
    setRowsHeight(25);
    hive = new FlexTable();
    setWidget(hive);
    hive.setCellPadding(0);
    hive.setCellSpacing(0);
    hive.setBorderWidth(0);
    headerLeft = new GridSection<T>(aKeyProvider);
    headerLeftContainer = new ScrollPanel(headerLeft);
    headerRight = new GridSection<T>(aKeyProvider);
    headerRightContainer = new ScrollPanel(headerRight);
    frozenLeft = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerLeft.redrawFooters();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerLeft.redrawFooters();
        }

    };

    frozenLeftContainer = new ScrollPanel(frozenLeft);
    frozenRight = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerRight.redrawFooters();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerRight.redrawFooters();
        }

    };
    frozenRightContainer = new ScrollPanel(frozenRight);
    scrollableLeft = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerLeft.redrawFooters();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerLeft.redrawFooters();
        }

    };
    scrollableLeftContainer = new ScrollPanel(scrollableLeft);
    scrollableRight = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerRight.redrawFooters();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerRight.redrawFooters();
        }
    };
    scrollableRightContainer = new ScrollPanel(scrollableRight);
    footerLeft = new GridSection<>(aKeyProvider);
    footerLeftContainer = new ScrollPanel(footerLeft);
    footerRight = new GridSection<>(aKeyProvider);
    footerRightContainer = new ScrollPanel(footerRight);
    // positioning context / overflow setup
    // overflow
    for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer,
            frozenRightContainer, scrollableLeftContainer, footerLeftContainer, footerRightContainer }) {
        w.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN);
    }
    // scrollableRightContainer.getElement().getStyle().setOverflow(Style.Overflow.AUTO);
    // default value
    // context
    for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer,
            frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer,
            footerRightContainer }) {
        w.getElement().getFirstChildElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    }
    // propagation of some widths
    headerLeft.setWidthPropagator(new GridWidthPropagator<T>(headerLeft) {

        @Override
        public void changed() {
            super.changed();
            propagateHeaderWidth();
        }

    });
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenLeft,
            frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) {
        section.setWidthPropagator(new GridWidthPropagator<>(section));
    }
    headerLeft.setColumnsPartners(new AbstractCellTable[] { frozenLeft, scrollableLeft, footerLeft });
    headerRight.setColumnsPartners(new AbstractCellTable[] { frozenRight, scrollableRight, footerRight });
    ColumnsRemover leftColumnsRemover = new ColumnsRemoverAdapter<T>(headerLeft, frozenLeft, scrollableLeft,
            footerLeft);
    ColumnsRemover rightColumnsRemover = new ColumnsRemoverAdapter<T>(headerRight, frozenRight, scrollableRight,
            footerRight);
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft,
            scrollableLeft, footerLeft }) {
        section.setColumnsRemover(leftColumnsRemover);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight,
            scrollableRight, footerRight }) {
        section.setColumnsRemover(rightColumnsRemover);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenLeft, scrollableLeft,
            footerLeft }) {
        section.setHeaderSource(headerLeft);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenRight, scrollableRight,
            footerRight }) {
        section.setHeaderSource(headerRight);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft,
            scrollableLeft }) {
        section.setFooterSource(footerLeft);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight,
            scrollableRight }) {
        section.setFooterSource(footerRight);
    }

    // hive organization
    hive.setWidget(0, 0, headerLeftContainer);
    hive.setWidget(0, 1, headerRightContainer);
    hive.setWidget(1, 0, frozenLeftContainer);
    hive.setWidget(1, 1, frozenRightContainer);
    hive.setWidget(2, 0, scrollableLeftContainer);
    hive.setWidget(2, 1, scrollableRightContainer);
    hive.setWidget(3, 0, footerLeftContainer);
    hive.setWidget(3, 1, footerRightContainer);

    for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer,
            frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer,
            footerRightContainer }) {
        w.setWidth("100%");
        w.setHeight("100%");
    }
    // misc
    for (Widget w : new Widget[] { headerRightContainer, frozenRightContainer, footerRightContainer,
            scrollableLeftContainer }) {
        w.getElement().getParentElement().getStyle().setOverflow(Style.Overflow.HIDDEN);
    }
    hive.getElement().getStyle().setTableLayout(Style.TableLayout.FIXED);
    hive.getElement().getStyle().setPosition(Style.Position.RELATIVE);
    for (CellTable<?> tbl : new CellTable<?>[] { headerLeft, headerRight, frozenLeft, frozenRight,
            scrollableLeft, scrollableRight, footerLeft, footerRight }) {
        tbl.setTableLayoutFixed(true);
    }
    // header
    headerLeft.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerLeft, false, this));
    headerLeft.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerLeft, true));
    headerRight.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerRight, false, this));
    headerRight.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerRight, true));
    // footer
    footerLeft.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerLeft, false));
    footerLeft.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerLeft, true));
    footerRight.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerRight, false));
    footerRight.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerRight, true));
    // data bodies
    for (GridSection<?> section : new GridSection<?>[] { frozenLeft, frozenRight, scrollableLeft,
            scrollableRight }) {
        GridSection<T> gSection = (GridSection<T>) section;
        gSection.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(gSection, false));
        gSection.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(gSection, true));
    }
    for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, frozenLeft, frozenRight,
            scrollableLeft, scrollableRight, footerLeft, footerRight }) {
        section.setAutoHeaderRefreshDisabled(true);
    }
    for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, footerLeft, footerRight }) {
        section.setAutoFooterRefreshDisabled(true);
    }
    // cells
    installCellBuilders();

    scrollableRightContainer.addScrollHandler(new ScrollHandler() {

        @Override
        public void onScroll(ScrollEvent event) {
            int aimTop = scrollableRightContainer.getElement().getScrollTop();
            int aimLeft = scrollableRightContainer.getElement().getScrollLeft();

            scrollableLeftContainer.getElement().setScrollTop(aimTop);
            int factTopDelta = aimTop - scrollableLeftContainer.getElement().getScrollTop();
            if (factTopDelta > 0) {
                scrollableLeftContainer.getElement().getStyle().setBottom(factTopDelta, Style.Unit.PX);
            } else {
                scrollableLeftContainer.getElement().getStyle().clearBottom();
            }
            headerRightContainer.getElement().setScrollLeft(aimLeft);
            int factLeftDelta0 = aimLeft - headerRightContainer.getElement().getScrollLeft();
            if (factLeftDelta0 > 0) {
                headerRightContainer.getElement().getStyle().setRight(factLeftDelta0, Style.Unit.PX);
            } else {
                headerRightContainer.getElement().getStyle().clearRight();
            }
            frozenRightContainer.getElement().setScrollLeft(aimLeft);
            int factLeftDelta1 = aimLeft - frozenRightContainer.getElement().getScrollLeft();
            if (factLeftDelta1 > 0) {
                frozenRightContainer.getElement().getStyle().setRight(factLeftDelta1, Style.Unit.PX);
            } else {
                frozenRightContainer.getElement().getStyle().clearRight();
            }
            footerRightContainer.getElement()
                    .setScrollLeft(scrollableRightContainer.getElement().getScrollLeft());
            int factLeftDelta2 = aimLeft - footerRightContainer.getElement().getScrollLeft();
            if (factLeftDelta2 > 0) {
                footerRightContainer.getElement().getStyle().setRight(factLeftDelta2, Style.Unit.PX);
            } else {
                footerRightContainer.getElement().getStyle().clearRight();
            }
        }

    });
    ghostLine = Document.get().createDivElement();
    ghostLine.addClassName(RULER_STYLE);
    ghostLine.getStyle().setPosition(Style.Position.ABSOLUTE);
    ghostLine.getStyle().setTop(0, Style.Unit.PX);
    ghostColumn = Document.get().createDivElement();
    ghostColumn.addClassName(COLUMN_PHANTOM_STYLE);
    ghostColumn.getStyle().setPosition(Style.Position.ABSOLUTE);
    ghostColumn.getStyle().setTop(0, Style.Unit.PX);
    addDomHandler(new DragEnterHandler() {

        @Override
        public void onDragEnter(DragEnterEvent event) {
            if (DraggedColumn.instance != null) {
                if (DraggedColumn.instance.isMove()) {
                    event.preventDefault();
                    event.stopPropagation();
                    DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget());
                    if (target != null) {
                        showColumnMoveDecorations(target);
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move");
                    } else {
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none");
                    }
                } else {
                }
            } else {
                event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none");
            }
        }
    }, DragEnterEvent.getType());
    addDomHandler(new DragHandler() {

        @Override
        public void onDrag(DragEvent event) {
            if (DraggedColumn.instance != null && DraggedColumn.instance.isResize()) {
                event.stopPropagation();
                /*
                int newWidth = event.getNativeEvent().getClientX() - DraggedColumn.instance.getCellElement().getAbsoluteLeft();
                if (newWidth > MINIMUM_COLUMN_WIDTH) {
                   event.getDataTransfer().<XDataTransfer> cast().setDropEffect("move");
                } else {
                   event.getDataTransfer().<XDataTransfer> cast().setDropEffect("none");
                }
                */
            }
        }
    }, DragEvent.getType());
    addDomHandler(new DragOverHandler() {

        @Override
        public void onDragOver(DragOverEvent event) {
            if (DraggedColumn.instance != null) {
                event.preventDefault();
                event.stopPropagation();
                if (DraggedColumn.instance.isMove()) {
                    DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget());
                    if (target != null) {
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move");
                    } else {
                        hideColumnDecorations();
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none");
                    }
                } else {
                    Element hostElement = Grid.this.getElement();
                    int clientX = event.getNativeEvent().getClientX();
                    int hostAbsX = hostElement.getAbsoluteLeft();
                    int hostScrollX = hostElement.getScrollLeft();
                    int docScrollX = hostElement.getOwnerDocument().getScrollLeft();
                    int relativeX = clientX - hostAbsX + hostScrollX + docScrollX;
                    ghostLine.getStyle().setLeft(relativeX, Style.Unit.PX);
                    ghostLine.getStyle().setHeight(hostElement.getClientHeight(), Style.Unit.PX);
                    if (ghostLine.getParentElement() != hostElement) {
                        hostElement.appendChild(ghostLine);
                    }
                }
            }
        }
    }, DragOverEvent.getType());
    addDomHandler(new DragLeaveHandler() {

        @Override
        public void onDragLeave(DragLeaveEvent event) {
            if (DraggedColumn.instance != null) {
                event.stopPropagation();
                if (DraggedColumn.instance.isMove()) {
                    if (event.getNativeEvent().getEventTarget() == (JavaScriptObject) Grid.this.getElement()) {
                        hideColumnDecorations();
                    }
                }
            }
        }
    }, DragLeaveEvent.getType());
    addDomHandler(new DragEndHandler() {

        @Override
        public void onDragEnd(DragEndEvent event) {
            event.stopPropagation();
            hideColumnDecorations();
            DraggedColumn.instance = null;
        }
    }, DragEndEvent.getType());
    addDomHandler(new DropHandler() {

        @Override
        public void onDrop(DropEvent event) {
            DraggedColumn<?> source = DraggedColumn.instance;
            DraggedColumn<T> target = targetDraggedColumn;
            hideColumnDecorations();
            DraggedColumn.instance = null;
            if (source != null) {
                event.preventDefault();
                event.stopPropagation();
                if (source.isMove()) {
                    AbstractCellTable<T> sourceSection = (AbstractCellTable<T>) source.getTable();
                    // target table may be any section in our grid
                    if (target != null) {
                        Header<?> sourceHeader = source.getHeader();
                        Header<?> targetHeader = target.getHeader();
                        if (sourceHeader instanceof DraggableHeader<?>
                                && targetHeader instanceof DraggableHeader<?>) {
                            DraggableHeader<T> sourceDH = (DraggableHeader<T>) sourceHeader;
                            DraggableHeader<T> targetDH = (DraggableHeader<T>) targetHeader;
                            moveColumnNode(sourceDH.getHeaderNode(), targetDH.getHeaderNode());
                        } else {
                            int sourceIndex = source.getColumnIndex();
                            int targetIndex = target.getColumnIndex();
                            GridSection<T> targetSection = (GridSection<T>) target.getTable();

                            boolean isSourceLeft = sourceSection == headerLeft || sourceSection == frozenLeft
                                    || sourceSection == scrollableLeft || sourceSection == footerLeft;
                            boolean isTargetLeft = targetSection == headerLeft || targetSection == frozenLeft
                                    || targetSection == scrollableLeft || targetSection == footerLeft;
                            sourceSection = isSourceLeft ? headerLeft : headerRight;
                            targetSection = isTargetLeft ? headerLeft : headerRight;
                            int generalSourceIndex = isSourceLeft ? sourceIndex : sourceIndex + frozenColumns;
                            int generalTargetIndex = isTargetLeft ? targetIndex : targetIndex + frozenColumns;
                            Header<?> header = sourceSection.getHeader(sourceIndex);
                            if (header instanceof DraggableHeader) {
                                ((DraggableHeader) header).setTable(targetSection);
                            }
                            if (generalSourceIndex != generalTargetIndex) {
                                Column<T, ?> column = (Column<T, ?>) source.getColumn();
                                if (!(header instanceof DraggableHeader)
                                        || ((DraggableHeader) header).isMoveable()) {
                                    moveColumn(generalSourceIndex, generalTargetIndex);
                                }
                            }
                        }
                    }
                } else {
                    Header<?> header = source.getHeader();
                    if (!(header instanceof DraggableHeader) || ((DraggableHeader) header).isResizable()) {
                        int newWidth = Math.max(
                                event.getNativeEvent().getClientX() - source.getCellElement().getAbsoluteLeft(),
                                MINIMUM_COLUMN_WIDTH);
                        // Source and target tables are the same, so we can
                        // cast to DraggedColumn<T> with no care
                        setColumnWidthFromHeaderDrag(((DraggedColumn<T>) source).getColumn(), newWidth,
                                Style.Unit.PX);
                    }
                }
            }
        }
    }, DropEvent.getType());

    columnsChevron.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    columnsChevron.getElement().addClassName(COLUMNS_CHEVRON_STYLE);
    getElement().appendChild(columnsChevron.getElement());
    columnsChevron.addDomHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            PopupPanel pp = new PopupPanel();
            pp.setAutoHideEnabled(true);
            pp.setAutoHideOnHistoryEventsEnabled(true);
            pp.setAnimationEnabled(true);
            MenuBar columnsMenu = new MenuBar(true);
            fillColumns(columnsMenu, headerLeft);
            fillColumns(columnsMenu, headerRight);
            pp.setWidget(columnsMenu);
            pp.setPopupPosition(columnsChevron.getAbsoluteLeft(), columnsChevron.getAbsoluteTop());
            pp.showRelativeTo(columnsChevron);
        }

        private void fillColumns(MenuBar aTarget, final GridSection<T> aSection) {
            for (int i = 0; i < aSection.getColumnCount(); i++) {
                Header<?> h = aSection.getHeader(i);
                final Column<T, ?> column = aSection.getColumn(i);
                SafeHtml rendered;
                if (h.getValue() instanceof String) {
                    String hVal = (String) h.getValue();
                    rendered = hVal.startsWith("<html>") ? SafeHtmlUtils.fromTrustedString(hVal.substring(6))
                            : SafeHtmlUtils.fromString(hVal);
                } else {
                    Cell.Context context = new Cell.Context(0, i, h.getKey());
                    SafeHtmlBuilder sb = new SafeHtmlBuilder();
                    h.render(context, sb);
                    rendered = sb.toSafeHtml();
                }
                MenuItemCheckBox miCheck = new MenuItemCheckBox(!aSection.isColumnHidden(column),
                        rendered.asString(), true);
                miCheck.addValueChangeHandler(new ValueChangeHandler<Boolean>() {

                    @Override
                    public void onValueChange(ValueChangeEvent<Boolean> event) {
                        if (Boolean.TRUE.equals(event.getValue())) {
                            showColumn(column);
                        } else {
                            hideColumn(column);
                        }
                        Grid.this.onResize();
                    }

                });
                aTarget.addItem(miCheck);
            }
        }

    }, ClickEvent.getType());

    ColumnSortEvent.Handler sectionSortHandler = new ColumnSortEvent.Handler() {

        @Override
        public void onColumnSort(ColumnSortEvent event) {
            boolean isCtrlKey = ((GridSection<?>) event.getSource()).isCtrlKey();
            boolean contains = false;
            int containsAt = -1;
            for (int i = 0; i < sortList.size(); i++) {
                if (sortList.get(i).getColumn() == event.getColumn()) {
                    contains = true;
                    containsAt = i;
                    break;
                }
            }
            if (!contains) {
                if (!isCtrlKey) {
                    sortList.clear();
                }
                sortList.insert(sortList.size(), new ColumnSortList.ColumnSortInfo(event.getColumn(), true));
            } else {
                boolean wasAscending = sortList.get(containsAt).isAscending();
                if (!isCtrlKey) {
                    sortList.clear();
                    if (wasAscending) {
                        sortList.push(new ColumnSortList.ColumnSortInfo(event.getColumn(), false));
                    }
                } else {
                    sortList.remove(sortList.get(containsAt));
                    if (wasAscending) {
                        sortList.insert(containsAt,
                                new ColumnSortList.ColumnSortInfo(event.getColumn(), false));
                    }
                }
            }
            ColumnSortEvent.fire(Grid.this, sortList);
        }
    };
    headerLeft.getColumnSortList().setLimit(1);
    headerLeft.addColumnSortHandler(sectionSortHandler);
    headerRight.getColumnSortList().setLimit(1);
    headerRight.addColumnSortHandler(sectionSortHandler);
    gridColor = PublishedColor.create(211, 211, 211, 255);
    regenerateDynamicTDStyles();
    regenerateDynamicOddRowsStyles();
    getElement().<XElement>cast().addResizingTransitionEnd(this);
}

From source file:com.codenvy.ide.client.elements.widgets.element.ElementViewImpl.java

License:Open Source License

private void preparePopup(@Nonnull Element element) {
    MenuBar menuBar = new MenuBar(true);

    menuBar.addStyleName(resources.editorCSS().branchBackground());
    menuBar.addStyleName(resources.editorCSS().gwtMenuItemSelected());

    MenuItem delete = new MenuItem("Delete", true, new Command() {
        @Override/*from  w ww .java 2  s . c  o  m*/
        public void execute() {
            delegate.onDeleteActionClicked();
        }
    });

    menuBar.addItem(delete);
    menuBar.setAutoOpen(true);

    if (element.isPossibleToAddBranches()) {
        MenuItem amountOfBranches = new MenuItem("Number of branches", true, new Command() {
            @Override
            public void execute() {
                delegate.onChangeNumberBranchesActionClicked();
            }
        });

        menuBar.addItem(amountOfBranches);
    }

    popup = new PopupPanel(true, true);
    popup.add(menuBar);
}

From source file:com.eas.grid.Grid.java

public Grid(ProvidesKey<T> aKeyProvider) {
    super();// w w w.  j  a  v a 2  s. c om
    getElement().getStyle().setPosition(Style.Position.RELATIVE);
    getElement().appendChild(tdsStyleElement);
    getElement().appendChild(cellsStyleElement);
    getElement().appendChild(oddRowsStyleElement);
    getElement().appendChild(evenRowsStyleElement);
    setRowsHeight(30);
    hive = new FlexTable();
    setWidget(hive);
    hive.setCellPadding(0);
    hive.setCellSpacing(0);
    hive.setBorderWidth(0);
    headerLeft = new GridSection<T>(aKeyProvider);
    headerLeftContainer = new ScrollPanel(headerLeft);
    headerRight = new GridSection<T>(aKeyProvider);
    headerRightContainer = new ScrollPanel(headerRight);
    frozenLeft = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerLeft.redrawFooters();
            frozenLeftRendered();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerLeft.redrawFooters();
            frozenLeftRendered();
        }

        @Override
        protected void onFocus() {
            super.onFocus();
            Element focused = getKeyboardSelectedElement();
            if (focused != null)
                focused.setTabIndex(tabIndex);
            FocusEvent.fireNativeEvent(Document.get().createFocusEvent(), Grid.this);
        }

        @Override
        protected void onBlur() {
            super.onBlur();
            FocusEvent.fireNativeEvent(Document.get().createBlurEvent(), Grid.this);
        }
    };

    frozenLeftContainer = new ScrollPanel(frozenLeft);
    frozenRight = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerRight.redrawFooters();
            frozenRightRendered();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerRight.redrawFooters();
            frozenRightRendered();
        }

        @Override
        protected void onFocus() {
            super.onFocus();
            Element focused = getKeyboardSelectedElement();
            if (focused != null)
                focused.setTabIndex(tabIndex);
            FocusEvent.fireNativeEvent(Document.get().createFocusEvent(), Grid.this);
        }

        @Override
        protected void onBlur() {
            super.onBlur();
            FocusEvent.fireNativeEvent(Document.get().createBlurEvent(), Grid.this);
        }
    };
    frozenRightContainer = new ScrollPanel(frozenRight);
    scrollableLeft = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerLeft.redrawFooters();
            scrollableLeftRendered();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerLeft.redrawFooters();
            scrollableLeftRendered();
        }

        @Override
        protected void onFocus() {
            super.onFocus();
            Element focused = getKeyboardSelectedElement();
            if (focused != null)
                focused.setTabIndex(tabIndex);
            FocusEvent.fireNativeEvent(Document.get().createFocusEvent(), Grid.this);
        }

        @Override
        protected void onBlur() {
            super.onBlur();
            FocusEvent.fireNativeEvent(Document.get().createBlurEvent(), Grid.this);
        }
    };
    scrollableLeftContainer = new ScrollPanel(scrollableLeft);
    scrollableRight = new GridSection<T>(aKeyProvider) {

        @Override
        protected void replaceAllChildren(List<T> values, SafeHtml html) {
            super.replaceAllChildren(values, html);
            footerRight.redrawFooters();
            scrollableRightRendered();
        }

        @Override
        protected void replaceChildren(List<T> values, int start, SafeHtml html) {
            super.replaceChildren(values, start, html);
            footerRight.redrawFooters();
            scrollableRightRendered();
        }

        @Override
        protected void onFocus() {
            super.onFocus();
            Element focused = getKeyboardSelectedElement();
            if (focused != null)
                focused.setTabIndex(tabIndex);
            FocusEvent.fireNativeEvent(Document.get().createFocusEvent(), Grid.this);
        }

        @Override
        protected void onBlur() {
            super.onBlur();
            FocusEvent.fireNativeEvent(Document.get().createBlurEvent(), Grid.this);
        }
    };
    scrollableRightContainer = new ScrollPanel(scrollableRight);
    footerLeft = new GridSection<>(aKeyProvider);
    footerLeftContainer = new ScrollPanel(footerLeft);
    footerRight = new GridSection<>(aKeyProvider);
    footerRightContainer = new ScrollPanel(footerRight);
    // positioning context / overflow setup
    // overflow
    for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer,
            frozenRightContainer, scrollableLeftContainer, footerLeftContainer, footerRightContainer }) {
        w.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN);
    }
    // scrollableRightContainer.getElement().getStyle().setOverflow(Style.Overflow.AUTO);
    // default value
    // context
    for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer,
            frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer,
            footerRightContainer }) {
        w.getElement().getFirstChildElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    }
    // propagation of some widths
    headerLeft.setWidthPropagator(new GridWidthPropagator<T>(headerLeft) {

        @Override
        public void changed() {
            super.changed();
            propagateHeaderWidth();
        }

    });
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenLeft,
            frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) {
        section.setWidthPropagator(new GridWidthPropagator<>(section));
    }
    headerLeft.setColumnsPartners(new AbstractCellTable[] { frozenLeft, scrollableLeft, footerLeft });
    headerRight.setColumnsPartners(new AbstractCellTable[] { frozenRight, scrollableRight, footerRight });
    ColumnsRemover leftColumnsRemover = new ColumnsRemoverAdapter<T>(headerLeft, frozenLeft, scrollableLeft,
            footerLeft);
    ColumnsRemover rightColumnsRemover = new ColumnsRemoverAdapter<T>(headerRight, frozenRight, scrollableRight,
            footerRight);
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft,
            scrollableLeft, footerLeft }) {
        section.setColumnsRemover(leftColumnsRemover);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight,
            scrollableRight, footerRight }) {
        section.setColumnsRemover(rightColumnsRemover);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenLeft, scrollableLeft,
            footerLeft }) {
        section.setHeaderSource(headerLeft);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenRight, scrollableRight,
            footerRight }) {
        section.setHeaderSource(headerRight);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft,
            scrollableLeft }) {
        section.setFooterSource(footerLeft);
    }
    for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight,
            scrollableRight }) {
        section.setFooterSource(footerRight);
    }

    // hive organization
    hive.setWidget(0, 0, headerLeftContainer);
    hive.setWidget(0, 1, headerRightContainer);
    hive.setWidget(1, 0, frozenLeftContainer);
    hive.setWidget(1, 1, frozenRightContainer);
    hive.setWidget(2, 0, scrollableLeftContainer);
    hive.setWidget(2, 1, scrollableRightContainer);
    hive.setWidget(3, 0, footerLeftContainer);
    hive.setWidget(3, 1, footerRightContainer);

    for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer,
            frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer,
            footerRightContainer }) {
        w.setWidth("100%");
        w.setHeight("100%");
    }
    // misc
    for (Widget w : new Widget[] { headerRightContainer, frozenRightContainer, footerRightContainer,
            scrollableLeftContainer }) {
        w.getElement().getParentElement().getStyle().setOverflow(Style.Overflow.HIDDEN);
    }
    hive.getElement().getStyle().setTableLayout(Style.TableLayout.FIXED);
    hive.getElement().getStyle().setPosition(Style.Position.RELATIVE);
    for (CellTable<?> tbl : new CellTable<?>[] { headerLeft, headerRight, frozenLeft, frozenRight,
            scrollableLeft, scrollableRight, footerLeft, footerRight }) {
        tbl.setTableLayoutFixed(true);
    }
    // header
    headerLeft.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerLeft, false, this));
    headerLeft.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerLeft, true));
    headerRight.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerRight, false, this));
    headerRight.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerRight, true));
    // footer
    footerLeft.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerLeft, false));
    footerLeft.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerLeft, true));
    footerRight.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerRight, false));
    footerRight.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerRight, true));
    // data bodies
    for (GridSection<?> section : new GridSection<?>[] { frozenLeft, frozenRight, scrollableLeft,
            scrollableRight }) {
        GridSection<T> gSection = (GridSection<T>) section;
        gSection.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(gSection, false));
        gSection.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(gSection, true));
    }
    for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, frozenLeft, frozenRight,
            scrollableLeft, scrollableRight, footerLeft, footerRight }) {
        section.setAutoHeaderRefreshDisabled(true);
    }
    for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, footerLeft, footerRight }) {
        section.setAutoFooterRefreshDisabled(true);
    }
    // cells
    installCellBuilders();

    scrollableRightContainer.addScrollHandler(new ScrollHandler() {

        @Override
        public void onScroll(ScrollEvent event) {
            int aimLeft = scrollableRightContainer.getElement().getScrollLeft();
            if (isHeaderVisible()) {
                headerRightContainer.getElement().setScrollLeft(aimLeft);
                int factLeftDelta0 = aimLeft - headerRightContainer.getElement().getScrollLeft();
                if (factLeftDelta0 > 0) {
                    headerRightContainer.getElement().getStyle().setRight(factLeftDelta0, Style.Unit.PX);
                } else {
                    headerRightContainer.getElement().getStyle().clearRight();
                }
            }
            if (frozenColumns > 0 || frozenRows > 0) {
                int aimTop = scrollableRightContainer.getElement().getScrollTop();

                scrollableLeftContainer.getElement().setScrollTop(aimTop);
                int factTopDelta = aimTop - scrollableLeftContainer.getElement().getScrollTop();
                if (factTopDelta > 0) {
                    scrollableLeftContainer.getElement().getStyle().setBottom(factTopDelta, Style.Unit.PX);
                } else {
                    scrollableLeftContainer.getElement().getStyle().clearBottom();
                }
                frozenRightContainer.getElement().setScrollLeft(aimLeft);
                int factLeftDelta1 = aimLeft - frozenRightContainer.getElement().getScrollLeft();
                if (factLeftDelta1 > 0) {
                    frozenRightContainer.getElement().getStyle().setRight(factLeftDelta1, Style.Unit.PX);
                } else {
                    frozenRightContainer.getElement().getStyle().clearRight();
                }
                footerRightContainer.getElement()
                        .setScrollLeft(scrollableRightContainer.getElement().getScrollLeft());
                int factLeftDelta2 = aimLeft - footerRightContainer.getElement().getScrollLeft();
                if (factLeftDelta2 > 0) {
                    footerRightContainer.getElement().getStyle().setRight(factLeftDelta2, Style.Unit.PX);
                } else {
                    footerRightContainer.getElement().getStyle().clearRight();
                }
            }
        }

    });
    ghostLine = Document.get().createDivElement();
    ghostLine.addClassName(RULER_STYLE);
    ghostLine.getStyle().setPosition(Style.Position.ABSOLUTE);
    ghostLine.getStyle().setTop(0, Style.Unit.PX);
    ghostColumn = Document.get().createDivElement();
    ghostColumn.addClassName(COLUMN_PHANTOM_STYLE);
    ghostColumn.getStyle().setPosition(Style.Position.ABSOLUTE);
    ghostColumn.getStyle().setTop(0, Style.Unit.PX);
    addDomHandler(new DragEnterHandler() {

        @Override
        public void onDragEnter(DragEnterEvent event) {
            if (DraggedColumn.instance != null) {
                if (DraggedColumn.instance.isMove()) {
                    event.preventDefault();
                    event.stopPropagation();
                    DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget());
                    if (target != null) {
                        showColumnMoveDecorations(target);
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move");
                    } else {
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none");
                    }
                } else {
                }
            }
        }
    }, DragEnterEvent.getType());
    addDomHandler(new DragHandler() {

        @Override
        public void onDrag(DragEvent event) {
            if (DraggedColumn.instance != null && DraggedColumn.instance.isResize()) {
                event.stopPropagation();
            }
        }
    }, DragEvent.getType());
    addDomHandler(new DragOverHandler() {

        @Override
        public void onDragOver(DragOverEvent event) {
            if (DraggedColumn.instance != null) {
                event.preventDefault();
                event.stopPropagation();
                if (DraggedColumn.instance.isMove()) {
                    DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget());
                    if (target != null) {
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move");
                    } else {
                        hideColumnDecorations();
                        event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none");
                    }
                } else {
                    Element hostElement = Grid.this.getElement();
                    int clientX = event.getNativeEvent().getClientX();
                    int hostAbsX = hostElement.getAbsoluteLeft();
                    int hostScrollX = hostElement.getScrollLeft();
                    int docScrollX = hostElement.getOwnerDocument().getScrollLeft();
                    int relativeX = clientX - hostAbsX + hostScrollX + docScrollX;
                    ghostLine.getStyle().setLeft(relativeX, Style.Unit.PX);
                    ghostLine.getStyle().setHeight(hostElement.getClientHeight(), Style.Unit.PX);
                    if (ghostLine.getParentElement() != hostElement) {
                        hostElement.appendChild(ghostLine);
                    }
                }
            }
        }
    }, DragOverEvent.getType());
    addDomHandler(new DragLeaveHandler() {

        @Override
        public void onDragLeave(DragLeaveEvent event) {
            if (DraggedColumn.instance != null) {
                event.stopPropagation();
                if (DraggedColumn.instance.isMove()) {
                    if (event.getNativeEvent().getEventTarget() == (JavaScriptObject) Grid.this.getElement()) {
                        hideColumnDecorations();
                    }
                }
            }
        }
    }, DragLeaveEvent.getType());
    addDomHandler(new DragEndHandler() {

        @Override
        public void onDragEnd(DragEndEvent event) {
            if (DraggedColumn.instance != null) {
                event.stopPropagation();
                hideColumnDecorations();
                DraggedColumn.instance = null;
            }
        }
    }, DragEndEvent.getType());
    addDomHandler(new DropHandler() {

        @Override
        public void onDrop(DropEvent event) {
            DraggedColumn<?> source = DraggedColumn.instance;
            DraggedColumn<T> target = targetDraggedColumn;
            hideColumnDecorations();
            DraggedColumn.instance = null;
            if (source != null) {
                event.preventDefault();
                event.stopPropagation();
                if (source.isMove()) {
                    AbstractCellTable<T> sourceSection = (AbstractCellTable<T>) source.getTable();
                    // target table may be any section in our grid
                    if (target != null) {
                        Header<?> sourceHeader = source.getHeader();
                        Header<?> targetHeader = target.getHeader();
                        if (sourceHeader instanceof DraggableHeader<?>
                                && targetHeader instanceof DraggableHeader<?>) {
                            DraggableHeader<T> sourceDH = (DraggableHeader<T>) sourceHeader;
                            DraggableHeader<T> targetDH = (DraggableHeader<T>) targetHeader;
                            moveColumnNode(sourceDH.getHeaderNode(), targetDH.getHeaderNode());
                        } else {
                            int sourceIndex = source.getColumnIndex();
                            int targetIndex = target.getColumnIndex();
                            GridSection<T> targetSection = (GridSection<T>) target.getTable();

                            boolean isSourceLeft = sourceSection == headerLeft || sourceSection == frozenLeft
                                    || sourceSection == scrollableLeft || sourceSection == footerLeft;
                            boolean isTargetLeft = targetSection == headerLeft || targetSection == frozenLeft
                                    || targetSection == scrollableLeft || targetSection == footerLeft;
                            sourceSection = isSourceLeft ? headerLeft : headerRight;
                            targetSection = isTargetLeft ? headerLeft : headerRight;
                            int generalSourceIndex = isSourceLeft ? sourceIndex : sourceIndex + frozenColumns;
                            int generalTargetIndex = isTargetLeft ? targetIndex : targetIndex + frozenColumns;
                            Header<?> header = sourceSection.getHeader(sourceIndex);
                            if (header instanceof DraggableHeader) {
                                ((DraggableHeader) header).setTable(targetSection);
                            }
                            if (generalSourceIndex != generalTargetIndex) {
                                Column<T, ?> column = (Column<T, ?>) source.getColumn();
                                if (!(header instanceof DraggableHeader)
                                        || ((DraggableHeader) header).isMoveable()) {
                                    moveColumn(generalSourceIndex, generalTargetIndex);
                                }
                            }
                        }
                    }
                } else {
                    Header<?> header = source.getHeader();
                    if (!(header instanceof DraggableHeader) || ((DraggableHeader) header).isResizable()) {
                        int newWidth = Math.max(
                                event.getNativeEvent().getClientX() - source.getCellElement().getAbsoluteLeft(),
                                MINIMUM_COLUMN_WIDTH);
                        // Source and target tables are the same, so we can
                        // cast to DraggedColumn<T> with no care
                        setColumnWidthFromHeaderDrag(((DraggedColumn<T>) source).getColumn(), newWidth,
                                Style.Unit.PX);
                    }
                }
            }
        }
    }, DropEvent.getType());

    columnsChevron.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    columnsChevron.getElement().addClassName(COLUMNS_CHEVRON_STYLE);
    getElement().appendChild(columnsChevron.getElement());
    columnsChevron.addDomHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            PlatypusPopupMenu columnsMenu = new PlatypusPopupMenu();
            fillColumns(columnsMenu, headerLeft);
            fillColumns(columnsMenu, headerRight);
            columnsMenu.setPopupPosition(columnsChevron.getAbsoluteLeft(), columnsChevron.getAbsoluteTop());
            columnsMenu.showRelativeTo(columnsChevron);
        }

        private void fillColumns(MenuBar aTarget, final GridSection<T> aSection) {
            for (int i = 0; i < aSection.getColumnCount(); i++) {
                Header<?> h = aSection.getHeader(i);
                final Column<T, ?> column = aSection.getColumn(i);
                SafeHtml rendered;
                if (h.getValue() instanceof String) {
                    String hVal = (String) h.getValue();
                    rendered = hVal.startsWith("<html>") ? SafeHtmlUtils.fromTrustedString(hVal.substring(6))
                            : SafeHtmlUtils.fromString(hVal);
                } else {
                    Cell.Context context = new Cell.Context(0, i, h.getKey());
                    SafeHtmlBuilder sb = new SafeHtmlBuilder();
                    h.render(context, sb);
                    rendered = sb.toSafeHtml();
                }
                MenuItemCheckBox miCheck = new MenuItemCheckBox(!aSection.isColumnHidden(column),
                        rendered.asString(), true);
                miCheck.addValueChangeHandler(new ValueChangeHandler<Boolean>() {

                    @Override
                    public void onValueChange(ValueChangeEvent<Boolean> event) {
                        if (Boolean.TRUE.equals(event.getValue())) {
                            showColumn(column);
                        } else {
                            hideColumn(column);
                        }
                        Grid.this.onResize();
                    }

                });
                aTarget.addItem(miCheck);
            }
        }

    }, ClickEvent.getType());

    ColumnSortEvent.Handler sectionSortHandler = new ColumnSortEvent.Handler() {

        @Override
        public void onColumnSort(ColumnSortEvent event) {
            boolean isCtrlKey = ((GridSection<?>) event.getSource()).isCtrlKey();
            boolean contains = false;
            int containsAt = -1;
            for (int i = 0; i < sortList.size(); i++) {
                if (sortList.get(i).getColumn() == event.getColumn()) {
                    contains = true;
                    containsAt = i;
                    break;
                }
            }
            if (!contains) {
                if (!isCtrlKey) {
                    sortList.clear();
                }
                sortList.insert(sortList.size(), new ColumnSortList.ColumnSortInfo(event.getColumn(), true));
            } else {
                boolean wasAscending = sortList.get(containsAt).isAscending();
                if (!isCtrlKey) {
                    sortList.clear();
                    if (wasAscending) {
                        sortList.push(new ColumnSortList.ColumnSortInfo(event.getColumn(), false));
                    }
                } else {
                    sortList.remove(sortList.get(containsAt));
                    if (wasAscending) {
                        sortList.insert(containsAt,
                                new ColumnSortList.ColumnSortInfo(event.getColumn(), false));
                    }
                }
            }
            ColumnSortEvent.fire(Grid.this, sortList);
        }
    };
    headerLeft.getColumnSortList().setLimit(1);
    headerLeft.addColumnSortHandler(sectionSortHandler);
    headerRight.getColumnSortList().setLimit(1);
    headerRight.addColumnSortHandler(sectionSortHandler);
    gridColor = PublishedColor.create(211, 211, 211, 255);
    regenerateDynamicTDStyles();
    regenerateDynamicOddRowsStyles();
    getElement().<XElement>cast().addResizingTransitionEnd(this);
    setStyleName(GRID_SHELL_STYLE);
}

From source file:com.ephesoft.dcma.gwt.admin.bm.client.view.kvextraction.advancedkvextraction.AdvancedKVExtractionView.java

License:Open Source License

/**
 * To extractSpanValue./* w  w w  . j av  a2s.  co  m*/
 * 
 * @param coordinateX int
 * @param coordinateY int
 * @param clientCoordinateX int
 * @param clientCoordinateY int
 */
public void extractSpanValue(int coordinateX, int coordinateY, int clientCoordinateX, int clientCoordinateY) {
    if (spanList != null) {
        double aspectWidthRatio = (double) (pageImage.getWidth()) / (double) (originalWidth);
        double aspectHeightRatio = (double) (pageImage.getHeight()) / (double) (originalHeight);
        int xCoordinate = (int) Math.round(coordinateX / aspectWidthRatio);
        int yCoordinate = (int) Math.round(coordinateY / aspectHeightRatio);
        for (Span span : spanList) {
            int spanX0 = span.getCoordinates().getX0().intValue();
            int spanY0 = span.getCoordinates().getY0().intValue();
            int spanX1 = span.getCoordinates().getX1().intValue();
            int spanY1 = span.getCoordinates().getY1().intValue();
            if (spanX0 <= xCoordinate && spanX1 >= xCoordinate && spanY0 <= yCoordinate
                    && spanY1 >= yCoordinate) {
                MenuBar menuBar = new MenuBar(true);
                MenuItem menuItem = new MenuItem(span.getValue(), new Command() {

                    @Override
                    public void execute() {
                        contextMenu.hide();
                    }
                });
                menuBar.addItem(menuItem);
                contextMenu.setWidget(menuBar);
                contextMenu.setPopupPosition(clientCoordinateX, clientCoordinateY);
                contextMenu.show();
                break;
            }
        }
    }
}

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

License:Open Source License

private void performOperationsOnRightClick(final FileWrapper file, final String fileName,
        MouseDownEvent mouseDown) {/*www .  j a  va  2 s . com*/
    final String absoluteFilePath = file.getPath();
    final ContextMenuPanel contextMenu = new ContextMenuPanel();
    contextMenu.show();
    MenuBar menuBar = new MenuBar(true);
    MenuItem openMenuItem = new MenuItem(
            LocaleDictionary.get().getConstantValue(FolderManagementConstants.OPEN), new Command() {

                @Override
                public void execute() {
                    openItem(file);
                    contextMenu.hide();
                }
            });
    MenuItem cutMenuItem = new MenuItem(LocaleDictionary.get().getConstantValue(FolderManagementConstants.CUT),
            new Command() {

                @Override
                public void execute() {
                    presenter.onFileCut(absoluteFilePath);
                    setPasteEnabled(true);
                    contextMenu.hide();
                }
            });
    MenuItem copyMenuItem = new MenuItem(
            LocaleDictionary.get().getConstantValue(FolderManagementConstants.COPY), new Command() {

                @Override
                public void execute() {
                    presenter.onFileCopy(absoluteFilePath);
                    setPasteEnabled(true);
                    contextMenu.hide();
                }
            });
    MenuItem renameMenuItem = new MenuItem(
            LocaleDictionary.get().getConstantValue(FolderManagementConstants.RENAME), new Command() {

                @Override
                public void execute() {
                    performOperationsOnRename(fileName, contextMenu);
                }
            });

    MenuItem deleteMenuItem = new MenuItem(
            LocaleDictionary.get().getConstantValue(FolderManagementConstants.DELETE), new Command() {

                @Override
                public void execute() {

                    final ConfirmationDialog confirmationDialog = ConfirmationDialogUtil.showConfirmationDialog(
                            LocaleDictionary.get().getMessageValue(
                                    FolderManagementMessages.ARE_YOU_SURE_YOU_WANT_TO_DELETE_THE_FILE,
                                    FolderManagementConstants.QUOTES + fileName
                                            + FolderManagementConstants.QUOTES),
                            LocaleDictionary.get().getMessageValue(
                                    FolderManagementMessages.CONFIRM_DELETE_OPERATION),
                            false, true);
                    confirmationDialog.addDialogListener(new DialogListener() {

                        @Override
                        public void onOkClick() {
                            confirmationDialog.hide();
                            presenter.onFileDelete(fileName, absoluteFilePath);
                        }

                        @Override
                        public void onCancelClick() {
                            confirmationDialog.hide();
                        }
                    });
                    confirmationDialog.okButton.setFocus(true);
                    contextMenu.hide();
                }
            });
    menuBar.addItem(openMenuItem);
    if (!file.getKind().equals(FileType.DIR)) {
        MenuItem downloadMenuItem = new MenuItem(
                LocaleDictionary.get().getConstantValue(FolderManagementConstants.DOWNLOAD), new Command() {

                    @Override
                    public void execute() {
                        contextMenu.hide();
                        presenter.onFileDownload(file);
                    }
                });
        menuBar.addItem(downloadMenuItem);
    }
    menuBar.addItem(cutMenuItem);
    menuBar.addItem(copyMenuItem);
    menuBar.addItem(renameMenuItem);
    menuBar.addItem(deleteMenuItem);

    contextMenu.setWidget(menuBar);
    contextMenu.setPopupPosition(mouseDown.getNativeEvent().getClientX(),
            mouseDown.getNativeEvent().getClientY());
    contextMenu.show();
}

From source file:com.google.sampling.experiential.client.Main.java

License:Open Source License

private HorizontalPanel createMenuBar() {
    HorizontalPanel menuPanel = new HorizontalPanel();
    mainPanel.add(menuPanel);/*w w  w.  j  av  a2  s. c o  m*/
    Image pacoLogo = new Image(resources.pacoSmallLogo());
    pacoLogo.setStylePrimaryName("paco-Logo");
    menuPanel.add(pacoLogo);

    VerticalPanel rootMenuAndGreetingBar = new VerticalPanel();
    menuPanel.add(rootMenuAndGreetingBar);
    MenuBar rootMenuBar = new MenuBar(false);
    rootMenuAndGreetingBar.add(rootMenuBar);

    Label greeting = new Label(myMessages.hello(loginInfo.getEmailAddress()));
    greeting.setStyleName("paco-Name-Greeting");
    //greeting.setSize("200px", "20px");
    rootMenuAndGreetingBar.add(greeting);

    MenuBar joinedSubMenuBar = new MenuBar(true);
    MenuItem joinedMenuItem = new MenuItem(myConstants.joinedExperiments(), false, joinedSubMenuBar);
    MenuItem mntmShowAllJoined = new MenuItem(myConstants.showAll(), false, new Command() {
        public void execute() {
            loadJoinedExperiments();
        }
    });
    joinedSubMenuBar.addItem(mntmShowAllJoined);

    MenuItem mntmFindExperiments = new MenuItem(myConstants.findExperiments(), false, new Command() {
        public void execute() {
            findExperiments();
        }
    });
    mntmFindExperiments.setEnabled(true);
    joinedSubMenuBar.addItem(mntmFindExperiments);
    rootMenuBar.addItem(joinedMenuItem);

    MenuBar adminMenuBar = new MenuBar(true);
    MenuItem adminMenuItem = new MenuItem(myConstants.administerExperiments(), false, adminMenuBar);
    MenuItem mntmShowAllAdmin = new MenuItem(myConstants.showAll(), false, new Command() {
        public void execute() {
            loadAdministeredExperiments(false);
        }
    });
    adminMenuBar.addItem(mntmShowAllAdmin);

    MenuItem mntmCreateNew = new MenuItem(myConstants.createNew(), false, new Command() {
        public void execute() {
            createNewExperiment();
        }
    });
    adminMenuBar.addItem(mntmCreateNew);
    rootMenuBar.addItem(adminMenuItem);
    // //////////////////

    MenuItem mntmQR_Code = new MenuItem(myConstants.getAndroid(), false, new Command() {
        public void execute() {
            showAndroidDownloadPage();
        }
    });
    rootMenuBar.addItem(mntmQR_Code);

    // ////////////////
    MenuBar helpMenuBar = new MenuBar(true);
    MenuItem helpMenuItem = new MenuItem(myConstants.help(), false, helpMenuBar);
    rootMenuBar.addItem(helpMenuItem);

    MenuItem helpContentsMenuItem = new MenuItem(myConstants.userGuide(), false, new Command() {
        public void execute() {
            launchHelp();
        }
    });
    //helpContentsMenuItem.setEnabled(false);
    helpMenuBar.addItem(helpContentsMenuItem);

    MenuItem aboutMenuItem = new MenuItem(myConstants.about(), false, new Command() {
        public void execute() {
            launchAbout();
        }
    });
    aboutMenuItem.setEnabled(false);
    helpMenuBar.addItem(aboutMenuItem);

    // logout

    MenuItem mntmLogout = new MenuItem(myConstants.logout(), false, new Command() {
        public void execute() {
            logout();
        }
    });
    rootMenuBar.addItem(mntmLogout);
    return menuPanel;
}

From source file:com.handsrel.localstorage.client.LdbQueryBrowser.java

License:Apache License

public LdbQueryBrowser() {
    VerticalPanel verticalPanel = new VerticalPanel();
    initWidget(verticalPanel);/* ww w  . j  a v  a 2s  .  co  m*/

    verticalPanel.setSize("692px", "522px");

    MenuBar menuBar = new MenuBar(false);
    verticalPanel.add(menuBar);
    MenuBar menuBar_1 = new MenuBar(true);

    MenuItem mntmUse_1 = new MenuItem("Use", false, menuBar_1);

    MenuItem mntmUseDatabase = new MenuItem("Use database", false, new Command() {
        public void execute() {
            params("Use database", "", "dbName", null, null);
        }
    });
    menuBar_1.addItem(mntmUseDatabase);
    menuBar.addItem(mntmUse_1);
    MenuBar menuBar_2 = new MenuBar(true);

    MenuItem mntmCreate = new MenuItem("Create", false, menuBar_2);

    MenuItem mntmCreateDatabase = new MenuItem("Create database", false, new Command() {
        public void execute() {
            params("Create database", "", "dbName", null, null);
        }
    });
    menuBar_2.addItem(mntmCreateDatabase);

    MenuItem mntmCreateObjectStore = new MenuItem("Create object store", false, new Command() {
        public void execute() {
            params("Create object store", "", "objStrName", null, null);
        }
    });
    menuBar_2.addItem(mntmCreateObjectStore);
    menuBar.addItem(mntmCreate);
    MenuBar menuBar_3 = new MenuBar(true);

    MenuItem mntmList = new MenuItem("List", false, menuBar_3);

    MenuItem mntmGetDatabaseList = new MenuItem("Get database list", false, new Command() {
        public void execute() {
            params("Get database list", "", null, null, null);
            addToTextAreaResult("Database list:\n" + LdbApi.printList(LdbApi.getDbList()));
        }
    });
    menuBar_3.addItem(mntmGetDatabaseList);

    MenuItem mntmGetObjectStore = new MenuItem("Get object store list", false, new Command() {
        public void execute() {

            try {
                params("Get object store list", "", null, null, null);
                addToTextAreaResult("Object store list:\n" + LdbApi.printList(LdbApi.getObjStoreList()));
            } catch (LocalStorageDatabaseException e) {
                logger.log(Level.SEVERE, "Database Exception", e);
            }
        }
    });
    menuBar_3.addItem(mntmGetObjectStore);

    MenuItem mntmGetColumnList = new MenuItem("Get column list", false, new Command() {
        public void execute() {
            params("Get column list", "", "objStrName", null, null);
        }
    });
    menuBar_3.addItem(mntmGetColumnList);

    MenuItem mntmGetValuesFrom = new MenuItem("Get values from column", false, new Command() {
        public void execute() {
            params("Get values from column", "", "objStrName", "columnName", null);
        }
    });
    menuBar_3.addItem(mntmGetValuesFrom);
    menuBar.addItem(mntmList);
    MenuBar menuBar_4 = new MenuBar(true);

    MenuItem mntmAdd = new MenuItem("Add", false, menuBar_4);

    MenuItem mntmColumn = new MenuItem("Column", false, new Command() {
        public void execute() {
            params("Add Column",
                    "Column definition for primary key can be specified as - true, <isAutogenerate>, '<NameOfColumn>'\n"
                            + "Column def for non-primary key can be specified as - '<NameOfColumn>', <isUnique>, <isNotNull>\n"
                            + "Note:Please don't include <> in your values, they are meant for indication only."
                            + " eg. true, false,'Sno' or 'formData', false, true",
                    "objStrName", "column definition", null);
        }
    });
    menuBar_4.addItem(mntmColumn);

    MenuItem mntmRecord = new MenuItem("Record", false, new Command() {
        public void execute() {
            params("Add Record",
                    "Specify the map as 'col1','val1','col2','val2'... etc. The columns can be defined in any order. "
                            + "Make sure that primary key is the first one to be defined if it is not autogenerated",
                    "objStrName", "map", null);
        }
    });
    menuBar_4.addItem(mntmRecord);

    MenuItem mntmRecordallValues = new MenuItem("Record (all values)", false, new Command() {
        public void execute() {
            params("Add Record (all values)", "Specify the map as 'val1','val2','val3'...", "objStrName", "map",
                    null);
        }
    });
    menuBar_4.addItem(mntmRecordallValues);
    menuBar.addItem(mntmAdd);
    MenuBar menuBar_5 = new MenuBar(true);

    MenuItem mntmUpdate = new MenuItem("Update", false, menuBar_5);

    MenuItem mntmUpdateIthRecord = new MenuItem("Update ith record", false, new Command() {
        public void execute() {
            params("Update ith record", "Specify the map as 'col1','val1','col2', 'val2'...", "objStrName",
                    "map", "i");
        }
    });
    menuBar_5.addItem(mntmUpdateIthRecord);

    MenuItem mntmUpdateRecordBy = new MenuItem("Update record by Pkey", false, new Command() {
        public void execute() {
            params("Update record by Pkey", "Specify the map as 'col1','val1','col2', 'val2'...", "objStrName",
                    "map", "pkeyValue");
        }
    });
    menuBar_5.addItem(mntmUpdateRecordBy);
    menuBar.addItem(mntmUpdate);

    MenuBar menuBar_5_1 = new MenuBar(true);
    MenuItem mntmAddOrUpdate = new MenuItem("AddOrUpdate", false, menuBar_5_1);

    MenuItem mntmAddOrUpdateRec = new MenuItem("Add or update record", false, new Command() {
        public void execute() {
            params("Add or update record", "Specify the map as 'col1','val1','col2', 'val2'...", "objStrName",
                    "map", "pkeyValue");
        }
    });
    menuBar_5_1.addItem(mntmAddOrUpdateRec);

    MenuItem mntmAddOrUpdateRecAllVal = new MenuItem("Add or update record (All values)", false, new Command() {
        public void execute() {
            params("Add or update record (All values)", "Specify the map as 'val1','val2','val3'...",
                    "objStrName", "map", null);
        }
    });
    menuBar_5_1.addItem(mntmAddOrUpdateRecAllVal);

    menuBar.addItem(mntmAddOrUpdate);
    MenuBar menuBar_6 = new MenuBar(true);

    MenuItem mntmPrint = new MenuItem("Print", false, menuBar_6);

    MenuItem mntmPrintAllKeys = new MenuItem("Print all keys", false, new Command() {
        public void execute() {
            params("Print all keys", "", null, null, null);
            addToTextAreaResult(LdbApi.printAllKeys());
        }
    });
    menuBar_6.addItem(mntmPrintAllKeys);
    menuBar.addItem(mntmPrint);
    MenuBar menuBar_7 = new MenuBar(true);

    MenuItem mntmSelect = new MenuItem("Select", false, menuBar_7);

    MenuItem mntmSelectAll = new MenuItem("Select All", false, new Command() {
        public void execute() {
            params("Select All", "", "objStrName", null, null);
        }
    });
    menuBar_7.addItem(mntmSelectAll);

    MenuItem mntmSelectAllcolumns = new MenuItem("Select All (columns)", false, new Command() {
        public void execute() {
            params("Select All (columns)", "Specify columnNames as 'col1','col2','col3'...", "columnNames",
                    "objStrName", null);
        }
    });
    menuBar_7.addItem(mntmSelectAllcolumns);
    menuBar.addItem(mntmSelect);
    MenuBar menuBar_8 = new MenuBar(true);

    MenuItem mntmGet = new MenuItem("Get", false, menuBar_8);

    MenuItem mntmGetNumberOf = new MenuItem("Get number of records", false, new Command() {
        public void execute() {
            params("Get number of records", "", "objStrName", null, null);
        }
    });
    menuBar_8.addItem(mntmGetNumberOf);

    MenuItem mntmGetPkeysForValueInColumn = new MenuItem("Get Pkeys For Value In Column", false, new Command() {
        public void execute() {
            params("Get Pkeys For Value In Column", "", "objStrName", "columnName", "searchValue");
        }
    });
    menuBar_8.addItem(mntmGetPkeysForValueInColumn);

    MenuItem mntmGetPkeyFor = new MenuItem("Get Pkey for ith record", false, new Command() {
        public void execute() {
            params("Get Pkey for ith record", "", "objStrName", "i", null);
        }
    });
    menuBar_8.addItem(mntmGetPkeyFor);

    MenuItem mntmGetIthRecord = new MenuItem("Get ith record", false, new Command() {
        public void execute() {
            params("Get ith record", "", "objStrName", "i", null);
        }
    });
    menuBar_8.addItem(mntmGetIthRecord);

    MenuItem mntmGetRecordByPkey = new MenuItem("Get record by Pkey", false, new Command() {
        public void execute() {
            params("Get record by Pkey", "", "objStrName", "pkeyValue", null);
        }
    });
    menuBar_8.addItem(mntmGetRecordByPkey);

    MenuItem mntmGetIthRecord_1 = new MenuItem("Get ith record (columns)", false, new Command() {
        public void execute() {
            params("Get ith record (columns)", "Specify columnNames as 'col1', 'col2', 'col3' ...",
                    "columnNames", "objStrName", "i");
        }
    });
    menuBar_8.addItem(mntmGetIthRecord_1);

    MenuItem mntmGetRecordColByPkey = new MenuItem("Get record (columns) by Pkey", false, new Command() {
        public void execute() {
            params("Get record (columns) by Pkey", "Specify columnNames as 'col1', 'col2', 'col3' ...",
                    "columnNames", "objStrName", "pkeyValue");
        }
    });
    menuBar_8.addItem(mntmGetRecordColByPkey);

    menuBar.addItem(mntmGet);
    MenuBar menuBar_9 = new MenuBar(true);

    MenuItem mntmDelete = new MenuItem("Delete", false, menuBar_9);

    MenuItem mntmDeleteIthRecord = new MenuItem("Delete ith record", false, new Command() {
        public void execute() {
            params("Delete ith record", "", "objStrName", "i", null);
        }
    });
    menuBar_9.addItem(mntmDeleteIthRecord);

    MenuItem mntmDeleteRecordBy = new MenuItem("Delete record by Pkey", false, new Command() {
        public void execute() {
            params("Delete record by Pkey", "", "objStrName", "pkeyValue", null);
        }
    });
    menuBar_9.addItem(mntmDeleteRecordBy);

    MenuItem mntmDeleteAllRecords = new MenuItem("Delete all records", false, new Command() {
        public void execute() {
            params("Delete all records", "", "objStrName", null, null);
        }
    });
    menuBar_9.addItem(mntmDeleteAllRecords);

    MenuItem mntmDeleteObjectStore = new MenuItem("Delete object store", false, new Command() {
        public void execute() {
            params("Delete object store", "", "objStrName", null, null);
        }
    });
    menuBar_9.addItem(mntmDeleteObjectStore);
    menuBar.addItem(mntmDelete);
    MenuBar menuBar_10 = new MenuBar(true);

    MenuItem mntmDrop = new MenuItem("Drop", false, menuBar_10);

    MenuItem mntmDropDatabase = new MenuItem("Drop database", false, new Command() {
        public void execute() {
            params("Drop database", "", "dbName", null, null);
        }
    });
    menuBar_10.addItem(mntmDropDatabase);
    menuBar.addItem(mntmDrop);
    MenuBar menuBar_11 = new MenuBar(true);

    MenuItem mntmRemove = new MenuItem("Remove", false, menuBar_11);

    MenuItem mntmRemoveAllKeys = new MenuItem("Remove all keys", false, new Command() {
        public void execute() {
            params("Remove all keys", "", null, null, null);
            boolean confirm = Window.confirm(
                    "Are you sure you want to remove all keys from the local storage. This will completely wipe off all data"
                            + " irreversibly.");
            if (confirm)
                LdbApi.removeAll();
        }
    });
    menuBar_11.addItem(mntmRemoveAllKeys);
    menuBar.addItem(mntmRemove);

    lblFunctionToBeExec = new Label("Function to be executed: ");
    verticalPanel.add(lblFunctionToBeExec);

    textAreaDescription = new TextArea();
    verticalPanel.add(textAreaDescription);
    textAreaDescription.setSize("672px", "61px");

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    verticalPanel.add(horizontalPanel);
    horizontalPanel.setSize("550px", "25px");

    lblParam1 = new Label("Param 1:");
    horizontalPanel.add(lblParam1);
    lblParam1.setSize("200px", "25px");

    txtbxParam1 = new TextBox();
    horizontalPanel.add(txtbxParam1);
    txtbxParam1.setSize("300px", "20px");

    HorizontalPanel horizontalPanel_1 = new HorizontalPanel();
    verticalPanel.add(horizontalPanel_1);
    horizontalPanel_1.setSize("550px", "25px");

    lblParam2 = new Label("Param 2:");
    horizontalPanel_1.add(lblParam2);
    lblParam2.setSize("200px", "25px");

    txtbxParam2 = new TextBox();
    horizontalPanel_1.add(txtbxParam2);
    txtbxParam2.setSize("300px", "20px");

    HorizontalPanel horizontalPanel_2 = new HorizontalPanel();
    verticalPanel.add(horizontalPanel_2);
    horizontalPanel_2.setSize("550px", "25px");

    lblParam3 = new Label("Param 3:");
    horizontalPanel_2.add(lblParam3);
    lblParam3.setSize("200px", "25px");

    txtbxParam3 = new TextBox();
    horizontalPanel_2.add(txtbxParam3);
    txtbxParam3.setSize("300px", "20px");

    HorizontalPanel horizontalPanel_3 = new HorizontalPanel();
    verticalPanel.add(horizontalPanel_3);
    horizontalPanel_3.setSize("115px", "35px");

    Button btnExecute = new Button("Execute");
    btnExecute.addClickHandler(getExecuteButtonClickHandler());
    horizontalPanel_3.add(btnExecute);

    Button btnReset = new Button("Reset");

    btnReset.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            params("", "", "Param 1", "Param 2", "Param 3");
        }

    });
    horizontalPanel_3.add(btnReset);

    textAreaResult = new TextArea();
    verticalPanel.add(textAreaResult);
    textAreaResult.setSize("667px", "280px");
}