Search in sources :

Example 66 with ClickEvent

use of com.google.gwt.event.dom.client.ClickEvent in project perun by CESNET.

the class CreateVoResourceTagTabItem method draw.

public Widget draw() {
    VerticalPanel vp = new VerticalPanel();
    // textboxes which set the class data when updated
    final ExtendedTextBox nameTextBox = new ExtendedTextBox();
    nameTextBox.getTextBox().setMaxLength(128);
    final ExtendedTextBox.TextBoxValidator nameValidator = new ExtendedTextBox.TextBoxValidator() {

        @Override
        public boolean validateTextBox() {
            if (!nameTextBox.getTextBox().getText().trim().isEmpty()) {
                nameTextBox.setOk();
                return true;
            } else {
                nameTextBox.setError("Name can't be empty.");
                return false;
            }
        }
    };
    nameTextBox.setValidator(nameValidator);
    // prepares layout
    FlexTable layout = new FlexTable();
    layout.setStyleName("inputFormFlexTable");
    FlexCellFormatter cellFormatter = layout.getFlexCellFormatter();
    // close tab events
    final TabItem tab = this;
    TabMenu menu = new TabMenu();
    // send button
    final CustomButton createButton = TabMenu.getPredefinedButton(ButtonType.CREATE, buttonTranslation.createResourceTag());
    createButton.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (!nameValidator.validateTextBox())
                return;
            CreateResourceTag request = new CreateResourceTag(JsonCallbackEvents.closeTabDisableButtonEvents(createButton, tab));
            request.createResourceTag(nameTextBox.getTextBox().getText().trim(), voId);
        }
    });
    // cancel button
    final CustomButton cancelButton = TabMenu.getPredefinedButton(ButtonType.CANCEL, "");
    cancelButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            session.getTabManager().closeTab(tab, false);
        }
    });
    // Add some standard form options
    layout.setHTML(0, 0, "Tag name:");
    layout.setWidget(0, 1, nameTextBox);
    for (int i = 0; i < layout.getRowCount(); i++) {
        cellFormatter.addStyleName(i, 0, "itemName");
    }
    menu.addWidget(createButton);
    menu.addWidget(cancelButton);
    vp.add(layout);
    vp.add(menu);
    vp.setCellHorizontalAlignment(menu, HasHorizontalAlignment.ALIGN_RIGHT);
    this.contentWidget.setWidget(vp);
    return getWidget();
}
Also used : FlexCellFormatter(com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) CreateResourceTag(cz.metacentrum.perun.webgui.json.resourcesManager.CreateResourceTag) ExtendedTextBox(cz.metacentrum.perun.webgui.widgets.ExtendedTextBox) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton)

Example 67 with ClickEvent

use of com.google.gwt.event.dom.client.ClickEvent in project perun by CESNET.

the class CreateVoTabItem method draw.

