List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink
public SubmitLink(String id)
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()); }