Example usage for org.apache.wicket.ajax.markup.html.form AjaxSubmitLink add

List of usage examples for org.apache.wicket.ajax.markup.html.form AjaxSubmitLink add

Introduction

In this page you can find the example usage for org.apache.wicket.ajax.markup.html.form AjaxSubmitLink add.

Prototype

public MarkupContainer add(final Component... children) 

Source Link

Document

Adds the child component(s) to this container.

Usage

From source file:ch.bd.qv.quiz.panels.BasePanel.java

License:Apache License

public BasePanel(String id) {
    super(id);//from  w  w  w . j a v  a 2s  .c  o m
    add(new FeedbackPanel("feedback"));

    form = new Form("form");
    add(form);
    form.add(new LangPanel("swapPanel"));
    final AjaxSubmitLink ajaxSubmitLink = new AjaxSubmitLink("submit") {
        @Override
        public boolean isVisible() {
            return isVisibleNotOnLangAndEnd();
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            driveNavigation();
            target.add(findParent(BasePanel.class));
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(findParent(BasePanel.class));
        }
    };
    final AjaxLink cancelLink = new AjaxLink("cancel") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            getSession().invalidateNow();
            setResponsePage(HomePage.class);
            target.add(findParent(BasePanel.class));
        }

        @Override
        public boolean isVisible() {
            return isVisibleNotOnLangAndEnd();
        }
    };
    ajaxSubmitLink.add(new Label("label", new LoadableDetachableModel<String>() {
        @Override
        protected String load() {
            if (data.getNavigation() == NavigationEnum.QUESTION
                    && data.getQuestionNo() == data.getQuestions().size()) {
                LOGGER.debug("last question, display end. ");
                return new StringResourceModel("button.end", BasePanel.this, null).getObject();
            } else {

                return new StringResourceModel("button.weiter", BasePanel.this, null).getObject();
            }
        }
    }));

    form.add(ajaxSubmitLink, cancelLink);
}

From source file:com.evolveum.midpoint.web.component.form.multivalue.MultiValueTextEditPanel.java

License:Apache License

private void initButtons(WebMarkupContainer buttonGroup, final ListItem<T> item) {
    AjaxSubmitLink edit = new AjaxSubmitLink(ID_EDIT) {

        @Override/*w w  w.  ja v  a2 s  . c o  m*/
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            editPerformed(target, item.getModelObject());
        }
    };
    edit.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            if (buttonsDisabled()) {
                return " " + CSS_DISABLED;
            }

            return "";
        }
    }));
    buttonGroup.add(edit);

    AjaxLink add = new AjaxLink(ID_ADD) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            addValuePerformed(target);
        }
    };
    add.add(new AttributeAppender("class", getPlusClassModifier(item)));
    buttonGroup.add(add);

    AjaxLink remove = new AjaxLink(ID_REMOVE) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            removeValuePerformed(target, item);
        }
    };
    remove.add(new AttributeAppender("class", getMinusClassModifier()));
    buttonGroup.add(remove);
}

From source file:com.evolveum.midpoint.web.page.admin.configuration.component.NotificationConfigPanel.java

License:Apache License

