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, IModel<?> model) 

Source Link

Document

With this constructor the SubmitLink must be inside a Form.

Usage

From source file:org.antbear.jee.wicket.DemoPanel.java

License:Apache License

public DemoPanel(String id) {
    super(id);/*from   w ww  .j  av  a  2  s.c  o m*/

    final Form<Void> form = new Form<Void>("form");
    form.setMarkupId("form_" + id);

    Label myid = new Label("myid", form.getMarkupId());
    final DemoStringListView listView = new DemoStringListView("listItem");

    SubmitLink addLink = new SubmitLink("addLink", form) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            System.out.println("onSubmit " + this.getParent().getMarkupId());
            listView.addItem("Another item, added @ " + new Date());

            // Now comes the interresting logic as of wicket 1.5
            // .. we want to anchor the page to our #ID. Send an event to our parent
            // with the ID to be anchored.
            AnchorPayload event = new AnchorPayload(form.getMarkupId());
            log.info("Sending event " + event);

            send(getPage(), Broadcast.BREADTH, event);
        }
    };

    add(form);
    form.add(myid);
    form.add(addLink);
    form.add(listView);
}

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

License:Open Source License

public ScriptNewPage() {
    super();//from w w w.  ja  v a2s.  c om

    Script script = new Script();

    form = new Form("form", new CompoundPropertyModel(script)) {
        @Override
        protected void onSubmit() {
            save();
            doReturn(ScriptPage.class);
        }
    };
    add(form);

    // Get List of script extensions from installed plugins
    final List<String> extensions = getExtensions();

    // Content
    String mode = extensions.size() > 0 ? getModeFromExtension(extensions.get(0)) : "py";
    final CodeMirrorEditor content = new CodeMirrorEditor("contents", mode,
            new PropertyModel(script, "contents"));
    content.setRequired(true);
    form.add(content);

    // Name
    TextField name = new TextField("name", new PropertyModel(script, "name"));
    name.setRequired(true);
    form.add(name);

    // Type
    DropDownChoice<String> typeDropDownChoice = new DropDownChoice<String>("type",
            new PropertyModel(script, "type"), new LoadableDetachableModel<List<String>>() {
                @Override
                protected List<String> load() {
                    List<String> values = Lists.newArrayList();
                    for (ScriptType type : ScriptType.values()) {
                        values.add(type.getLabel());
                    }
                    return values;
                }
            });
    typeDropDownChoice.setRequired(true);
    form.add(typeDropDownChoice);

    // Extension
    final DropDownChoice<String> extensionDropDownChoice = new DropDownChoice<String>("extension",
            new PropertyModel(script, "extension"), new LoadableDetachableModel<List<String>>() {
                @Override
                protected List<String> load() {
                    return extensions;
                }
            });
    extensionDropDownChoice.setRequired(true);
    extensionDropDownChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            int i = Integer.parseInt(extensionDropDownChoice.getValue());
            String ext = extensions.get(i);
            String mode = getModeFromExtension(ext);
            content.setMode(mode);
        }
    });
    form.add(extensionDropDownChoice);

    SubmitLink submitLink = new SubmitLink("submit", form);
    form.add(submitLink);
    form.setDefaultButton(submitLink);

    AjaxLink cancelLink = new AjaxLink("cancel") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            doReturn(ScriptPage.class);
        }
    };
    form.add(cancelLink);
}

From source file:org.geoserver.security.web.auth.AuthenticationPage.java

License:Open Source License

