Example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink

List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink

Introduction

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

Prototype

public SubmitLink(String id) 

Source Link

Document

With this constructor the SubmitLink must be inside a Form.

Usage

From source file:org.geoserver.params.extractor.web.ParamsExtractorRulePage.java

License:Open Source License

public ParamsExtractorRulePage(Optional<RuleModel> optionalRuleModel) {
    CompoundPropertyModel<RuleModel> simpleRuleModel = new CompoundPropertyModel<>(
            optionalRuleModel.orElse(new RuleModel()));
    CompoundPropertyModel<RuleModel> complexRuleModel = new CompoundPropertyModel<>(
            optionalRuleModel.orElse(new RuleModel()));
    CompoundPropertyModel<RuleModel> echoParameterModel = new CompoundPropertyModel<>(
            optionalRuleModel.orElse(new RuleModel(true)));
    Form<RuleModel> form = new Form<>("form");
    add(form);/*from w w  w  .j  a v  a  2s . c  o m*/
    List<WrappedTab> tabs = new ArrayList<>();
    if (!optionalRuleModel.isPresent() || optionalRuleModel.get().isEchoOnly()) {
        tabs.add(new WrappedTab("Echo Parameter", echoParameterModel) {
            public Panel getPanel(String panelId) {
                return new EchoParameterPanel(panelId, echoParameterModel);
            }
        });
    }
    if (!optionalRuleModel.isPresent() || optionalRuleModel.get().getPosition() != null) {
        tabs.add(new WrappedTab("Basic Rule", simpleRuleModel) {
            public Panel getPanel(String panelId) {
                return new SimpleRulePanel(panelId, simpleRuleModel);
            }
        });
    }
    if (!optionalRuleModel.isPresent() || optionalRuleModel.get().getMatch() != null) {
        tabs.add(new WrappedTab("Advanced Rule", complexRuleModel) {
            public Panel getPanel(String panelId) {
                return new ComplexRulePanel(panelId, complexRuleModel);
            }
        });
    }
    AjaxTabbedPanel tabbedPanel = new AjaxTabbedPanel<>("tabs", tabs);
    form.add(tabbedPanel);
    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            try {
                WrappedTab selectedTab = tabs.get(tabbedPanel.getSelectedTab());
                RuleModel ruleModel = selectedTab.getModel().getObject();
                RulesModel.saveOrUpdate(ruleModel);
                doReturn(ParamsExtractorConfigPage.class);
            } catch (Exception exception) {
                error(exception);
            }
        }
    });
    form.add(new BookmarkablePageLink("cancel", ParamsExtractorConfigPage.class));
}

From source file:org.geoserver.script.web.ScriptEditPage.java

License:Open Source License

private void init(Script script) {
    scriptModel = new ScriptDetachableModel(script);

    Form form = new Form("form", new CompoundPropertyModel(scriptModel)) {
        protected void onSubmit() {
            try {
                saveScript();//from  www .j ava2s.  c  om
                doReturn(ScriptPage.class);
            } catch (RuntimeException e) {
                LOGGER.log(Level.WARNING, "Failed to save script", e);
                error(e.getMessage() == null
                        ? "Failed to save script, no error message available, see logs for details"
                        : e.getMessage());
            }
        }
    };
    add(form);

    // Name
    Label nameLabel = new Label("nameLabel", new PropertyModel(scriptModel, "name"));
    form.add(nameLabel);
    HiddenField name = new HiddenField("name", new PropertyModel(scriptModel, "name"));
    form.add(name);

    // Type
    Label typeLabel = new Label("typeLabel", new PropertyModel(scriptModel, "type"));
    form.add(typeLabel);
    HiddenField type = new HiddenField("type", new PropertyModel(scriptModel, "type"));
    form.add(type);

    // Extension
    Label extensionLabel = new Label("extensionLabel", new PropertyModel(scriptModel, "extension"));
    form.add(extensionLabel);
    HiddenField extension = new HiddenField("extension", new PropertyModel(scriptModel, "extension"));
    form.add(extension);

    // Content
    ScriptManager scriptManager = (ScriptManager) GeoServerExtensions.bean("scriptMgr");
    String mode = scriptManager.lookupPluginEditorMode(script.getFile());
    CodeMirrorEditor content = new CodeMirrorEditor("contents", mode,
            new PropertyModel(scriptModel, "contents"));
    content.setRequired(true);
    form.add(content);

    // Dialog
    add(dialog = new GeoServerDialog("dialog"));

    // Submit and Cancel
    SubmitLink submit = new SubmitLink("submit");
    form.add(submit);
    form.setDefaultButton(submit);
    form.add(new BookmarkablePageLink("cancel", ScriptPage.class));
}

