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.security.web.user.UserGroupPaletteFormComponent.java

License:Open Source License

public UserGroupPaletteFormComponent(String id, IModel<List<GeoServerUserGroup>> model,
        final String ugServiceName, GeoServerUser user) {
    super(id, model, (IModel) new GroupsModel(ugServiceName),
            new ChoiceRenderer<GeoServerUserGroup>("groupname", "groupname"));

    add(new SubmitLink("addGroup") {
        @Override//w w w .j  a  va  2s . c om
        public void onSubmit() {
            setResponsePage(new NewGroupPage(ugServiceName).setReturnPage(this.getPage()));
        }
    });
}

From source file:org.geoserver.web.admin.LogPage.java

License:Open Source License

public LogPage(PageParameters params) {
    Form form = new Form("form");
    add(form);/* w  ww  . j av a2s .c  o m*/

    /**
     * take geoserver log file location from Config as absolute path and only use if valid, 
     * otherwise fallback to (geoserver-root)/logs/geoserver.log as default.
     */
    String location = GeoServerExtensions.getProperty(LoggingUtils.GEOSERVER_LOG_LOCATION);
    if (location == null) {
        location = getGeoServerApplication().getGeoServer().getLogging().getLocation();
    }
    if (location == null) {
        try {
            GeoServerResourceLoader loader = getGeoServerApplication().getResourceLoader();
            location = new File(loader.findOrCreateDirectory("logs"), "geoserver.log").getAbsolutePath();
        } catch (IOException e) {
            throw new RuntimeException("Unexpeced error, could not find the log file location", e);
        }
    }
    logFile = new File(location);

    if (!logFile.isAbsolute()) {
        // locate the geoserver.log file
        GeoServerDataDirectory dd = getGeoServerApplication().getBeanOfType(GeoServerDataDirectory.class);
        logFile = new File(dd.root(), logFile.getPath());
    }

    if (!logFile.exists()) {
        error("Could not find the GeoServer log file: " + logFile.getAbsolutePath());
    }

    try {
        if (params.getKey(LINES) != null) {
            if (params.getInt(LINES) > 0) {
                lines = params.getInt(LINES);
            }
        }
    } catch (Exception e) {
        LOGGER.log(Level.WARNING, "Error parsing the lines parameter: ", params.getKey(LINES));
    }

    form.add(new SubmitLink("refresh") {
        @Override
        public void onSubmit() {
            setResponsePage(LogPage.class, new PageParameters(LINES + "=" + String.valueOf(lines)));
        }
    });

    TextField lines = new TextField("lines", new PropertyModel(this, "lines"));
    lines.add(new MinimumValidator(1));
    form.add(lines);

    TextArea logs = new TextArea("logs", new GSLogsModel());
    logs.setOutputMarkupId(true);
    logs.setMarkupId("logs");
    add(logs);

    add(new Link("download") {

        @Override
        public void onClick() {
            RequestCycle.get().setRequestTarget(new IRequestTarget() {

                public void detach(RequestCycle requestCycle) {
                }

                public void respond(RequestCycle requestCycle) {

                    InputStream is = null;
                    try {
                        is = new FileInputStream(logFile);

                        WebResponse r = (WebResponse) requestCycle.getResponse();
                        r.setAttachmentHeader("geoserver.log");
                        r.setContentType("text/plain");
                        Streams.copy(is, r.getOutputStream());
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    } finally {
                        if (is != null) {
                            try {
                                is.close();
                            } catch (IOException e) {
                            }
                        }
                    }
                }

            });

        }
    });

}

From source file:org.geoserver.web.data.layer.AttributeEditPage.java

License:Open Source License