void initComponents() {

    // The request filter chain objects have to be cloned
    config = getSecurityManager().getSecurityConfig();
    List<RequestFilterChain> clones = new ArrayList<RequestFilterChain>();

    for (RequestFilterChain chain : config.getFilterChain().getRequestChains()) {
        try {/*ww w.  ja  v a2s .co  m*/
            clones.add((RequestFilterChain) chain.clone());
        } catch (CloneNotSupportedException e) {
            throw new RuntimeException(e);
        }
    }
    config.setFilterChain(new GeoServerSecurityFilterChain(clones));

    form = new Form("form", new CompoundPropertyModel<SecurityManagerConfig>(config));
    add(form);

    try {
        logoutFilterConfig = (LogoutFilterConfig) getSecurityManager()
                .loadFilterConfig(GeoServerSecurityFilterChain.FORM_LOGOUT_FILTER);
    } catch (IOException e1) {
        throw new RuntimeException(e1);
    }
    form.add(new TextField<String>("redirectURL",
            new PropertyModel<String>(this, "logoutFilterConfig.redirectURL")));

    try {
        sslFilterConfig = (SSLFilterConfig) getSecurityManager()
                .loadFilterConfig(GeoServerSecurityFilterChain.SSL_FILTER);
    } catch (IOException e1) {
        throw new RuntimeException(e1);
    }
    form.add(new TextField<Integer>("sslPort", new PropertyModel<Integer>(this, "sslFilterConfig.sslPort")));

    form.add(new AuthenticationFiltersPanel("authFilters"));
    form.add(new HelpLink("authFiltersHelp").setDialog(dialog));

    form.add(new AuthenticationProvidersPanel("authProviders"));
    form.add(new HelpLink("authProvidersHelp").setDialog(dialog));

    form.add(new SecurityFilterChainsPanel("authChains", config));
    form.add(new HelpLink("authChainsHelp").setDialog(dialog));

    form.add(authFilterChainPanel = new AuthFilterChainPanel("filterChain",
            new PropertyModel<GeoServerSecurityFilterChain>(form.getModel(), "filterChain")));
    form.add(new HelpLink("filterChainHelp").setDialog(dialog));

    form.add(new AuthenticationChainPanel("providerChain", form));
    form.add(new HelpLink("providerChainHelp").setDialog(dialog));

    form.add(new SubmitLink("save", form) {
        @Override
        public void onSubmit() {
            try {
                getSecurityManager().saveSecurityConfig((SecurityManagerConfig) getForm().getModelObject());
                getSecurityManager().saveFilter(logoutFilterConfig);
                getSecurityManager().saveFilter(sslFilterConfig);
                doReturn();
            } catch (Exception e) {
                LOGGER.log(Level.WARNING, "Error saving authentication config", e);
                error(e);
            }
        }
    });
    form.add(new Link("cancel") {
        @Override
        public void onClick() {
            doReturn();
        }
    });
}

From source file:org.geoserver.security.web.auth.SecurityFilterChainPage.java

License:Open Source License