From source file:org.geoserver.security.web.data.AbstractDataAccessRulePage.java

License:Open Source License

public AbstractDataAccessRulePage(final DataAccessRule rule) {
    // build the form
    Form form = new Form<DataAccessRule>("form", new CompoundPropertyModel(rule));
    add(form);//from w ww. j  av  a  2s . com

    form.add(new EmptyRolesValidator());
    form.add(workspaceChoice = new DropDownChoice<String>("workspace", getWorkspaceNames()));
    workspaceChoice.setRequired(true);
    workspaceChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            layerChoice.setChoices(
                    new Model<ArrayList<String>>(getLayerNames(workspaceChoice.getConvertedInput())));
            layerChoice.modelChanged();
            target.addComponent(layerChoice);
        }
    });

    form.add(layerChoice = new DropDownChoice<String>("layer", getLayerNames(rule.getWorkspace())));
    layerChoice.setRequired(true);
    layerChoice.setOutputMarkupId(true);

    form.add(accessModeChoice = new DropDownChoice<AccessMode>("accessMode", MODES, new AccessModeRenderer()));
    accessModeChoice.setRequired(true);

    form.add(rolesFormComponent = new RuleRolesFormComponent("roles", new PropertyModel(rule, "roles"))
            .setHasAnyRole(rule.getRoles().contains(GeoServerRole.ANY_ROLE.getAuthority())));

    // build the submit/cancel
    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            DataAccessRule rule = (DataAccessRule) getForm().getModelObject();
            if (rolesFormComponent.isHasAnyRole()) {
                rule.getRoles().clear();
                rule.getRoles().add(GeoServerRole.ANY_ROLE.getAuthority());
            }
            onFormSubmit(rule);
        }
    });
    form.add(new BookmarkablePageLink<DataAccessRule>("cancel", DataSecurityPage.class));
}

From source file:org.geoserver.security.web.data.DataAccessRulePage.java

License:Open Source License