AttributeEditPage(final AttributeDescription attribute, final NewFeatureTypePage previousPage,
        final boolean newAttribute) {
    this.previousPage = previousPage;
    this.newAttribute = newAttribute;
    this.attribute = attribute;
    this.size = String.valueOf(attribute.getSize());

    final Form form = new Form("form", new CompoundPropertyModel(attribute));
    form.setOutputMarkupId(true);//  w  w  w  .j a  v  a 2  s . c  o m
    add(form);

    form.add(nameField = new TextField("name"));
    DropDownChoice binding = new DropDownChoice("binding", AttributeDescription.BINDINGS,
            new BindingChoiceRenderer());
    binding.add(new AjaxFormSubmitBehavior("onchange") {

        @Override
        protected void onError(AjaxRequestTarget target) {
            updateVisibility(target);
        }

        private void updateVisibility(AjaxRequestTarget target) {
            sizeContainer.setVisible(String.class.equals(attribute.getBinding()));
            crsContainer.setVisible(
                    attribute.getBinding() != null && Geometry.class.isAssignableFrom(attribute.getBinding()));

            target.addComponent(getFeedbackPanel());
            target.addComponent(form);
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            updateVisibility(target);
        }
    });
    form.add(binding);
    form.add(new CheckBox("nullable"));

    sizeContainer = new WebMarkupContainer("sizeContainer");
    sizeContainer.setOutputMarkupId(true);
    form.add(sizeContainer);
    sizeContainer.add(sizeField = new TextField("size", new PropertyModel(this, "size")));
    sizeContainer.setVisible(String.class.equals(attribute.getBinding()));

    crsContainer = new WebMarkupContainer("crsContainer");
    crsContainer.setOutputMarkupId(true);
    form.add(crsContainer);
    crsContainer.add(crsField = new CRSPanel("crs"));
    crsContainer.setVisible(
            attribute.getBinding() != null && Geometry.class.isAssignableFrom(attribute.getBinding()));

    SubmitLink submit = new SubmitLink("save") {
        @Override
        public void onSubmit() {
            if (validate()) {
                if (newAttribute) {
                    previousPage.attributesProvider.addNewAttribute(attribute);
                }
                setResponsePage(previousPage);
            }
        }

    };
    form.setDefaultButton(submit);
    form.add(submit);
    form.add(new Link("cancel") {

        @Override
        public void onClick() {
            setResponsePage(previousPage);
        }
    });

}

From source file:org.geoserver.web.data.layer.CascadedWFSStoredQueryAbstractPage.java

License:Open Source License

public CascadedWFSStoredQueryAbstractPage(String workspaceName, String storeName, String typeName)
        throws IOException {
    storeId = getCatalog().getStoreByName(workspaceName, storeName, DataStoreInfo.class).getId();

    Form form = new Form("form", new CompoundPropertyModel(this));

    form.add(getStoredQueryNameComponent());

    parameterProvider = new StoredQueryParameterAttributeProvider();

    parameters = new GeoServerTablePanel<StoredQueryParameterAttribute>("parameters", parameterProvider) {
        @Override//  w  w  w.java2s.  c  om
        protected Component getComponentForProperty(String id, final IModel itemModel,
                Property<StoredQueryParameterAttribute> property) {
            if (property == ATTR_MAPTYPE) {
                Fragment f = new Fragment(id, "parameterMappingType", CascadedWFSStoredQueryAbstractPage.this);

                ArrayList<ParameterMappingType> choices = new ArrayList<ParameterMappingType>();
                for (ParameterMappingType pmt : ParameterMappingType.values()) {
                    choices.add(pmt);
                }
                DropDownChoice<ParameterMappingType> choice = new DropDownChoice<ParameterMappingType>(
                        "dropdown", new PropertyModel(itemModel, "mappingType"), choices,
                        new ParameterMappingTypeRenderer());

                f.add(choice);

                return f;

            } else if (property == ATTR_VALUE) {
                Fragment f = new Fragment(id, "parameterMappingValue", CascadedWFSStoredQueryAbstractPage.this);

                TextField textField = new TextField("text", new PropertyModel(itemModel, "value"));
                f.add(textField);

                return f;
            }
            return null;
        }
    };
    // just a plain table, no filters, no paging
    parameters.setFilterVisible(false);
    parameters.setSortable(false);
    parameters.setPageable(false);
    parameters.setOutputMarkupId(true);
    form.add(parameters);

    add(form);

    // save and cancel at the bottom of the page
    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            onSave();
        }
    });
    form.add(new Link("cancel") {

        @Override
        public void onClick() {
            onCancel();
        }
    });
}