protected void initialize(RequestFilterChain chain, SecurityManagerConfig secMgrConfig, boolean isNew,
        Form<? extends RequestFilterChainWrapper> theForm, RequestFilterChainWrapper wrapper) {

    this.chainWrapper = wrapper;
    this.isNew = isNew;
    this.secMgrConfig = secMgrConfig;

    form = theForm;//from w ww .  java  2 s.com
    add(form);

    //check for administrator, if not disable the panel and emit warning message
    boolean isAdmin = getSecurityManager().checkAuthenticationForAdminRole();
    setEnabled(isAdmin);

    form.add(new Label("message", isAdmin ? new Model() : new StringResourceModel("notAdmin", this, null)));
    if (!isAdmin) {
        form.get("message").add(new AttributeAppender("class", new Model("info-link"), " "));
    }

    setOutputMarkupId(true);

    form.add(new TextField<String>("name").setEnabled(isNew));
    form.add(new TextField<String>("patternString"));
    form.add(new CheckBox("disabled"));
    form.add(new CheckBox("allowSessionCreation"));
    form.add(new CheckBox("requireSSL"));
    form.add(new CheckBox("matchHTTPMethod").add(new OnChangeAjaxBehavior() {
        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            for (CheckBox cb : methodList) {
                cb.setEnabled(chainWrapper.isMatchHTTPMethod());
                target.addComponent(cb);
            }
        }
    }));

    List<String> filterNames = new ArrayList<String>();
    try {
        filterNames.addAll(getSecurityManager().listFilters(GeoServerRoleFilter.class));
        for (GeoServerRoleFilter filter : GeoServerExtensions.extensions(GeoServerRoleFilter.class)) {
            filterNames.add(filter.getName());
        }
        form.add(new DropDownChoice<String>("roleFilterName",
                new PropertyModel<String>(chainWrapper.getChain(), "roleFilterName"), filterNames)
                        .setNullValid(true));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    form.add(methodList[0] = new CheckBox("GET"));
    form.add(methodList[1] = new CheckBox("POST"));
    form.add(methodList[2] = new CheckBox("PUT"));
    form.add(methodList[3] = new CheckBox("DELETE"));
    form.add(methodList[4] = new CheckBox("OPTIONS"));
    form.add(methodList[5] = new CheckBox("HEAD"));
    form.add(methodList[6] = new CheckBox("TRACE"));

    for (CheckBox cb : methodList) {
        cb.setOutputMarkupPlaceholderTag(true);
        cb.setEnabled(chain.isMatchHTTPMethod());
    }

    form.add(dialog = new GeoServerDialog("dialog"));

    form.add(new HelpLink("chainConfigHelp").setDialog(dialog));
    form.add(new HelpLink("chainConfigMethodHelp").setDialog(dialog));

    form.add(new SubmitLink("close", form) {
        @Override
        public void onSubmit() {
            handleSubmit(getForm());
        }
    });
    form.add(new Link("cancel") {
        @Override
        public void onClick() {
            doReturn();
        }
    });

}

From source file:org.geoserver.security.web.passwd.MasterPasswordChangePage.java

License:Open Source License

public MasterPasswordChangePage() {
    MasterPasswordConfigModel configModel = new MasterPasswordConfigModel();

    Form form = new Form("form", new CompoundPropertyModel(configModel));
    add(form);/*  w  w w  . jav  a2  s .  co  m*/

    form.add(new Label("providerName"));

    MasterPasswordConfig config = configModel.getObject();
    MasterPasswordProviderConfig providerConfig = null;
    try {
        providerConfig = getSecurityManager().loadMasterPassswordProviderConfig(config.getProviderName());
    } catch (IOException e) {
        throw new WicketRuntimeException(e);
    }

    //TODO: this will cause the master password to stored as a string in plain text, without the 
    // ability to scramble it... not much we can do because wicket works with strings... 
    // potentially look into a way to store as char or byte array so string never gets 
    // created
    form.add(new PasswordTextField("currentPassword", new Model()));
    form.add(new PasswordTextField("newPassword", new Model()).setEnabled(!providerConfig.isReadOnly()));
    form.add(new PasswordTextField("newPasswordConfirm", new Model()));

    form.add(new SubmitLink("save", form) {
        @Override
        public void onSubmit() {
            Form f = getForm();
            // @Justin, we cannot use getDefaultModelObjectAsString() because of special chars.
            // example: The password "mcrmcr&1" is converted to "mcrmcr&amp;1".
            String currPasswd =
                    //f.get("currentPassword").getDefaultModelObjectAsString();
                    (String) f.get("currentPassword").getDefaultModelObject();
            String newPasswd =
                    //f.get("newPassword").getDefaultModelObjectAsString();
                    (String) f.get("newPassword").getDefaultModelObject();
            String newPasswdConfirm =
                    // f.get("newPasswordConfirm").getDefaultModelObjectAsString();
                    (String) f.get("newPasswordConfirm").getDefaultModelObject();

            MasterPasswordConfig mpConfig = (MasterPasswordConfig) getForm().getModelObject();
            try {
                getSecurityManager().saveMasterPasswordConfig(mpConfig, currPasswd.toCharArray(),
                        newPasswd != null ? newPasswd.toCharArray() : null, newPasswdConfirm.toCharArray());
                doReturn();
            } catch (Exception e) {
                error(e);
            }
        }
    });
    form.add(new AjaxLink("cancel") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            doReturn();
        }
    });
}