public DataAccessRulePage() {
    DataAccessRuleProvider provider = new DataAccessRuleProvider();
    add(rules = new GeoServerTablePanel<DataAccessRule>("table", provider, true) {

        @Override//ww  w  .  j  av  a 2 s .  c  o  m
        protected Component getComponentForProperty(String id, IModel itemModel,
                Property<DataAccessRule> property) {
            if (property == DataAccessRuleProvider.RULEKEY) {
                return editRuleLink(id, itemModel, property);
            }
            if (property == DataAccessRuleProvider.ROLES) {
                return new Label(id, property.getModel(itemModel));
            }
            throw new RuntimeException("Uknown property " + property);
        }

        @Override
        protected void onSelectionUpdate(AjaxRequestTarget target) {
            removal.setEnabled(rules.getSelection().size() > 0);
            target.addComponent(removal);
        }
    });

    rules.setOutputMarkupId(true);

    setHeaderPanel(headerPanel());

    Form form = new Form("catalogModeForm",
            new CompoundPropertyModel(new CatalogModeModel(DataAccessRuleDAO.get().getMode())));
    add(form);
    form.add(new AjaxLink("catalogModeHelp") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            dialog.showInfo(target, new StringResourceModel("catalogModeHelp.title", getPage(), null),
                    new StringResourceModel("catalogModeHelp.message", getPage(), null),
                    new StringResourceModel("catalogModeHelp.hide", getPage(), null),
                    new StringResourceModel("catalogModeHelp.mixed", getPage(), null),
                    new StringResourceModel("catalogModeHelp.challenge", getPage(), null));
        }
    });
    catalogModeChoice = new RadioChoice("catalogMode", CATALOG_MODES, new CatalogModeRenderer());
    catalogModeChoice.setSuffix(" ");
    form.add(catalogModeChoice);

    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            try {
                DataAccessRuleDAO dao = DataAccessRuleDAO.get();
                CatalogMode newMode = dao.getByAlias(catalogModeChoice.getValue());
                dao.setCatalogMode(newMode);
                dao.storeRules();
                doReturn();
            } catch (Exception e) {
                LOGGER.log(Level.SEVERE, "Error occurred while saving user", e);
                error(new ParamResourceModel("saveError", getPage(), e.getMessage()));
            }
        }
    });
    form.add(new BookmarkablePageLink("cancel", GeoServerHomePage.class));
}

From source file:org.geoserver.security.web.data.DataSecurityPage.java

License:Open Source License

public DataSecurityPage() {
    DataAccessRuleProvider provider = new DataAccessRuleProvider();
    add(rules = new GeoServerTablePanel<DataAccessRule>("table", provider, true) {

        @Override/*from ww w.j  a v  a  2s  . c o m*/
        protected Component getComponentForProperty(String id, IModel itemModel,
                Property<DataAccessRule> property) {
            if (property == DataAccessRuleProvider.RULEKEY) {
                return editRuleLink(id, itemModel, property);
            }
            if (property == DataAccessRuleProvider.ROLES) {
                return new Label(id, property.getModel(itemModel));
            }
            throw new RuntimeException("Uknown property " + property);
        }

        @Override
        protected void onSelectionUpdate(AjaxRequestTarget target) {
            removal.setEnabled(rules.getSelection().size() > 0);
            target.addComponent(removal);
        }
    });

    rules.setOutputMarkupId(true);

    setHeaderPanel(headerPanel());

    Form form = new Form("catalogModeForm",
            new CompoundPropertyModel(new CatalogModeModel(DataAccessRuleDAO.get().getMode())));
    add(form);
    form.add(new HelpLink("catalogModeHelp").setDialog(dialog));

    catalogModeChoice = new RadioChoice("catalogMode", CATALOG_MODES, new CatalogModeRenderer());
    catalogModeChoice.setSuffix(" ");
    form.add(catalogModeChoice);

    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            try {
                DataAccessRuleDAO dao = DataAccessRuleDAO.get();
                CatalogMode newMode = dao.getByAlias(catalogModeChoice.getValue());
                dao.setCatalogMode(newMode);
                dao.storeRules();
                doReturn();
            } catch (Exception e) {
                LOGGER.log(Level.SEVERE, "Error occurred while saving user", e);
                error(new ParamResourceModel("saveError", getPage(), e.getMessage()));
            }
        }
    });
    form.add(new BookmarkablePageLink("cancel", GeoServerHomePage.class));
}

From source file:org.geoserver.security.web.group.AbstractGroupPage.java

License:Open Source License