@Override
protected void initLayout() {
    TextField<String> defaultFromField = WebComponentUtil.createAjaxTextField(ID_DEFAULT_FROM,
            new PropertyModel<String>(getModel(), "defaultFrom"));

    CheckBox debugCheck = WebComponentUtil.createAjaxCheckBox(ID_DEBUG,
            new PropertyModel<Boolean>(getModel(), "debug"));

    DropDownChoice mailServerConfigChooser = new DropDownChoice<>(ID_MAIL_SERVER,
            new PropertyModel<MailServerConfigurationTypeDto>(getModel(),
                    NotificationConfigurationDto.F_SELECTED_SERVER),
            new AbstractReadOnlyModel<List<MailServerConfigurationTypeDto>>() {

                @Override//  w w w .j  a va 2 s .c  om
                public List<MailServerConfigurationTypeDto> getObject() {
                    return getModel().getObject().getServers();
                }
            }, new ChoiceableChoiceRenderer<MailServerConfigurationTypeDto>());
    mailServerConfigChooser.setNullValid(true);
    mailServerConfigChooser.add(new AjaxFormSubmitBehavior("click") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            getForm().onFormSubmitted();
        }
    });
    mailServerConfigChooser.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            preparePasswordFieldPlaceholder();
            target.add(NotificationConfigPanel.this);
        }
    });
    add(mailServerConfigChooser);

    Label serverConfigTooltip = new Label(ID_MAIL_SERVER_TOOLTIP);
    serverConfigTooltip.add(new InfoTooltipBehavior());
    add(serverConfigTooltip);

    WebMarkupContainer serverConfigContainer = new WebMarkupContainer(ID_MAIL_SERVER_CONFIG_CONTAINER);
    serverConfigContainer.setOutputMarkupId(true);
    serverConfigContainer.setOutputMarkupPlaceholderTag(true);
    serverConfigContainer.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            if (getModelObject() != null) {
                return getModelObject().getSelectedServer() != null;
            }

            return false;
        }
    });
    add(serverConfigContainer);

    TextField<String> hostField = WebComponentUtil.createAjaxTextField(ID_HOST,
            new PropertyModel<String>(getModel(), "selectedServer.host"));
    TextField<Integer> portField = WebComponentUtil.createAjaxTextField(ID_PORT,
            new PropertyModel<Integer>(getModel(), "selectedServer.port"));
    TextField<String> userNameField = WebComponentUtil.createAjaxTextField(ID_USERNAME,
            new PropertyModel<String>(getModel(), "selectedServer.username"));
    PasswordTextField passwordField = new PasswordTextField(ID_PASSWORD,
            new PropertyModel<String>(getModel(), "selectedServer.password"));
    passwordField.setRequired(false);
    passwordField.add(new EmptyOnChangeAjaxFormUpdatingBehavior());

    TextField<String> redirectToFileField = WebComponentUtil.createAjaxTextField(ID_REDIRECT_TO_FILE,
            new PropertyModel<String>(getModel(), "redirectToFile"));

    DropDownFormGroup transportSecurity = new DropDownFormGroup<>(ID_TRANSPORT_SECURITY,
            new PropertyModel<MailTransportSecurityType>(getModel(),
                    "selectedServer.mailTransportSecurityType"),
            WebComponentUtil.createReadonlyModelFromEnum(MailTransportSecurityType.class),
            new EnumChoiceRenderer<MailTransportSecurityType>(this),
            createStringResource("SystemConfigPanel.mail.transportSecurity"), ID_LABEL_SIZE, ID_INPUT_SIZE,
            false);
    // transportSecurity.add(new EmptyOnChangeAjaxFormUpdatingBehavior());

    serverConfigContainer.add(hostField);
    serverConfigContainer.add(portField);
    serverConfigContainer.add(userNameField);
    serverConfigContainer.add(passwordField);
    serverConfigContainer.add(transportSecurity);

    add(defaultFromField);
    add(debugCheck);
    add(redirectToFileField);

    AjaxSubmitLink buttonAddNewMailServerConfig = new AjaxSubmitLink(ID_BUTTON_ADD_NEW_MAIL_SERVER_CONFIG) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            MailServerConfigurationTypeDto newConfig = new MailServerConfigurationTypeDto();
            newConfig.setHost(getString("SystemConfigPanel.mail.config.placeholder"));

            if (getModelObject() != null) {
                getModelObject().getServers().add(newConfig);
                getModelObject().setSelectedServer(newConfig);
            }

            preparePasswordFieldPlaceholder();
            target.add(NotificationConfigPanel.this, getPageBase().getFeedbackPanel());
        }

        @Override
        protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            target.add(getPageBase().getFeedbackPanel());
        }
    };
    add(buttonAddNewMailServerConfig);

    AjaxSubmitLink removeMailServerConfig = new AjaxSubmitLink(ID_BUTTON_REMOVE_MAIL_SERVER_CONFIG) {

        @Override
        protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            if (getModelObject() != null) {
                NotificationConfigurationDto notificationConfig = getModelObject();

                MailServerConfigurationTypeDto selected = notificationConfig.getSelectedServer();

                if (notificationConfig.getServers().contains(selected)) {
                    notificationConfig.getServers().remove(selected);
                    notificationConfig.setSelectedServer(null);
                } else {
                    warn(getString("SystemConfigPanel.mail.server.remove.warn"));
                }

                target.add(NotificationConfigPanel.this, getPageBase().getFeedbackPanel());
            }
        }

        @Override
        protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
            target.add(getPageBase().getFeedbackPanel());
        }
    };
    removeMailServerConfig.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            if (getModelObject() != null && getModelObject().getSelectedServer() != null) {
                return null;
            } else {
                return " disabled";
            }
        }
    }));
    add(removeMailServerConfig);

}