public Widget draw() {
    VerticalPanel vp = new VerticalPanel();
    // textboxes which set the class data when updated
    final ExtendedTextBox nameTextBox = new ExtendedTextBox();
    final ExtendedTextBox shortNameTextBox = new ExtendedTextBox();
    nameTextBox.getTextBox().setMaxLength(128);
    shortNameTextBox.getTextBox().setMaxLength(32);
    final ExtendedTextBox.TextBoxValidator nameValidator = new ExtendedTextBox.TextBoxValidator() {

        @Override
        public boolean validateTextBox() {
            if (!nameTextBox.getTextBox().getText().trim().isEmpty()) {
                nameTextBox.setOk();
                return true;
            } else {
                nameTextBox.setError("Name can't be empty.");
                return false;
            }
        }
    };
    final ExtendedTextBox.TextBoxValidator shortNameValidator = new ExtendedTextBox.TextBoxValidator() {

        @Override
        public boolean validateTextBox() {
            if (shortNameTextBox.getTextBox().getText().trim().isEmpty()) {
                shortNameTextBox.setError("Short name can't be empty.");
            } else if (!shortNameTextBox.getTextBox().getText().trim().matches(Utils.VO_SHORT_NAME_MATCHER)) {
                shortNameTextBox.setError("Short name can contain only letters, numbers, dash and underscore.");
            } else {
                shortNameTextBox.setOk();
                return true;
            }
            return false;
        }
    };
    nameTextBox.setValidator(nameValidator);
    shortNameTextBox.setValidator(shortNameValidator);
    // prepares layout
    FlexTable layout = new FlexTable();
    layout.setStyleName("inputFormFlexTable");
    FlexCellFormatter cellFormatter = layout.getFlexCellFormatter();
    // close tab events
    final TabItem tab = this;
    TabMenu menu = new TabMenu();
    // send button
    final CustomButton createButton = TabMenu.getPredefinedButton(ButtonType.CREATE, buttonTranslation.createVo());
    createButton.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (!nameValidator.validateTextBox())
                return;
            if (!shortNameValidator.validateTextBox())
                return;
            CreateVo request = new CreateVo(JsonCallbackEvents.closeTabDisableButtonEvents(createButton, tab, new JsonCallbackEvents() {

                @Override
                public void onFinished(JavaScriptObject jso) {
                    // new VO must be editable by user in GUI, because it is already in PERUN
                    VirtualOrganization vo = jso.cast();
                    session.addEditableVo(vo.getId());
                }
            }));
            request.createVo(nameTextBox.getTextBox().getText().trim(), shortNameTextBox.getTextBox().getText().trim());
        }
    });
    // cancel button
    final CustomButton cancelButton = TabMenu.getPredefinedButton(ButtonType.CANCEL, "");
    cancelButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            session.getTabManager().closeTab(tab, false);
        }
    });
    // Add some standard form options
    layout.setHTML(0, 0, "Full name:");
    layout.setWidget(0, 1, nameTextBox);
    layout.setHTML(1, 0, "Short name:");
    layout.setWidget(1, 1, shortNameTextBox);
    for (int i = 0; i < layout.getRowCount(); i++) {
        cellFormatter.addStyleName(i, 0, "itemName");
    }
    menu.addWidget(createButton);
    menu.addWidget(cancelButton);
    vp.add(layout);
    vp.add(menu);
    vp.setCellHorizontalAlignment(menu, HasHorizontalAlignment.ALIGN_RIGHT);
    this.contentWidget.setWidget(vp);
    return getWidget();
}
Also used : JsonCallbackEvents(cz.metacentrum.perun.webgui.json.JsonCallbackEvents) FlexCellFormatter(com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) VirtualOrganization(cz.metacentrum.perun.webgui.model.VirtualOrganization) ExtendedTextBox(cz.metacentrum.perun.webgui.widgets.ExtendedTextBox) CreateVo(cz.metacentrum.perun.webgui.json.vosManager.CreateVo) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) JavaScriptObject(com.google.gwt.core.client.JavaScriptObject) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton)

Example 68 with ClickEvent

use of com.google.gwt.event.dom.client.ClickEvent in project perun by CESNET.

the class ConnectServiceIdentityTabItem method draw.

public Widget draw() {
    titleWidget.setText("Connect identity");
    VerticalPanel content = new VerticalPanel();
    content.setSize("100%", "100%");
    final TabItem tab = this;
    // add button
    final CustomButton addButton;
    if (user.isServiceUser() || user.isSponsoredUser()) {
        addButton = new CustomButton("Connect", "Add selected users to this identity", SmallIcons.INSTANCE.addIcon());
    } else {
        addButton = new CustomButton("Connect", "Add selected identities to user", SmallIcons.INSTANCE.addIcon());
    }
    TabMenu menu = new TabMenu();
    menu.addWidget(addButton);
    content.add(menu);
    content.setCellHeight(menu, "30px");
    final FindCompleteRichUsers call = new FindCompleteRichUsers("", null);
    if (user.isServiceUser()) {
        call.hideService(true);
    }
    if (user.isSponsoredUser()) {
        call.hideSponsored(true);
        call.hideService(true);
    }
    if (!user.isSpecificUser()) {
        call.hidePerson(true);
    }
    menu.addWidget(TabMenu.getPredefinedButton(ButtonType.CANCEL, "", new ClickHandler() {

        public void onClick(ClickEvent clickEvent) {
            // close tab and refresh
            session.getTabManager().closeTab(tab, true);
        }
    }));
    // search textbox
    ExtendedTextBox searchBox = menu.addSearchWidget(new PerunSearchEvent() {

        @Override
        public void searchFor(String text) {
            call.searchFor(text);
        }
    }, "");
    addButton.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent clickEvent) {
            ArrayList<User> list = call.getTableSelectedList();
            for (int i = 0; i < list.size(); i++) {
                // TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
                AddSpecificUserOwner req;
                if (i == list.size() - 1) {
                    req = new AddSpecificUserOwner(JsonCallbackEvents.closeTabDisableButtonEvents(addButton, tab));
                } else {
                    req = new AddSpecificUserOwner(JsonCallbackEvents.disableButtonEvents(addButton));
                }
                if (user.isServiceUser() || user.isSponsoredUser()) {
                    // service user adds user
                    req.addSpecificUser(list.get(i), user);
                } else {
                    // user adds service users
                    req.addSpecificUser(user, list.get(i));
                }
            }
        }
    });
    FieldUpdater<User, String> fieldUpdater = null;
    if (session.isPerunAdmin()) {
        fieldUpdater = new FieldUpdater<User, String>() {

            public void update(int i, User user, String s) {
                session.getTabManager().addTab(new UserDetailTabItem(user));
            }
        };
    }
    CellTable<User> table = call.getTable(fieldUpdater);
    table.addStyleName("perun-table");
    table.setWidth("100%");
    ScrollPanel sp = new ScrollPanel(table);
    sp.addStyleName("perun-tableScrollPanel");
    addButton.setEnabled(false);
    JsonUtils.addTableManagedButton(call, table, addButton);
    content.add(sp);
    session.getUiElements().resizeSmallTabPanel(sp, 350, this);
    this.contentWidget.setWidget(new SimplePanel(content));
    return getWidget();
}
Also used : User(cz.metacentrum.perun.webgui.model.User) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) FindCompleteRichUsers(cz.metacentrum.perun.webgui.json.usersManager.FindCompleteRichUsers) ArrayList(java.util.ArrayList) ExtendedTextBox(cz.metacentrum.perun.webgui.widgets.ExtendedTextBox) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) AddSpecificUserOwner(cz.metacentrum.perun.webgui.json.usersManager.AddSpecificUserOwner) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton)