protected AbstractGroupPage(String userGroupServiceName, final GeoServerUserGroup group) {
    this.userGroupServiceName = userGroupServiceName;

    boolean hasUserGroupStore = hasUserGroupStore(userGroupServiceName);
    boolean hasRoleStore = hasRoleStore(getSecurityManager().getActiveRoleService().getName());

    Form form = new Form("form", new CompoundPropertyModel(group));
    add(form);/*from w  w  w. j  a va2  s. c  om*/

    form.add(new TextField<String>("groupname").setEnabled(hasUserGroupStore));
    form.add(new CheckBox("enabled").setEnabled(hasUserGroupStore));

    List<GeoServerRole> roles;
    try {
        roles = new ArrayList(
                getSecurityManager().getActiveRoleService().getRolesForGroup(group.getGroupname()));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    form.add(rolePalette = new RolePaletteFormComponent("roles", new Model((Serializable) roles)));
    rolePalette.setEnabled(hasRoleStore);

    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            try {
                onFormSubmit(group);
                setReturnPageDirtyAndReturn(true);
            } catch (IOException e) {
                if (e.getCause() instanceof AbstractSecurityException) {
                    error(e.getCause());
                } else {
                    error(new ParamResourceModel("saveError", getPage(), e.getMessage()).getObject());
                }
                LOGGER.log(Level.SEVERE, "Error occurred while saving group", e);
            }

        }
    }.setEnabled(hasUserGroupStore || hasRoleStore(getSecurityManager().getActiveRoleService().getName())));

    // build the submit/cancel
    form.add(getCancelLink());
}

From source file:org.geoserver.security.web.role.AbstractRolePage.java

License:Open Source License

protected AbstractRolePage(String roleService, GeoServerRole role) {
    this.roleServiceName = roleService;
    boolean hasRoleStore = hasRoleStore(roleServiceName);

    if (role == null)
        role = new GeoServerRole("");

    Form form = new Form("form", new CompoundPropertyModel(role));
    add(form);/*from   w w  w.  j  ava2  s  .  com*/

    StringResourceModel descriptionModel;
    if (role.getUserName() != null) {
        descriptionModel = new StringResourceModel("personalizedRole", getPage(), null,
                new Object[] { role.getUserName() });
    } else {
        descriptionModel = new StringResourceModel("anonymousRole", getPage(), null);
    }
    form.add(new Label("description", descriptionModel));

    form.add(new TextField("name", new Model(role.getAuthority())).setRequired(true).setEnabled(hasRoleStore));
    form.add(new DropDownChoice("parent", new ParentRoleModel(role), new ParentRolesModel(role))
            .setNullValid(true).setEnabled(hasRoleStore));
    form.add(new PropertyEditorFormComponent("properties").setEnabled(hasRoleStore));

    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            try {
                onFormSubmit((GeoServerRole) getForm().getModelObject());
                setReturnPageDirtyAndReturn(true);
            } catch (IOException e) {
                if (e.getCause() instanceof AbstractSecurityException) {
                    error(e.getCause());
                } else {
                    error(new ParamResourceModel("saveError", getPage(), e.getMessage()).getObject());
                }
                LOGGER.log(Level.SEVERE, "Error occurred while saving role", e);
            }
        }
    }.setVisible(hasRoleStore));

    form.add(getCancelLink());
}

From source file:org.geoserver.security.web.role.RolePaletteFormComponent.java

License:Open Source License

public RolePaletteFormComponent(String id, IModel<List<GeoServerRole>> model,
        IModel<Collection<GeoServerRole>> choicesModel) {
    super(id, model, choicesModel, new ChoiceRenderer<GeoServerRole>("authority", "authority"));

    //        rolePalette = new Palette<GeoServerRole>(
    //                "roles", , choicesModel,
    //                , 10, false) {
    //            // trick to force the palette to have at least one selected elements
    //            // tried with a nicer validator but it's not used at all, the required thing
    //            // instead is working (don't know why...)
    //            protected Recorder<GeoServerRole> newRecorderComponent() {
    //                Recorder<GeoServerRole> rec = super.newRecorderComponent();
    //                //add any behaviours that need to be added
    //                rec.add(toAdd.toArray(new IBehavior[toAdd.size()]));
    //                toAdd.clear();
    //                /*if (isRequired)
    //                    rec.setRequired(true);
    //                if (behavior!=null) 
    //                    rec.add(behavior);*/
    //                return rec;
    //            }
    //        };/* www  . j  a  v a  2  s.co m*/

    GeoServerRoleService roleService = getSecurityManager().getActiveRoleService();
    final String roleServiceName = roleService.getName();

    if (choicesModel instanceof RuleRolesModel)
        add(new Label("roles", new StringResourceModel("roles", this, null)));
    else
        add(new Label("roles", new StringResourceModel("rolesFromActiveService", this, null,
                new Object[] { roleServiceName })));

    add(new SubmitLink("addRole") {
        @Override
        public void onSubmit() {
            setResponsePage(new NewRolePage(roleServiceName).setReturnPage(this.getPage()));
        }
    }.setVisible(roleService.canCreateStore()));
}