From source file:com.visural.stereotyped.ui.prototype.TreePanel.java

License:Mozilla Public License

public TreePanel(String id, final OperableTreeNode node) {
    super(id);/*  w  w  w.j  a  v  a  2  s .  c  om*/
    WebMarkupContainer container = new WebMarkupContainer("container");
    add(container);
    if (node.getComponent() != null && !Stereotype.class.isAssignableFrom(node.getComponent().getClass())) {
        container.add(new DragSource(Operation.MOVE) {
            @Override
            public void onBeforeDrop(Component drag, Transfer transfer) throws Reject {
                if (!allowDragAndDrop()) {
                    transfer.reject();
                } else {
                    transfer.setData(node);
                }
            }
        }.drag("a"));
    }
    DropTarget componentDrop = null;
    if (node.getSlot() != null
            || (node.getComponent().getSlots() != null && node.getComponent().getSlots().size() == 1)) {
        DropTarget newDt = new DropTarget(Operation.MOVE) {
            @Override
            public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
                Slot slot = node.getSlot() != null ? node.getSlot() : node.getComponent().getSlots().get(0);
                OperableTreeNode otn = transfer.getData();
                if (otn != null && otn.getComponent() != null && slot.acceptComponent(otn.getComponent())) {
                    if (otn.getComponent().contains(slot)) {
                        transfer.reject(); // drop component on self or child of self
                    } else {
                        com.visural.stereotyped.core.Component com = otn.getComponent();
                        com.delete();
                        slot.addComponent(com);
                        updateTree(target);
                        invokePreviewRefresh(target);
                    }
                } else {
                    transfer.reject();
                }
            }
        };
        if (node.getSlot() != null) {
            container.add(newDt.dropCenter("a"));
        } else {
            componentDrop = newDt;
        }
    }
    if (node.getComponent() != null && !Stereotype.class.isAssignableFrom(node.getComponent().getClass())) {
        final DropTarget dtComp = componentDrop;
        DropTarget dtNew = new DropTarget(Operation.MOVE) {
            @Override
            public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
                Slot slot = node.getComponent().getParentSlot();
                if (location.getAnchor().equals(Anchor.CENTER)) {
                    dtComp.onDrop(target, transfer, location);
                } else {
                    OperableTreeNode otn = transfer.getData();
                    if (otn != null && otn.getComponent() != null && slot.acceptComponent(otn.getComponent())) {
                        com.visural.stereotyped.core.Component com = otn.getComponent();
                        if (com.getUuid().equals(node.getComponent().getUuid())) {
                            transfer.reject(); // drop component next to self
                        } else if (com.contains(slot)) {
                            transfer.reject(); // drop component on self or child of self
                        } else {
                            switch (location.getAnchor()) {
                            case TOP:
                            case LEFT: {
                                com.delete();
                                int idx = slot.getContent().indexOf(node.getComponent());
                                if (idx < 0) {
                                    throw new IllegalStateException("Drop component was not in expected slot.");
                                }
                                slot.addComponent(idx, com);
                                updateTree(target);
                                invokePreviewRefresh(target);
                            }
                                break;
                            case BOTTOM:
                            case RIGHT: {
                                com.delete();
                                int idx = slot.getContent().indexOf(node.getComponent());
                                if (idx < 0) {
                                    throw new IllegalStateException("Drop component was not in expected slot.");
                                }
                                if (idx == slot.getContent().size() - 1) {
                                    slot.addComponent(com);
                                } else {
                                    slot.addComponent(idx + 1, com);
                                }
                                updateTree(target);
                                invokePreviewRefresh(target);
                            }
                                break;
                            default:
                                transfer.reject();
                            }
                        }
                    } else {
                        transfer.reject();
                    }
                }
            }
        }.dropTopAndBottom("a");
        if (componentDrop != null) {
            dtNew.dropCenter("a");
        }
        container.add(dtNew);
    }

    AjaxSubmitLink link = new AjaxSubmitLink("link") {

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            select(target);
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);
            if (isSelected()) {
                tag.put("class", "selected");
            }
            tag.put("onmouseover",
                    "doHighlight('" + ComponentRenderer.STCOM_UUID_PREFIX + node.getUuid().toString() + "');");
            tag.put("onmouseout", "removeHighlight();");
        }
    };
    container.add(link);
    if (node.getComponent() != null) {
        link.add(new Image("icon", node.getComponent().getIcon()));
        link.add(new Label("label", new AbstractReadOnlyModel() {
            @Override
            public Object getObject() {
                return node.getComponent().getName() + (node.getComponent().isHide() ? " [hidden]" : "");
            }
        }));
    } else {
        link.add(new Image("icon", new SlotIcon()));
        link.add(new Label("label", new AbstractReadOnlyModel() {
            @Override
            public Object getObject() {
                return Function.nvl(node.getSlot().getDisplayName(), node.getSlot().getName());
            }
        }));
    }

    final Slot slot = node.getSlot() != null ? node.getSlot()
            : (node.getComponent() != null && node.getComponent().getSlots() != null
                    && node.getComponent().getSlots().size() == 1 ? node.getComponent().getSlots().get(0)
                            : null);

    if (slot == null) {
        container.add(new WebMarkupContainer("addComp").setVisible(false));
    } else {
        AjaxSubmitLink addComp;
        container.add(addComp = new AjaxSubmitLink("addComp") {
            @Override
            protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                invokeAdd(target, slot);
            }
        });
        addComp.setOutputMarkupId(true);
        container.add(
                new SimpleAttributeModifier("onmouseover", "jQuery('#" + addComp.getMarkupId() + "').show();"));
        container.add(
                new SimpleAttributeModifier("onmouseout", "jQuery('#" + addComp.getMarkupId() + "').hide();"));
    }
}