Example 69 with ClickEvent

use of com.google.gwt.event.dom.client.ClickEvent in project perun by CESNET.

the class InviteUserTabItem method draw.

public Widget draw() {
    VerticalPanel vp = new VerticalPanel();
    final FlexTable ft = new FlexTable();
    ft.setWidth("350px");
    ft.setStyleName("inputFormFlexTable");
    if (groupId == 0) {
        ft.setHTML(0, 0, "Person you are inviting will receive an email with link to VOs application form. You can set up an email template in: Vo manager (advanced) -> Application form -> Notifications.");
    } else {
        ft.setHTML(0, 0, "Person you are inviting will receive an email with link to groups application form. You can set up an email template in: Group manager (advanced) -> Application form -> Notifications.");
    }
    ft.getFlexCellFormatter().setColSpan(0, 0, 2);
    ft.getFlexCellFormatter().addStyleName(0, 0, "inputFormInlineComment");
    ft.setHTML(1, 0, "Name:");
    ft.setHTML(2, 0, "Email:");
    ft.setHTML(3, 0, "Language:");
    ft.getFlexCellFormatter().setStyleName(1, 0, "itemName");
    ft.getFlexCellFormatter().setStyleName(2, 0, "itemName");
    ft.getFlexCellFormatter().setStyleName(3, 0, "itemName");
    final ListBox languages = new ListBox();
    languages.setWidth("200px");
    //languages.addItem("Czech", "cs");
    languages.addItem("English", "en");
    languages.setSelectedIndex(1);
    if (!Utils.getNativeLanguage().isEmpty()) {
        languages.addItem(Utils.getNativeLanguage().get(2), Utils.getNativeLanguage().get(0));
    }
    final ExtendedTextBox name = new ExtendedTextBox();
    final ExtendedTextBox email = new ExtendedTextBox();
    final ExtendedTextBox.TextBoxValidator nameValidator = new ExtendedTextBox.TextBoxValidator() {

        @Override
        public boolean validateTextBox() {
            if (name.getTextBox().getText().trim().isEmpty()) {
                name.setError("Name can't be empty.");
                return false;
            } else {
                name.setOk();
                return true;
            }
        }
    };
    final ExtendedTextBox.TextBoxValidator emailValidator = new ExtendedTextBox.TextBoxValidator() {

        @Override
        public boolean validateTextBox() {
            if (email.getTextBox().getText().trim().isEmpty()) {
                email.setError("Email can't be empty.");
                return false;
            } else if (!JsonUtils.isValidEmail(email.getTextBox().getText().trim())) {
                email.setError("Not valid email address format.");
                return false;
            } else {
                email.setOk();
                return true;
            }
        }
    };
    // Name is now optional
    // name.setValidator(nameValidator);
    email.setValidator(emailValidator);
    ft.setWidget(1, 1, name);
    ft.setWidget(2, 1, email);
    ft.setWidget(3, 1, languages);
    vp.add(ft);
    final TabItem tab = this;
    final CustomButton sendInvitationButton = new CustomButton("Send invitation", SmallIcons.INSTANCE.emailIcon());
    sendInvitationButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            //if (!nameValidator.validateTextBox() || !emailValidator.validateTextBox()) return;
            if (!emailValidator.validateTextBox())
                return;
            SendInvitation invite = new SendInvitation(vo.getId(), groupId, JsonCallbackEvents.closeTabDisableButtonEvents(sendInvitationButton, tab));
            invite.inviteUser(email.getTextBox().getText().trim(), name.getTextBox().getText().trim(), languages.getValue(languages.getSelectedIndex()));
        }
    });
    TabMenu menu = new TabMenu();
    vp.add(menu);
    vp.setCellHorizontalAlignment(menu, HasHorizontalAlignment.ALIGN_RIGHT);
    menu.addWidget(sendInvitationButton);
    menu.addWidget(TabMenu.getPredefinedButton(ButtonType.CANCEL, "", new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            session.getTabManager().closeTab(tab, false);
        }
    }));
    contentWidget.setWidget(vp);
    return getWidget();
}
Also used : ClickEvent(com.google.gwt.event.dom.client.ClickEvent) ExtendedTextBox(cz.metacentrum.perun.webgui.widgets.ExtendedTextBox) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton) SendInvitation(cz.metacentrum.perun.webgui.json.registrarManager.SendInvitation)