From source file:org.geoserver.security.web.service.AbstractServiceAccessRulePage.java

License:Open Source License

public AbstractServiceAccessRulePage(final ServiceAccessRule rule) {

    // build the form
    Form form = new Form<Serializable>("form", new CompoundPropertyModel(rule));
    add(form);/* w  w w.  ja  v  a  2 s.c  o m*/
    form.add(new EmptyRolesValidator());

    form.add(serviceChoice = new DropDownChoice<String>("service", getServiceNames()));
    serviceChoice.add(new OnChangeAjaxBehavior() {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            methodChoice.updateModel();
            target.addComponent(methodChoice);
        }
    });
    serviceChoice.setRequired(true);

    form.add(methodChoice = new DropDownChoice<String>("method", new MethodsModel(rule)));

    //we add on change behavior to ensure the underlying model is updated but don't actually
    // do anything on change... this allows us to keep state when someone adds a new role, 
    // leaving the page, TODO: find a better way to do this
    //methodChoice.add(new OnChangeAjaxBehavior() {
    //    @Override
    //    protected void onUpdate(AjaxRequestTarget target) {}
    //});
    methodChoice.setOutputMarkupId(true);
    methodChoice.setRequired(true);

    form.add(rolesFormComponent = new RuleRolesFormComponent("roles",
            new PropertyModel<Collection<String>>(rule, "roles")));
    //new Model((Serializable)new ArrayList(rule.getRoles()))));

    // build the submit/cancel
    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            onFormSubmit((ServiceAccessRule) getForm().getModelObject());
        }
    });
    form.add(new BookmarkablePageLink("cancel", ServiceAccessRulePage.class));
}

From source file:org.geoserver.security.web.user.AbstractUserPage.java

License:Open Source License