From source file:com.wiquery.plugin.antilia.link.JqAjaxSubmitLink.java

License:Apache License

/**
 * @param id/*from w ww . ja  va  2s  . c o  m*/
 */
public JqAjaxSubmitLink(String id, final JQIcon icon, IModel<String> title) {
    super(id);
    AjaxSubmitLink link = new AjaxSubmitLink("link") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            JqAjaxSubmitLink.this.onSubmit(target, form);
        }

        @Override
        public boolean isEnabled() {
            return JqAjaxSubmitLink.this.isEnabled();
        }
    };

    link.add(new AttributeModifier("title", title));

    link.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {

        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            return "ui-icon " + icon.getCssName();
        }
    }));

    link.add(new AttributeModifier("onmouseover", new AbstractReadOnlyModel<String>() {

        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            return "this.parentNode.className = 'ui-state-default ui-corner-all ui-state-hover';";
        }
    }));

    link.add(new AttributeModifier("onmouseout", new AbstractReadOnlyModel<String>() {

        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            return "this.parentNode.className = 'ui-state-default ui-corner-all';";
        }
    }));

    add(link);
}

From source file:eu.uqasar.web.dashboard.widget.reportingwidget.ReportingSettingsPanel.java

License:Apache License

public ReportingSettingsPanel(String id, IModel<ReportingWidget> model) {
    super(id, model);

    setOutputMarkupPlaceholderTag(true);

    final ReportingWidget qualityWidget = model.getObject();

    Form<Widget> form = new Form<>("form");

    cube = getModelObject().getSettings().get("cube");
    if (cube == null) {
        cube = "jira";
    }/*from www.jav  a  2s.c o  m*/
    selectedAdditionalRule = getModelObject().getSettings().get("selectedAdditionalRule");
    selectedRule = getModelObject().getSettings().get("selectedRule");

    chartType = getModelObject().getSettings().get("chartType");
    if (chartType == null) {
        chartType = ReportingWidget.COLUMN_TYPE;
    }

    try {
        InitialContext ic = new InitialContext();
        dataService = (SonarDataService) ic.lookup("java:module/SonarDataService");
        projects = dataService.getSonarProjects();
    } catch (NamingException e) {
        e.printStackTrace();
    }

    // Add Rules and Additional Rules as DropDownList
    rulesMap = qualityWidget.getRulesMap(projects);

    // //Add selection of cubes for report generation.
    List<String> cubes = Arrays.asList("jira", "sonarcube");
    final DropDownChoice<String> selectedCubes = new DropDownChoice<>("cube",
            new PropertyModel<String>(this, "cube"), cubes);
    selectedCubes.setRequired(true);
    form.add(selectedCubes);

    // Field for the chart type
    chartType = getModelObject().getSettings().get("chartType");
    DropDownChoice<String> choice = new DropDownChoice<>("chartType",
            new PropertyModel<String>(this, "chartType"), ReportingWidget.TYPES);
    form.add(choice);

    // Create a void form for ListView and WebMarkupContainer
    Form<Void> formVoid = new Form<>("formVoid");
    ruleWebMrkUpContainer = new WebMarkupContainer("ruleContainer", new Model<Rule>());
    ruleWebMrkUpContainer.setOutputMarkupId(true);
    formVoid.add(ruleWebMrkUpContainer);

    ruleWebMrkUpContainer.add(rulesView = new ListView<Rule>("rulesListView", Model.ofList(proposedRules)) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onConfigure() {
            super.onConfigure();
            // update model
            rulesView.setModelObject(proposedRules);
        }

        @Override
        protected void populateItem(ListItem<Rule> item) {

            final Rule proposedRule = item.getModelObject();

            // //get dropdown list method will give two different lists..
            IModel<List<? extends String>> ruleChoices = new AbstractReadOnlyModel<List<? extends String>>() {
                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;

                @Override
                public List<String> getObject() {
                    return new ArrayList<>(rulesMap.keySet());
                }

            };

            IModel<List<? extends String>> additionalRuleChoices = new AbstractReadOnlyModel<List<? extends String>>() {
                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;

                @Override
                public List<String> getObject() {
                    List<String> models = rulesMap.get(proposedRule.getSelectedRule()); // very important
                    // System.out.println("selectedRule : " + proposedUser.getSelectedRule());
                    if (models == null) {
                        models = Collections.emptyList();
                    }
                    return models;
                }

            };

            item.add(rules = new DropDownChoice<>("rules",
                    new PropertyModel<String>(proposedRule, "selectedRule"), ruleChoices));
            rules.setOutputMarkupId(true);
            rules.setNullValid(true);
            rules.setRequired(true);
            rules.setMarkupId("rules" + item.getIndex()); // very important

            item.add(additionalRules = new DropDownChoice<>("additionalRules",
                    new PropertyModel<String>(proposedRule, "selectedAdditionalRule"), additionalRuleChoices));
            additionalRules.setOutputMarkupId(true);
            additionalRules.setMarkupId("additionalRules" + item.getIndex()); // very important
            additionalRules.setNullValid(true);
            additionalRules.setRequired(true);
            rules.add(new AjaxFormComponentUpdatingBehavior("onchange") { // very important
                /**
                * 
                */
                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    target.add(additionalRules);
                    target.add(rules);
                }
            });

            additionalRules.add(new AjaxFormComponentUpdatingBehavior("onchange") { // very important
                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    target.add(additionalRules);
                    target.add(rules);
                }
            });
        }
    });

    AjaxSubmitLink addRuleButton = new AjaxSubmitLink("add.rule", formVoid) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> formVoid) {
            // target.add(feedbackPanel);
            target.add(formVoid);
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> formVoid) {

            addNewRuleToList(target, formVoid);
        }
    };
    addRuleButton.add(new Label("button.add.save",
            new StringResourceModel("button.add.save", this, Model.of(proposedRules))));
    formVoid.add(addRuleButton);

    rulesView.setOutputMarkupId(true);
    form.add(formVoid);

    form.add(new AjaxSubmitLink("submit") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            Dashboard dashboard = findParent(DashboardPanel.class).getDashboard();
            if (dashboard != null && dashboardContext != null) {

                // Here, create a url query based on selected Rule and Additional Rule from dynamic dropdown lists..
                urlToLoad = createRule();
                System.out.println(urlToLoad);
                getModelObject().getSettings().put("urlToLoad", urlToLoad);

                getModelObject().getSettings().put("cube", cube);
                getModelObject().getSettings().put("selectedAdditionalRule", selectedAdditionalRule);
                getModelObject().getSettings().put("selectedRule", selectedRule);
                getModelObject().getSettings().put("chartType", chartType);

                System.out.print("dashboard : " + dashboard);
                dashboardContext.getDashboardPersiter().save(dashboard);
                hideSettingPanel(target);

                WidgetPanel widgetPanel = findParent(WidgetPanel.class);
                ReportingWidget tasksWidget = (ReportingWidget) widgetPanel.getModelObject();
                tasksWidget.setTitle("Reporting Widget For " + cube + " cube");
                ReportingWidgetView widgetView = (ReportingWidgetView) widgetPanel.getWidgetView();
                target.add(widgetView);

                PageParameters params = new PageParameters();
                DbDashboard dbdb = (DbDashboard) dashboard;
                params.add("id", dbdb.getId());
                setResponsePage(DashboardViewPage.class, params);
            }
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
        }

    });

    form.add(new AjaxLink<Void>("cancel") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            hideSettingPanel(target);
        }
    });

    add(form);

}