From source file:org.geoserver.web.data.layer.CoverageViewAbstractPage.java

License:Open Source License

@SuppressWarnings("deprecation")
public CoverageViewAbstractPage(String workspaceName, String storeName, String coverageName,
        CoverageInfo coverageInfo) throws IOException {
    storeId = getCatalog().getStoreByName(workspaceName, storeName, CoverageStoreInfo.class).getId();
    Catalog catalog = getCatalog();//from   ww w . j a  v a2  s. co m
    CoverageStoreInfo store = catalog.getStore(storeId, CoverageStoreInfo.class);

    GridCoverage2DReader reader = (GridCoverage2DReader) catalog.getResourcePool().getGridCoverageReader(store,
            null);
    String[] coverageNames = reader.getGridCoverageNames();
    if (availableCoverages == null) {
        availableCoverages = new ArrayList<String>();
    }
    for (String coverage : coverageNames) {
        ImageLayout layout = reader.getImageLayout(coverage);
        SampleModel sampleModel = layout.getSampleModel(null);
        final int numBands = sampleModel.getNumBands();
        for (int i = 0; i < numBands; i++) {
            availableCoverages.add(coverage + CoverageView.BAND_SEPARATOR + i);
        }
    }
    Collections.sort(availableCoverages);
    name = COVERAGE_VIEW_NAME;
    if (coverageName != null) {
        newCoverage = false;

        // grab the coverage view
        coverageViewInfo = coverageInfo != null ? coverageInfo
                : catalog.getResourceByStore(store, coverageName, CoverageInfo.class);
        CoverageView coverageView = coverageViewInfo.getMetadata().get(CoverageView.COVERAGE_VIEW,
                CoverageView.class);
        // the type can be still not saved
        if (coverageViewInfo != null) {
            coverageInfoId = coverageViewInfo.getId();
        }
        if (coverageView == null) {
            throw new IllegalArgumentException(
                    "The specified coverage does not have a coverage view attached to it");
        }
        outputBands = new ArrayList<CoverageBand>(coverageView.getCoverageBands());
        name = coverageView.getName();
    } else {
        outputBands = new ArrayList<CoverageBand>();
        newCoverage = true;
        coverageViewInfo = null;
    }
    selectedCoverages = new ArrayList<String>(availableCoverages);

    // build the form and the text area
    Form form = new Form("form", new CompoundPropertyModel(this));
    add(form);

    final TextField nameField = new TextField("name");
    nameField.setRequired(true);
    nameField.add(new CoverageViewNameValidator());
    form.add(nameField);

    coverageEditor = new CoverageViewEditor("coverages", new PropertyModel(this, "selectedCoverages"),
            new PropertyModel(this, "outputBands"), availableCoverages);
    form.add(coverageEditor);

    // save and cancel at the bottom of the page
    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            onSave();
        }
    });
    form.add(new Link("cancel") {

        @Override
        public void onClick() {
            onCancel();
        }
    });
}

From source file:org.geoserver.web.data.layer.NewFeatureTypePage.java

License:Open Source License