protected AbstractUserPage(String ugServiceName, final GeoServerUser user) {
    this.ugServiceName = ugServiceName;

    GeoServerUserGroupService ugService = getUserGroupService(ugServiceName);
    boolean emptyPasswd = getSecurityManager()
            .loadPasswordEncoder(ugService.getPasswordEncoderName()) instanceof GeoServerEmptyPasswordEncoder;
    boolean hasUserGroupStore = ugService.canCreateStore();
    boolean hasRoleStore = hasRoleStore(getSecurityManager().getActiveRoleService().getName());

    // build the form
    Form form = new Form<Serializable>("form", new CompoundPropertyModel(user));
    add(form);/* ww w  .  jav a 2 s  . c  om*/

    form.add(new TextField("username").setEnabled(hasUserGroupStore));
    form.add(new CheckBox("enabled").setEnabled(hasUserGroupStore));

    PasswordTextField pw1 = new PasswordTextField("password") {
        @Override
        public boolean isRequired() {
            return isFinalSubmit(this);
        }
    };
    form.add(pw1);
    pw1.setResetPassword(false);
    pw1.setEnabled(hasUserGroupStore && !emptyPasswd);

    PasswordTextField pw2 = new PasswordTextField("confirmPassword", new Model(user.getPassword())) {
        @Override
        public boolean isRequired() {
            return isFinalSubmit(this);
        }
    };
    form.add(pw2);
    pw2.setResetPassword(false);
    pw2.setEnabled(hasUserGroupStore && !emptyPasswd);

    form.add(new PropertyEditorFormComponent("properties").setEnabled(hasUserGroupStore));

    form.add(userGroupPalette = new UserGroupPaletteFormComponent("groups", ugServiceName, user));
    userGroupPalette.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            updateCalculatedRoles(target);
        }
    });
    userGroupPalette.setEnabled(hasUserGroupStore);

    List<GeoServerRole> roles;
    try {
        roles = new ArrayList(getSecurityManager().getActiveRoleService().getRolesForUser(user.getUsername()));
    } catch (IOException e) {
        throw new WicketRuntimeException(e);
    }

    form.add(rolePalette = new RolePaletteFormComponent("roles", new ListModel(roles)));
    rolePalette.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            updateCalculatedRoles(target);
            updateGroupAdminList(target);
        }
    });
    rolePalette.setOutputMarkupId(true);
    rolePalette.setEnabled(hasRoleStore);

    boolean isGroupAdmin = roles.contains(GeoServerRole.GROUP_ADMIN_ROLE);
    List<GeoServerUserGroup> adminGroups = new ArrayList();
    if (isGroupAdmin) {
        for (String groupName : GroupAdminProperty.get(user.getProperties())) {
            try {
                adminGroups.add(ugService.getGroupByGroupname(groupName));
            } catch (IOException e) {
                throw new WicketRuntimeException(e);
            }
        }
    }

    form.add(adminGroupChoice = new UserGroupListMultipleChoice("adminGroups", new ListModel(adminGroups),
            new GroupsModel(ugServiceName)));
    adminGroupChoice.setOutputMarkupId(true);
    adminGroupChoice.setEnabled(hasUserGroupStore && isGroupAdmin);

    WebMarkupContainer container = new WebMarkupContainer("calculatedRolesContainer");
    form.add(container);
    container.setOutputMarkupId(true);

    container.add(
            calculatedRoles = new ListView<GeoServerRole>("calculatedRoles", new CalculatedRoleModel(user)) {
                @Override
                @SuppressWarnings("unchecked")
                protected void populateItem(ListItem<GeoServerRole> item) {
                    IModel<GeoServerRole> model = item.getModel();
                    item.add(new SimpleAjaxLink("role", model, RoleListProvider.ROLENAME.getModel(model)) {
                        @Override
                        protected void onClick(AjaxRequestTarget target) {
                            setResponsePage(
                                    new EditRolePage(getSecurityManager().getActiveRoleService().getName(),
                                            (GeoServerRole) getDefaultModelObject())
                                                    .setReturnPage(this.getPage()));
                        }
                    });
                }
            });
    calculatedRoles.setOutputMarkupId(true);

    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            try {
                //update the user property listing the group names the user is admin for
                if (adminGroupChoice.isEnabled()) {
                    Collection<GeoServerUserGroup> groups = adminGroupChoice.getModelObject();
                    String[] groupNames = new String[groups.size()];
                    int i = 0;
                    for (GeoServerUserGroup group : groups) {
                        groupNames[i++] = group.getGroupname();
                    }

                    GroupAdminProperty.set(user.getProperties(), groupNames);
                } else {
                    GroupAdminProperty.del(user.getProperties());
                }

                onFormSubmit(user);
                setReturnPageDirtyAndReturn(true);
            } catch (Exception e) {
                handleSubmitError(e);
            }
        }
    }.setEnabled(hasUserGroupStore || hasRoleStore(getSecurityManager().getActiveRoleService().getName())));
    form.add(getCancelLink());

    // add the validators
    form.add(new EqualInputValidator(pw1, pw2) {
        private static final long serialVersionUID = 1L;

        @Override
        public void validate(Form<?> form) {
            if (isFinalSubmit(form)) {
                super.validate(form);
            }
        }

        @Override
        protected String resourceKey() {
            return "AbstractUserPage.passwordMismatch";
        }
    });
    form.add(new GroupAdminValidator());
}