From source file:eu.uqasar.web.pages.admin.teams.panels.EditTeamPanel.java

License:Apache License

public EditTeamPanel(final String markupId, final StyledFeedbackPanel feedbackPanel, final Team team) {
    super(markupId);
    this.team = team;
    Form<Team> formEdit = new InputValidationForm<>("form.edit", Model.of(team));
    nameField = new TextField<>("name", new PropertyModel<String>(this.team, "name"));
    InputBorder<String> serverValidationBorder = new InputBorder<>("nameValidationBorder", nameField,
            new StringResourceModel("label.name", this, null));
    formEdit.add(serverValidationBorder);
    add(formEdit);/*from  w ww  .j  a  v a  2 s . c  om*/

    Form<TeamMembership> formAdd = new InputValidationForm<>("form.add", Model.of(membership));
    AutoCompleteSettings settings = new AutoCompleteSettings().setPreselect(true).setShowListOnFocusGain(true)
            .setShowListOnEmptyInput(true);
    AutoCompleteTextField<User> userComplete = new AutoCompleteTextField<User>("add.userName",
            new PropertyModel(membership, "user"), User.class, getAutocompleteRenderer(), settings) {

        @Override
        protected Iterator<User> getChoices(String input) {
            return getTeamableUsers(input);
        }

        @Override
        public <User> IConverter<User> getConverter(Class<User> type) {
            return (IConverter<User>) getAutocompleteConverter();
        }
    };

    DropDownChoice<Role> userRole = new DropDownChoice<>("add.userRole", new PropertyModel(membership, "role"),
            Arrays.asList(Role.teamAssignableRoles()));
    userRole.setNullValid(false);
    AjaxSubmitLink addMember = new AjaxSubmitLink("add.member", formAdd) {

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(feedbackPanel);
            target.add(form);
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            TeamMembership membership = (TeamMembership) form.getModelObject();
            EditTeamPanel.this.team.getMembers().add(membership);
            teamMembersList.setModelObject(EditTeamPanel.this.team);
            target.add(teamMembersList);
        }
    };
    addMember.add(
            new Label("button.add.save", new StringResourceModel("button.add.save", this, Model.of(team))));
    formAdd.add(addMember);
    formAdd.add(userRole);
    formAdd.add(userComplete);
    add(formAdd);

    teamMembersList = new InputValidationForm<>("form.list", Model.of(team));
    DataView<TeamMembership> usersView = new DataView<TeamMembership>("members", getMembershipProvider(team)) {
        @Override
        protected void populateItem(Item<TeamMembership> item) {
            final TeamMembership team = item.getModelObject();
            Check<TeamMembership> check = newDeleteCheck(item);
            List<Role> roles = new ArrayList<>(Arrays.asList(Role.teamAssignableRoles()));
            item.add(check);
            item.add(new Label("td.membername", new PropertyModel<>(team.getUser(), "fullName")));
            DropDownChoice<Role> roleSelector = new DropDownChoice<>("td.role",
                    new PropertyModel<Role>(team, "role"), roles);
            roleSelector.setNullValid(false);
            item.add(roleSelector);
            item.setOutputMarkupId(true);
        }
    };
    teamMembersList.add(teamGroup = newCheckGroup());
    final WebMarkupContainer usersContainer = new WebMarkupContainer("membersContainer");
    teamGroup.add(usersContainer.setOutputMarkupId(true));
    CheckGroupSelector checkGroupSelector = new CheckGroupSelector("memberGroupSelector", teamGroup);
    usersContainer.add(checkGroupSelector);
    usersContainer.add(usersView);
    usersContainer.add(deleteSelectedButton = newDeleteSelectedButton(teamGroup));
    deleteSelectedButton.add(new Label("td.members.actions.batch.remove",
            new StringResourceModel("td.members.actions.batch.remove", this, Model.of(team))));
    add(teamMembersList.setOutputMarkupId(true));

    add(new Label("label.add.title", new StringResourceModel("label.add.title", this, Model.of(team))));
    add(new Label("label.list.title", new StringResourceModel("label.list.title", this, Model.of(team))));
}