private SubmitLink saveLink() {
    return new SubmitLink("save") {
        @Override//from  ww  w. ja va 2 s. c o m
        public void onSubmit() {
            DataStore ds = null;
            DataStoreInfo dsInfo = null;
            try {
                // basic checks
                dsInfo = getCatalog().getDataStore(storeId);
                ds = (DataStore) dsInfo.getDataStore(null);
                if (Arrays.asList(ds.getTypeNames()).contains(name)) {
                    error(new ParamResourceModel("duplicateTypeName", this, dsInfo.getName(), name)
                            .getString());
                    return;
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }

            if (attributesProvider.getAttributes().size() == 0) {
                error(new ParamResourceModel("noAttributes", this).getString());
                return;
            }

            try {
                SimpleFeatureType featureType = buildFeatureType();
                ds.createSchema(featureType);

                CatalogBuilder builder = new CatalogBuilder(getCatalog());
                builder.setStore(dsInfo);
                FeatureTypeInfo fti = builder.buildFeatureType(getFeatureSource(ds));
                LayerInfo layerInfo = builder.buildLayer(fti);
                setResponsePage(new ResourceConfigurationPage(layerInfo, true));
            } catch (Exception e) {
                LOGGER.log(Level.SEVERE, "Failed to create feature type", e);
                error(new ParamResourceModel("creationFailure", this, e.getMessage()).getString());
            }
        }

    };
}

From source file:org.geoserver.web.data.layer.SQLViewAbstractPage.java

License:Open Source License

@SuppressWarnings("deprecation")
public SQLViewAbstractPage(String workspaceName, String storeName, String typeName, VirtualTable virtualTable)
        throws IOException {
    storeId = getCatalog().getStoreByName(workspaceName, storeName, DataStoreInfo.class).getId();

    // build the form and the text area
    Form form = new Form("form", new CompoundPropertyModel(this));
    add(form);//w  w w .  j  a v a  2  s.  c o  m
    final TextField nameField = new TextField("name");
    nameField.setRequired(true);
    nameField.add(new ViewNameValidator());
    form.add(nameField);
    sqlEditor = new TextArea("sql");
    form.add(sqlEditor);

    // the parameters and attributes provider
    attProvider = new SQLViewAttributeProvider();
    paramProvider = new SQLViewParamProvider();

    // setting up the providers
    if (typeName != null) {
        newView = false;

        // grab the virtual table
        DataStoreInfo store = getCatalog().getStore(storeId, DataStoreInfo.class);
        FeatureTypeInfo fti = getCatalog().getResourceByStore(store, typeName, FeatureTypeInfo.class);
        // the type can be still not saved
        if (fti != null) {
            typeInfoId = fti.getId();
        }
        if (virtualTable == null) {
            throw new IllegalArgumentException(
                    "The specified feature type does not have a sql view attached to it");
        }

        // get the store
        DataAccess da = store.getDataStore(null);
        if (!(da instanceof JDBCDataStore)) {
            error("Cannot create a SQL view if the store is not database based");
            doReturn(StorePage.class);
            return;
        }

        name = virtualTable.getName();
        sql = virtualTable.getSql();
        escapeSql = virtualTable.isEscapeSql();

        paramProvider.init(virtualTable);
        try {
            SimpleFeatureType ft = testViewDefinition(virtualTable, false);
            attProvider.setFeatureType(ft, virtualTable);
        } catch (Exception e) {
            LOGGER.log(Level.SEVERE, "Failed to build feature type for the sql view", e);
        }
    } else {
        newView = true;
    }

    // the links to refresh, add and remove a parameter
    form.add(new GeoServerAjaxFormLink("guessParams") {

        @Override
        protected void onClick(AjaxRequestTarget target, Form form) {
            sqlEditor.processInput();
            parameters.processInputs();
            if (sql != null && !"".equals(sql.trim())) {
                paramProvider.refreshFromSql(sql);
                target.addComponent(parameters);
            }
        }
    });
    form.add(new GeoServerAjaxFormLink("addNewParam") {

        @Override
        protected void onClick(AjaxRequestTarget target, Form form) {
            paramProvider.addParameter();
            target.addComponent(parameters);
        }
    });
    form.add(new GeoServerAjaxFormLink("removeParam") {

        @Override
        protected void onClick(AjaxRequestTarget target, Form form) {
            paramProvider.removeAll(parameters.getSelection());
            parameters.clearSelection();
            target.addComponent(parameters);
        }
    });

    // the parameters table
    parameters = new GeoServerTablePanel<Parameter>("parameters", paramProvider, true) {

        @Override
        protected Component getComponentForProperty(String id, IModel itemModel, Property<Parameter> property) {
            Fragment f = new Fragment(id, "text", SQLViewAbstractPage.this);
            TextField text = new TextField("text", property.getModel(itemModel));
            text.setLabel(new ParamResourceModel("th." + property.getName(), SQLViewAbstractPage.this));
            if (property == SQLViewParamProvider.NAME) {
                text.setRequired(true);
            } else if (property == SQLViewParamProvider.REGEXP) {
                text.add(new RegexpValidator());
            }
            f.add(text);
            return f;
        }

    };
    parameters.setFilterVisible(false);
    parameters.setSortable(false);
    parameters.getTopPager().setVisible(false);
    parameters.getBottomPager().setVisible(false);
    parameters.setOutputMarkupId(true);
    form.add(parameters);

    // the "refresh attributes" link
    form.add(refreshLink());
    form.add(guessCheckbox = new CheckBox("guessGeometrySrid", new PropertyModel(this, "guessGeometrySrid")));
    form.add(new CheckBox("escapeSql"));

    // the editable attribute table
    attributes = new GeoServerTablePanel<SQLViewAttribute>("attributes", attProvider) {

        @Override
        protected Component getComponentForProperty(String id, IModel itemModel,
                Property<SQLViewAttribute> property) {
            SQLViewAttribute att = (SQLViewAttribute) itemModel.getObject();
            boolean isGeometry = att.getType() != null && Geometry.class.isAssignableFrom(att.getType());
            if (property == SQLViewAttributeProvider.PK) {
                // editor for pk status
                Fragment f = new Fragment(id, "checkbox", SQLViewAbstractPage.this);
                f.add(new CheckBox("identifier", new PropertyModel(itemModel, "pk")));
                return f;
            } else if (property == SQLViewAttributeProvider.TYPE && isGeometry) {
                Fragment f = new Fragment(id, "geometry", SQLViewAbstractPage.this);
                f.add(new DropDownChoice("geometry", new PropertyModel(itemModel, "type"), GEOMETRY_TYPES,
                        new GeometryTypeRenderer()));
                return f;
            } else if (property == SQLViewAttributeProvider.SRID && isGeometry) {
                Fragment f = new Fragment(id, "text", SQLViewAbstractPage.this);
                f.add(new TextField("text", new PropertyModel(itemModel, "srid")));
                return f;
            }
            return null;
        }
    };
    // just a plain table, no filters, no paging, 
    attributes.setFilterVisible(false);
    attributes.setSortable(false);
    attributes.setPageable(false);
    attributes.setOutputMarkupId(true);
    form.add(attributes);

    // save and cancel at the bottom of the page
    form.add(new SubmitLink("save") {
        @Override
        public void onSubmit() {
            onSave();
        }
    });
    form.add(new Link("cancel") {

        @Override
        public void onClick() {
            onCancel();
        }
    });
}

From source file:org.geoserver.web.data.layergroup.AbstractLayerGroupPage.java

License:Open Source License

private SubmitLink saveLink() {
    return new SubmitLink("save") {
        @Override/*from  www  .j a v a 2s  . com*/
        public void onSubmit() {
            // validation
            if (lgEntryPanel.getEntries().size() == 0) {
                error((String) new ParamResourceModel("oneLayerMinimum", getPage()).getObject());
                return;
            }

            LayerGroupInfo lg = (LayerGroupInfo) lgModel.getObject();

            if (!LayerGroupInfo.Mode.EO.equals(lg.getMode())) {
                lg.setRootLayer(null);
                lg.setRootLayerStyle(null);
            } else {
                if (lg.getRootLayerStyle() == null && lg.getRootLayer() != null) {
                    lg.setRootLayerStyle(lg.getRootLayer().getDefaultStyle());
                }
            }

            // update the layer group entries
            lg.getLayers().clear();
            lg.getStyles().clear();
            for (LayerGroupEntry entry : lgEntryPanel.getEntries()) {
                lg.getLayers().add(entry.getLayer());
                lg.getStyles().add(entry.getStyle());
            }

            try {
                AbstractLayerGroupPage.this.save();
            } catch (Exception e) {
                error(e);
                LOGGER.log(Level.WARNING, "Error adding/modifying layer group.", e);
            }

        }
    };
}

From source file:org.geoserver.web.data.resource.ResourceConfigurationPage.java

License:Open Source License

/**
 * /* w ww.  ja v  a2 s .  co  m*/
 */
private void initComponents() {
    this.returnPageClass = LayerPage.class;
    this.tabPanelCustomModels = new LinkedHashMap<Class<? extends LayerEditTabPanel>, IModel<?>>();

    add(new Label("resourcename", getResourceInfo().getPrefixedName()));
    Form theForm = new Form("resource", myResourceModel);
    add(theForm);

    List<ITab> tabs = new ArrayList<ITab>();

    // add the "well known" tabs
    tabs.add(new AbstractTab(new org.apache.wicket.model.ResourceModel("ResourceConfigurationPage.Data")) {

        public Panel getPanel(String panelID) {
            return new DataLayerEditTabPanel(panelID, myLayerModel);
        }
    });
    tabPanelCustomModels.put(DataLayerEditTabPanel.class, null);

    tabs.add(
            new AbstractTab(new org.apache.wicket.model.ResourceModel("ResourceConfigurationPage.Publishing")) {

                public Panel getPanel(String panelID) {
                    return new PublishingLayerEditTabPanel(panelID, myLayerModel);
                }
            });
    tabPanelCustomModels.put(PublishingLayerEditTabPanel.class, null);

    // add the tabs contributed via extension point
    List<LayerEditTabPanelInfo> tabPanels = getGeoServerApplication()
            .getBeansOfType(LayerEditTabPanelInfo.class);

    // sort the tabs based on order
    Collections.sort(tabPanels, new Comparator<LayerEditTabPanelInfo>() {
        public int compare(LayerEditTabPanelInfo o1, LayerEditTabPanelInfo o2) {
            Integer order1 = o1.getOrder() >= 0 ? o1.getOrder() : Integer.MAX_VALUE;
            Integer order2 = o2.getOrder() >= 0 ? o2.getOrder() : Integer.MAX_VALUE;

            return order1.compareTo(order2);
        }
    });

    for (LayerEditTabPanelInfo tabPanelInfo : tabPanels) {
        String titleKey = tabPanelInfo.getTitleKey();
        IModel titleModel = null;
        if (titleKey != null) {
            titleModel = new org.apache.wicket.model.ResourceModel(titleKey);
        } else {
            titleModel = new Model(tabPanelInfo.getComponentClass().getSimpleName());
        }

        final Class<LayerEditTabPanel> panelClass = tabPanelInfo.getComponentClass();
        IModel<?> panelCustomModel = tabPanelInfo.createOwnModel(myResourceModel, myLayerModel, isNew);
        tabPanelCustomModels.put(panelClass, panelCustomModel);

        tabs.add(new AbstractTab(titleModel) {
            private final Class<LayerEditTabPanel> panelType = panelClass;

            @Override
            public Panel getPanel(String panelId) {
                LayerEditTabPanel tabPanel;
                final IModel<?> panelCustomModel = tabPanelCustomModels.get(panelType);
                try {
                    // if this tab needs a custom model instead of just our layer model, then
                    // let it create it once
                    if (panelCustomModel == null) {
                        tabPanel = panelClass.getConstructor(String.class, IModel.class).newInstance(panelId,
                                myLayerModel);
                    } else {
                        tabPanel = panelClass.getConstructor(String.class, IModel.class, IModel.class)
                                .newInstance(panelId, myLayerModel, panelCustomModel);
                    }
                } catch (Exception e) {
                    throw new WicketRuntimeException(e);
                    // LOGGER.log(Level.WARNING, "Error creating resource panel", e);
                }
                return tabPanel;
            }
        });
    }

    // we need to override with submit links so that the various form
    // element
    // will validate and write down into their
    tabbedPanel = new TabbedPanel("tabs", tabs) {
        @Override
        protected WebMarkupContainer newLink(String linkId, final int index) {
            return new SubmitLink(linkId) {
                @Override
                public void onSubmit() {
                    setSelectedTab(index);
                }
            };
        }
    };
    theForm.add(tabbedPanel);
    theForm.add(saveLink());
    theForm.add(cancelLink());
}

From source file:org.geoserver.web.data.resource.ResourceConfigurationPage.java

License:Open Source License

private SubmitLink saveLink() {
    return new SubmitLink("save") {
        @Override//from  ww  w  . j  a v a  2  s .c  o  m
        public void onSubmit() {
            doSave();
        }
    };
}