From source file:org.geoserver.security.web.passwd.MasterPasswordInfoPage.java

License:Open Source License

MasterPasswordInfoPage() {

    Form form = new Form("form", new CompoundPropertyModel(this));
    add(form);/* www . j  a v a  2  s  . c  om*/
    form.add(new TextField<String>("fileName"));

    form.add(new SubmitLink("save", form) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            if (StringUtils.hasLength(fileName) == false) {
                error(new StringResourceModel("fileNameEmpty", this, null).getString());
                return;
            }
            try {
                if (dumpMasterPassword()) {
                    info(new StringResourceModel("dumpInfo", this, null,
                            new Object[] { new File(fileName).getCanonicalFile() }).getString());
                }

                else
                    error(new StringResourceModel("unauthorized", this, null).getString());
            } catch (Exception e) {
                error(e);
            }
        }
    });
    form.add(new AjaxLink("back") {
        private static final long serialVersionUID = 1L;

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

From source file:org.geoserver.security.web.passwd.PasswordPage.java

License:Open Source License

public PasswordPage() {
    Form form = new Form("form", new CompoundPropertyModel(new MasterPasswordConfigModel()));
    add(form);// w  w  w  . j  a  va2 s.c  om

    form.add(new MasterPasswordProviderChoice("providerName"));
    form.add(new Link("changePassword") {
        @Override
        public void onClick() {
            MasterPasswordChangePage page = new MasterPasswordChangePage();
            page.setReturnPage(getPage());
            setResponsePage(page);
        }
    });

    form.add(new Link("masterPasswordInfo") {
        @Override
        public void onClick() {
            MasterPasswordInfoPage page = new MasterPasswordInfoPage();
            page.setReturnPage(getPage());
            setResponsePage(page);
        }
    });

    form.add(new MasterPasswordProvidersPanel("masterPasswordProviders"));
    form.add(new HelpLink("masterPasswordProvidersHelp").setDialog(dialog));
    form.add(new PasswordPoliciesPanel("passwordPolicies"));
    form.add(new HelpLink("passwordPoliciesHelp").setDialog(dialog));

    form.add(new SubmitLink("save", form) {
        @Override
        public void onSubmit() {
            MasterPasswordConfig config = (MasterPasswordConfig) getForm().getModelObject();
            try {
                getSecurityManager().saveMasterPasswordConfig(config);
                doReturn();
            } catch (Exception e) {
                error(e);
            }
        }
    });
    form.add(new AjaxLink("cancel") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            doReturn();
        }
    });
}

From source file:org.geoserver.security.web.SecurityNamedServiceNewPage.java

License:Open Source License

public SecurityNamedServiceNewPage(Class<S> serviceClass) {
    //keys that allow us to dynamically set the page title and description based on 
    // type of service class / extension point
    add(new Label("title1", createTitleModel(serviceClass).getString()));
    add(new Label("title2", createTitleModel(serviceClass).getString()));

    List<SecurityNamedServicePanelInfo> panelInfos = lookupPanelInfos(serviceClass);

    AjaxLinkGroup<SecurityNamedServicePanelInfo> serviceLinks = new AjaxLinkGroup<SecurityNamedServicePanelInfo>(
            "services", panelInfos) {

        @Override//w w  w . j ava2 s  .  com
        protected void populateItem(ListItem<SecurityNamedServicePanelInfo> item) {
            SecurityNamedServicePanelInfo panelInfo = item.getModelObject();
            item.add(newLink("link", item.getModel()).add(new Label("title", createShortTitleModel(panelInfo)))
                    .setEnabled(item.getIndex() > 0));
            item.add(new Label("description", createDescriptionModel(panelInfo)));
        }

        @Override
        protected void onClick(AjaxLink<SecurityNamedServicePanelInfo> link, AjaxRequestTarget target) {
            updatePanel(link.getModelObject(), target);
        }
    };

    add(new WebMarkupContainer("servicesContainer").add(serviceLinks).setOutputMarkupId(true));

    add(form = new Form<T>("form"));

    //add a container for the actual panel, since we will dynamically update it
    form.add(panelContainer = new WebMarkupContainer("panel"));
    panelContainer.setOutputMarkupId(true);

    form.add(new SubmitLink("save", form) {
        @Override
        public void onSubmit() {
            handleSubmit(getForm());
        }
    });
    form.add(new Link("cancel") {
        @Override
        public void onClick() {
            doReturn();
        }
    });

    updatePanel(panelInfos.get(0), null);
}