Example 70 with ClickEvent

use of com.google.gwt.event.dom.client.ClickEvent in project perun by CESNET.

the class UserDetailTabItem method loadServiceIdentities.

public VerticalPanel loadServiceIdentities() {
    // Content
    VerticalPanel vp = new VerticalPanel();
    vp.setSize("100%", "100%");
    if (user.isServiceUser()) {
        // SERVICE TYPE user
        // request
        final GetUsersBySpecificUser request = new GetUsersBySpecificUser(userId);
        // menu
        TabMenu menu = new TabMenu();
        vp.add(menu);
        vp.setCellHeight(menu, "30px");
        // buttons
        menu.addWidget(TabMenu.getPredefinedButton(ButtonType.ADD, true, "Add new user to service identity: " + user.getLastName(), new ClickHandler() {

            public void onClick(ClickEvent clickEvent) {
                session.getTabManager().addTabToCurrentTab(new ConnectServiceIdentityTabItem(user), true);
            }
        }));
        final CustomButton removeUserButton = TabMenu.getPredefinedButton(ButtonType.REMOVE, "Remove user from service identity " + user.getLastName());
        menu.addWidget(removeUserButton);
        removeUserButton.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent clickEvent) {
                final ArrayList<User> list = request.getTableSelectedList();
                final ArrayList<User> fullList = request.getList();
                if (fullList.size() == list.size()) {
                    UiElements.generateAlert("Remove warning", "<strong><span class=\"serverResponseLabelError\">If you remove all users from service identity you won't be able to use it in the future.</br></br>Please consider keeping at least one user, e.g. add someone else before you remove yourself.</span></strong><p><strong>Do you wish to continue anyway ?</strong>", new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                            UiElements.showDeleteConfirm(list, "Following users will be removed from service identity and they will lose all access to it. Only users associated with service identity can add other users again. If you remove all users connected to the service identity, you won't be able to use it in future!", new ClickHandler() {

                                @Override
                                public void onClick(ClickEvent event) {
                                    for (int i = 0; i < list.size(); i++) {
                                        // TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
                                        RemoveSpecificUserOwner req;
                                        if (i == list.size() - 1) {
                                            req = new RemoveSpecificUserOwner(JsonCallbackEvents.disableButtonEvents(removeUserButton, JsonCallbackEvents.refreshTableEvents(request)));
                                        } else {
                                            req = new RemoveSpecificUserOwner(JsonCallbackEvents.disableButtonEvents(removeUserButton));
                                        }
                                        req.removeServiceUser(list.get(i), user);
                                    // TODO - consider fixing authz in session ?
                                    }
                                }
                            });
                        }
                    });
                } else {
                    // if not selected myself, continue same way
                    UiElements.showDeleteConfirm(list, "Following users will be removed from service identity and they will lose any access to it. Only users associated with service identity can add other users again. If you remove all users connected to the service identity, it will be deleted too!", new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                            for (int i = 0; i < list.size(); i++) {
                                // TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
                                RemoveSpecificUserOwner req;
                                if (i == list.size() - 1) {
                                    req = new RemoveSpecificUserOwner(JsonCallbackEvents.disableButtonEvents(removeUserButton, JsonCallbackEvents.refreshTableEvents(request)));
                                } else {
                                    req = new RemoveSpecificUserOwner(JsonCallbackEvents.disableButtonEvents(removeUserButton));
                                }
                                req.removeServiceUser(list.get(i), user);
                            // TODO - consider fixing authz in session ?
                            }
                        }
                    });
                }
            }
        });
        // table
        CellTable<User> table = request.getTable(new FieldUpdater<User, String>() {

            public void update(int i, User user, String s) {
                session.getTabManager().addTab(new UserDetailTabItem(user));
            }
        });
        removeUserButton.setEnabled(false);
        JsonUtils.addTableManagedButton(request, table, removeUserButton);
        table.addStyleName("perun-table");
        table.setWidth("100%");
        ScrollPanel sp = new ScrollPanel(table);
        sp.addStyleName("perun-tableScrollPanel");
        vp.add(sp);
    } else {
        // PERSON TYPE user
        // request
        final GetSpecificUsersByUser request = new GetSpecificUsersByUser(userId);
        request.setHideSponsored(true);
        // menu
        TabMenu menu = new TabMenu();
        vp.add(menu);
        vp.setCellHeight(menu, "30px");
        // buttons
        menu.addWidget(TabMenu.getPredefinedButton(ButtonType.ADD, true, "Add new service identity to " + user.getFullName(), new ClickHandler() {

            public void onClick(ClickEvent clickEvent) {
                session.getTabManager().addTabToCurrentTab(new ConnectServiceIdentityTabItem(user), true);
            }
        }));
        final CustomButton removeUserButton = TabMenu.getPredefinedButton(ButtonType.REMOVE, "Remove service identity from " + user.getFullName());
        menu.addWidget(removeUserButton);
        removeUserButton.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent clickEvent) {
                final ArrayList<User> list = request.getTableSelectedList();
                UiElements.showDeleteConfirm(list, "Following service identities will be removed from user.", new ClickHandler() {

                    @Override
                    public void onClick(ClickEvent event) {
                        // TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
                        for (int i = 0; i < list.size(); i++) {
                            RemoveSpecificUserOwner req;
                            // if last, refresh
                            if (i == list.size() - 1) {
                                req = new RemoveSpecificUserOwner(JsonCallbackEvents.refreshTableEvents(request));
                            } else {
                                req = new RemoveSpecificUserOwner();
                            }
                            req.removeServiceUser(user, list.get(i));
                        }
                    }
                });
            }
        });
        // table
        CellTable<User> table = request.getTable(new FieldUpdater<User, String>() {

            public void update(int i, User user, String s) {
                session.getTabManager().addTab(new UserDetailTabItem(user));
            }
        });
        removeUserButton.setEnabled(false);
        JsonUtils.addTableManagedButton(request, table, removeUserButton);
        table.addStyleName("perun-table");
        table.setWidth("100%");
        ScrollPanel sp = new ScrollPanel(table);
        sp.addStyleName("perun-tableScrollPanel");
        vp.add(sp);
    }
    return vp;
}
Also used : GetMemberByUser(cz.metacentrum.perun.webgui.json.membersManager.GetMemberByUser) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) ArrayList(java.util.ArrayList) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton)