From source file:eu.uqasar.web.pages.admin.teams.TeamEditPage.java

License:Apache License

public TeamEditPage(final PageParameters parameters) {
    super(parameters);

    if (!parameters.get("id").isEmpty()) {
        team = teamService.getById(parameters.get("id").toLong());
        if (team == null) {
            throw new EntityNotFoundException(Team.class, parameters.get("id").toOptionalString());
        }//from w w  w  .  j  a v  a2s. co  m
    }

    add(new Label("page.title", getPageTitleModel()));
    Form<Team> formEdit = new InputValidationForm<Team>("form.edit", Model.of(team)) {

        @Override
        protected void onSubmit() {
            String message = new StringResourceModel("save.confirmed", this, null).getString();
            if (team.getId() == null) {
                team = teamService.create(team);
                setResponsePage(TeamEditPage.class, new PageParameters().add("id", team.getId()));
            } else {
                team = teamService.update(team);
                getPage().success(message);
                setResponsePage(getPage());
            }
        }
    };
    nameField = new TextField<>("name", new PropertyModel<String>(this.team, "name"));
    InputBorder<String> nameValidationBorder = new OnEventInputBeanValidationBorder<>("nameValidationBorder",
            nameField, new StringResourceModel("label.name", this, null), HtmlEvent.ONBLUR);
    formEdit.add(nameValidationBorder);

    descriptionField = new TextArea<>("description", new PropertyModel<String>(this.team, "description"));
    InputBorder<String> descriptionValidationBorder = new OnEventInputBeanValidationBorder<>(
            "descriptionValidationBorder", descriptionField, HtmlEvent.ONBLUR);
    formEdit.add(descriptionValidationBorder);

    add(formEdit);

    existingTeamContainer = new WebMarkupContainer("existingTeam");
    add(existingTeamContainer);

    formAdd = new Form<>("form.add");
    userComplete = new IndicatingAjaxAutoCompleteTextField<User>("add.userName",
            new PropertyModel(membership, "user"), User.class, getAutocompleteRenderer(),
            WebConstants.getDefaultAutoCompleteSettings()) {
        @Override
        protected Iterator<User> getChoices(String input) {
            return getTeamableUsers(input);
        }

        @Override
        public <User> IConverter<User> getConverter(Class<User> type) {
            return (IConverter<User>) getAutocompleteConverter();
        }
    };
    userRole = new DropDownChoice<>("add.userRole", new PropertyModel(membership, "role"),
            Arrays.asList(Role.teamAssignableRoles()));
    userRole.setNullValid(false);
    AjaxSubmitLink addMember = new AjaxSubmitLink("add.member", formAdd) {

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(feedbackPanel);
            target.add(form);
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            addUserToTeam(target, form);
        }
    };
    addMember.add(
            new Label("button.add.save", new StringResourceModel("button.add.save", this, Model.of(team))));
    formAdd.add(addMember);
    formAdd.add(userRole);
    formAdd.add(userComplete);
    existingTeamContainer.add(formAdd.setOutputMarkupId(true));

    teamMembersList = new InputValidationForm<>("form.list", Model.of(team));
    DataView<TeamMembership> usersView = getTeamMembersListing();
    teamMembersList.add(teamGroup = newCheckGroup());
    final WebMarkupContainer usersContainer = new WebMarkupContainer("membersContainer");
    teamGroup.add(usersContainer.setOutputMarkupId(true));
    CheckGroupSelector checkGroupSelector = new CheckGroupSelector("memberGroupSelector", teamGroup);
    usersContainer.add(checkGroupSelector);
    usersContainer.add(usersView);
    usersContainer.add(deleteSelectedButton = newDeleteSelectedButton(teamGroup));
    deleteSelectedButton.add(new Label("td.members.actions.batch.remove",
            new StringResourceModel("td.members.actions.batch.remove", this, Model.of(team))));
    existingTeamContainer.add(teamMembersList.setOutputMarkupId(true));

    existingTeamContainer.add(
            new Label("label.add.title", new StringResourceModel("label.add.title", this, Model.of(team))));
    existingTeamContainer.add(
            new Label("label.list.title", new StringResourceModel("label.list.title", this, Model.of(team))));
    add(deleteConfirmationModal = newDeleteConfirmationModal());
}