From source file:org.geoserver.security.web.SecuritySettingsPage.java

License:Open Source License

void initComponents() {
    Form<SecurityManagerConfig> form = new Form("form",
            new CompoundPropertyModel<SecurityManagerConfig>(new SecurityManagerConfigModel()));
    add(form);//from   www . j  a  v  a2  s  .c o  m

    form.add(new RoleServiceChoice("roleServiceName"));

    form.add(new EncryptionPanel("encryption"));
    form.add(new HelpLink("encryptionHelp").setDialog(dialog));
    form.add(new SubmitLink("save", form) {
        @Override
        public void onSubmit() {
            SecurityManagerConfig config = (SecurityManagerConfig) getForm().getModelObject();
            try {
                getSecurityManager().saveSecurityConfig(config);
                doReturn();
            } catch (Exception e) {
                error(e);
            }
        }
    });
    form.add(new AjaxLink("cancel") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            doReturn();
        }
    });
}

From source file:org.geoserver.web.data.workspace.WorkspaceNewPage.java

License:Open Source License

public WorkspaceNewPage() {
    WorkspaceInfo ws = getCatalog().getFactory().createWorkspace();

    form = new Form("form", new CompoundPropertyModel(ws)) {
        @Override/*from   www  . ja va2 s. c  om*/
        protected void onSubmit() {
            Catalog catalog = getCatalog();

            WorkspaceInfo ws = (WorkspaceInfo) form.getModelObject();

            NamespaceInfo ns = catalog.getFactory().createNamespace();
            ns.setPrefix(ws.getName());
            ns.setURI(nsUriTextField.getDefaultModelObjectAsString());

            catalog.add(ws);
            catalog.add(ns);
            if (defaultWs)
                catalog.setDefaultWorkspace(ws);

            //TODO: set the response page to be the edit 
            doReturn(WorkspacePage.class);
        }
    };
    add(form);

    TextField<String> nameTextField = new TextField<String>("name");
    nameTextField.setRequired(true);
    nameTextField.add(new XMLNameValidator());
    nameTextField.add(new StringValidator() {

        @Override
        protected void onValidate(IValidatable<String> validatable) {
            if (CatalogImpl.DEFAULT.equals(validatable.getValue())) {
                error(validatable, "defaultWsError");
            }
        }
    });
    form.add(nameTextField.setRequired(true));

    nsUriTextField = new TextField("uri", new Model());
    // maybe a bit too restrictive, but better than not validation at all
    nsUriTextField.setRequired(true);
    nsUriTextField.add(new URIValidator());
    form.add(nsUriTextField);

    CheckBox defaultChk = new CheckBox("default", new PropertyModel(this, "defaultWs"));
    form.add(defaultChk);

    SubmitLink submitLink = new SubmitLink("submit", form);
    form.add(submitLink);
    form.setDefaultButton(submitLink);

    AjaxLink cancelLink = new AjaxLink("cancel") {
        @Override
        public void onClick(AjaxRequestTarget target) {
            doReturn(WorkspacePage.class);
        }
    };
    form.add(cancelLink);

}