Aggregations

ClickEvent (com.google.gwt.event.dom.client.ClickEvent)385 ClickHandler (com.google.gwt.event.dom.client.ClickHandler)382 CustomButton (cz.metacentrum.perun.webgui.widgets.CustomButton)161 JsonCallbackEvents (cz.metacentrum.perun.webgui.json.JsonCallbackEvents)135 TabMenu (cz.metacentrum.perun.webgui.widgets.TabMenu)124 ArrayList (java.util.ArrayList)117 JavaScriptObject (com.google.gwt.core.client.JavaScriptObject)105 TabItem (cz.metacentrum.perun.webgui.tabs.TabItem)76 ChangeEvent (com.google.gwt.event.dom.client.ChangeEvent)42 ChangeHandler (com.google.gwt.event.dom.client.ChangeHandler)41 ExtendedSuggestBox (cz.metacentrum.perun.webgui.widgets.ExtendedSuggestBox)40 PerunError (cz.metacentrum.perun.webgui.model.PerunError)36 ExtendedTextBox (cz.metacentrum.perun.webgui.widgets.ExtendedTextBox)32 HashMap (java.util.HashMap)32 Button (com.google.gwt.user.client.ui.Button)30 Image (com.google.gwt.user.client.ui.Image)28 HTML (com.google.gwt.user.client.ui.HTML)26 Button (org.gwtbootstrap3.client.ui.Button)26 FlexCellFormatter (com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter)25 PerunSearchEvent (cz.metacentrum.perun.webgui.client.resources.PerunSearchEvent)23