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