From source file:eu.uqasar.web.pages.admin.users.UserEditPage.java

License:Apache License

public UserEditPage(final PageParameters pageParameters) {
    super(pageParameters);
    if (!pageParameters.get("id").isEmpty()) {
        user = userService.getById(pageParameters.get("id").toLong());
        if (user == null) {
            throw new EntityNotFoundException(User.class, pageParameters.get("id").toOptionalString());
        }//from  w  w w .j  av a2s  . com
    }
    add(new Label("page.title", getPageTitleModel()));
    add(new EditProfilePanel("edit.profile", pageParameters.get("id").toOptionalLong()) {
        @Override
        public void onSubmit(final User user, final String password, final String passwordConfirmation) {
            String message = new StringResourceModel("save.confirmed", this, null).getString();

            if (user.getId() == null) {
                User registered = tryToRegister(user, password, passwordConfirmation);
                if (registered != null) {
                    setResponsePage(UserEditPage.class, new PageParameters().add("id", registered.getId()));
                }
                setResponsePage(UserListPage.class,
                        new PageParameters().set(MESSAGE_PARAM,
                                new StringResourceModel("add.confirmed", this, Model.of(user)).getString())
                                .set(LEVEL_PARAM, FeedbackMessage.SUCCESS));
            } else {
                if (authenticationService.checkNonEmptyPasswords(password, passwordConfirmation)) {
                    // User wants to change his/her password!
                    if (authenticationService.checkPasswordsEqual(password, passwordConfirmation)) {
                        authenticationService.updateUserPassword(user, password, passwordConfirmation);
                        userService.update(user);
                    } else {
                        error(new StringResourceModel("confirmPassword.EqualPasswordInputValidator", this,
                                null));
                    }
                } else {
                    userService.update(user);
                }
                getPage().success(message);
                setResponsePage(getPage());
            }
        }

        @Override
        public void onCancel() {

            //setResponsePage(UserListPage.class);
            setResponsePage(UserListPage.class,
                    new PageParameters().set(MESSAGE_PARAM,
                            new StringResourceModel("cancel.confirmed", this, Model.of(user)).getString())
                            .set(LEVEL_PARAM, FeedbackMessage.WARNING));

        }
    });

    teamsListForm = new Form<>("form.teams.edit");
    teamsListForm.add(new Label("section.teams.title",
            new StringResourceModel("section.teams.title", this, Model.of(user))));
    DataView<TeamMembership> teamsView = getTeamListing();
    teamsListForm.add(teamGroup = newCheckGroup());
    final WebMarkupContainer usersContainer = new WebMarkupContainer("teamsContainer");
    teamGroup.add(usersContainer.setOutputMarkupId(true));
    CheckGroupSelector checkGroupSelector = new CheckGroupSelector("teamGroupSelector", teamGroup);
    usersContainer.add(checkGroupSelector);
    usersContainer.add(teamsView);
    usersContainer.add(deleteSelectedButton = newDeleteSelectedButton(teamGroup));
    Label deleteSelectedLabel = new Label("deleteSelectedLabel",
            new StringResourceModel("td.teams.actions.batch.remove", this, Model.of(user)));
    deleteSelectedButton.add(deleteSelectedLabel);
    add(teamsListForm.setOutputMarkupId(true));

    teamAddForm = new Form<>("form.teams.add");
    teamAddForm.add(
            new Label("header.teams.add", new StringResourceModel("label.add.title", this, Model.of(user))));
    teamAddForm.add(teamName = getTeamNameAutoCompleteField());
    userRole = new DropDownChoice<>("add.userRole", Arrays.asList(Role.teamAssignableRoles()));
    userRole.setNullValid(false);
    userRole.setModel(Model.of(Role.User));
    teamAddForm.add(userRole);
    AjaxSubmitLink addTeam = new AjaxSubmitLink("add.team") {

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(feedbackPanel);
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            addUserToTeam(target, form);
        }
    };
    teamAddForm.add(addTeam.add(
            new Label("label.add.team", new StringResourceModel("button.add.save", this, Model.of(user)))));
    teamAddForm.add(new Label("label.add.userrole",
            new StringResourceModel("label.add.userrole", this, Model.of(user))));
    add(teamAddForm);
    add(deleteConfirmationModal = newDeleteConfirmationModal());
}

From source file:nl.knaw.dans.common.wicket.components.popup.confirm.ConfirmPanel.java

License:Apache License

protected void addElements(String id, String buttonName, String modalMessageText, String modalTitleText) {
    confirmModal = createConfirmModal(id, modalMessageText, modalTitleText);
    Form<?> form = new Form("confirmForm");
    add(form);//from   w  w  w  .j  ava 2 s .c  om

    AjaxSubmitLink confirmButton = new AjaxSubmitLink("confirmButton") {
        private static final long serialVersionUID = 8077215621843817611L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            confirmModal.show(target);
        }
    };
    confirmButton.add(new Label("confirmButtonName", buttonName));
    form.add(confirmButton);
    form.add(confirmModal);
}