List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink
public SubmitLink(String id)
From source file:org.geoserver.web.wicket.property.PropertyEditorTestPage.java
License:Open Source License
public PropertyEditorTestPage(Foo foo) { Form form = new Form("form", new CompoundPropertyModel(foo)); form.add(new PropertyEditorFormComponent("props")); form.add(new SubmitLink("save")); add(form);//from w w w . j ava 2s .c om }
From source file:org.geoserver.wms.eo.web.EoCoverageSelectorPage.java
License:Open Source License
private SubmitLink addToLayerGroupLink() { return new SubmitLink("save") { @Override//from w w w. j a v a2s . com public void onSubmit() { CatalogBuilder builder = new CatalogBuilder(getCatalog()); builder.setStore(selectedStore); EoLayerGroupAbstractPage layerGroupPage = (EoLayerGroupAbstractPage) returnPage; List<EoLayerGroupEntry> items = layerGroupPage.lgEntryPanel.entryProvider.getItems(); boolean error = false; for (EoCoverageSelection item : selections) { if (item.getType() != EoLayerType.IGNORE) { try { LayerInfo layer = createLayer(groupName, item, builder); if (layer == null) { error = true; } else { items.add(new EoLayerGroupEntry(layer, layer.getDefaultStyle(), layerGroupPage.lgModel.getObject().getName())); info("Layer " + layer.getName() + " successfully created and added to the EO layer group"); } } catch (Exception e) { error = true; error("Failed to create layer from covearge " + item.getCoverageName() + ": " + e.getMessage()); } } } if (!error) { setResponsePage(returnPage); } else { updateCoveragesList(true); } } }; }
From source file:org.geoserver.wms.eo.web.EoLayerGroupAbstractPage.java
License:Open Source License
private SubmitLink saveLink() { return new SubmitLink("save") { @Override/*w w w . jav a 2 s . com*/ public void onSubmit() { // validation if (lgEntryPanel.getEntries().size() == 0) { error((String) new ParamResourceModel("oneLayerMinimum", getPage()).getObject()); return; } LayerGroupInfo lg = (LayerGroupInfo) lgModel.getObject(); // update the layer group entries lg.getLayers().clear(); lg.getStyles().clear(); for (EoLayerGroupEntry entry : lgEntryPanel.getEntries()) { PublishedInfo pi = entry.getLayer(); if (pi instanceof LayerInfo) { LayerInfo li = getCatalog().getLayer(pi.getId()); String expectedName = lg.getName() + "_" + entry.getLayerSubName(); String actualName = li.getName(); if (!expectedName.equals(actualName)) { ResourceInfo resource = li.getResource(); li.setName(expectedName); resource.setName(expectedName); getCatalog().save(resource); getCatalog().save(li); } lg.getLayers().add(li); lg.getStyles().add(entry.getStyle()); } } try { EoLayerGroupAbstractPage.this.save(); } catch (Exception e) { error(e); LOGGER.log(Level.WARNING, "Error adding/modifying layer group.", e); } } }; }
From source file:org.geoserver.wps.web.ProcessLimitsPage.java
License:Open Source License
public ProcessLimitsPage(Page returnPage, final FilteredProcess process) { setReturnPage(returnPage);// ww w . j a v a 2s.com this.process = process; Form form = new Form("form"); add(form); final List<InputLimit> inputLimits = buildInputLimits(process); GeoServerDataProvider<InputLimit> inputLimitsProvider = new GeoServerDataProvider<ProcessLimitsPage.InputLimit>() { @Override protected List<org.geoserver.web.wicket.GeoServerDataProvider.Property<InputLimit>> getProperties() { List<Property<InputLimit>> result = new ArrayList<>(); result.add(new BeanProperty<InputLimit>("name", "name")); result.add(new PropertyPlaceholder("type")); result.add(new BeanProperty<InputLimit>("editor", "validator")); return result; } @Override protected List<InputLimit> getItems() { return inputLimits; } }; table = new GeoServerTablePanel<InputLimit>("table", inputLimitsProvider) { @Override protected Component getComponentForProperty(String id, IModel itemModel, Property<InputLimit> property) { InputLimit limit = (InputLimit) itemModel.getObject(); String propertyName = property.getName(); if (propertyName.equals("type")) { String type; try { String key = "type." + limit.getValidator().getClass().getName(); type = new ParamResourceModel(key, ProcessLimitsPage.this).getString(); } catch (Exception e) { type = limit.validator.getClass().getSimpleName(); } return new Label(id, type); } else if (propertyName.equals("editor")) { WPSInputValidator validator = limit.getValidator(); if (validator instanceof MaxSizeValidator) { Fragment f = new Fragment(id, "textEditor", ProcessLimitsPage.this); PropertyModel maxSizeModel = new PropertyModel(itemModel, "validator.maxSizeMB"); TextField<Integer> text = new TextField<Integer>("text", maxSizeModel, Integer.class); f.add(text); return f; } else if (validator instanceof MultiplicityValidator) { Fragment f = new Fragment(id, "textEditor", ProcessLimitsPage.this); PropertyModel maxMultiplicityModel = new PropertyModel(itemModel, "validator.maxInstances"); TextField<Integer> text = new TextField<Integer>("text", maxMultiplicityModel, Integer.class); f.add(text); return f; } else if (validator instanceof NumberRangeValidator) { Fragment f = new Fragment(id, "rangeEditor", ProcessLimitsPage.this); PropertyModel rangeModel = new PropertyModel(itemModel, "validator.range"); RangePanel rangeEditor = new RangePanel("range", rangeModel); f.add(rangeEditor); return f; } } // have the base class create a label for us return null; } }; table.setOutputMarkupId(true); table.setFilterable(false); table.setPageable(false); table.setItemReuseStrategy(new DefaultItemReuseStrategy()); table.setSortable(false); form.add(table); SubmitLink apply = new SubmitLink("apply") { @Override public void onSubmit() { // super.onSubmit(); process.setValidators(buildValidators(inputLimits)); doReturn(); } }; form.add(apply); Link cancel = new Link("cancel") { @Override public void onClick() { doReturn(); } }; form.add(cancel); }
From source file:org.geoserver.wps.web.ProcessSelectionPage.java
License:Open Source License
public ProcessSelectionPage(final WPSAccessRulePage wpsAccessRulePage, final ProcessGroupInfo pfi) { this.pfi = pfi; // prepare the process factory title Class<? extends ProcessFactory> factoryClass = pfi.getFactoryClass(); ProcessFactory pf = GeoServerProcessors.getProcessFactory(factoryClass, false); if (pf == null) { throw new IllegalArgumentException("Failed to locate the process factory " + factoryClass); }// w w w . j av a 2 s. c o m this.title = pf.getTitle().toString(getLocale()); Form form = new Form("form"); add(form); GeoServerRoleService roleService = getSecurityManager().getActiveRoleService(); try { for (GeoServerRole r : roleService.getRoles()) { availableRoles.add(r.getAuthority()); } } catch (IOException e1) { LOGGER.log(Level.FINER, e1.getMessage(), e1); } final FilteredProcessesProvider provider = new FilteredProcessesProvider(pfi, getLocale()); final AutoCompleteSettings settings = new AutoCompleteSettings(); settings.setShowCompleteListOnFocusGain(false); settings.setShowListOnEmptyInput(true); settings.setShowListOnFocusGain(true); settings.setMaxHeightInPx(100); processSelector = new GeoServerTablePanel<FilteredProcess>("selectionTable", provider) { @Override protected Component getComponentForProperty(String id, final IModel itemModel, Property<FilteredProcess> property) { if (property.getName().equals("enabled")) { Fragment fragment = new Fragment(id, "enabledFragment", ProcessSelectionPage.this); CheckBox enabled = new CheckBox("enabled", property.getModel(itemModel)); enabled.setOutputMarkupId(true); fragment.add(enabled); return fragment; } else if (property.getName().equals("title")) { return new Label(id, property.getModel(itemModel)); } else if (property.getName().equals("description")) { return new Label(id, property.getModel(itemModel)); } else if (property.getName().equals("roles")) { Fragment fragment = new Fragment(id, "rolesFragment", ProcessSelectionPage.this); TextArea<String> roles = new TextArea<String>("roles", property.getModel(itemModel)) { public org.apache.wicket.util.convert.IConverter getConverter(java.lang.Class<?> type) { return new RolesConverter(availableRoles); }; }; StringBuilder selectedRoles = new StringBuilder(); IAutoCompleteRenderer<String> roleRenderer = new RolesRenderer(selectedRoles); AutoCompleteBehavior<String> b = new RolesAutoCompleteBehavior(roleRenderer, settings, selectedRoles, availableRoles); roles.setOutputMarkupId(true); roles.add(b); fragment.add(roles); return fragment; } else if (property.getName().equals("validated")) { final IModel<Boolean> hasValidatorsModel = property.getModel(itemModel); IModel<String> availableModel = new AbstractReadOnlyModel<String>() { @Override public String getObject() { Boolean value = hasValidatorsModel.getObject(); if (Boolean.TRUE.equals(value)) { return "*"; } else { return ""; } } }; return new Label(id, availableModel); } else if (property.getName().equals("edit")) { Fragment fragment = new Fragment(id, "linkFragment", ProcessSelectionPage.this); // we use a submit link to avoid losing the other edits in the form Link link = new Link("link") { @Override public void onClick() { FilteredProcess fp = (FilteredProcess) itemModel.getObject(); setResponsePage(new ProcessLimitsPage(ProcessSelectionPage.this, fp)); } }; fragment.add(link); return fragment; } return null; } }; processSelector.setFilterable(false); processSelector.setPageable(false); processSelector.setOutputMarkupId(true); form.add(processSelector); SubmitLink apply = new SubmitLink("apply") { @Override public void onSubmit() { // super.onSubmit(); pfi.getFilteredProcesses().clear(); for (FilteredProcess process : provider.getItems()) { if (!process.getRoles().isEmpty() || !process.getEnabled() || !process.getValidators().isEmpty()) { ProcessInfo pai = process.toProcessInfo(); pfi.getFilteredProcesses().add(pai); } } setResponsePage(wpsAccessRulePage); } }; form.add(apply); Link cancel = new Link("cancel") { @Override public void onClick() { setResponsePage(wpsAccessRulePage); } }; form.add(cancel); }
From source file:org.jabylon.rest.ui.wicket.panels.PropertyEditorPanel.java
License:Open Source License
public PropertyEditorPanel(PropertyFileDescriptor object, PageParameters parameters) { super("content", object, parameters); List<ReviewParticipant> activeReviews = PropertyListModeFactory.filterActiveReviews( getModel().getObject().getProjectLocale().getParent().getParent(), reviewParticipants); PropertyListMode mode = PropertyListModeFactory.allAsMap(activeReviews) .get(parameters.get("mode").toString()); addLinkList(mode);/*from ww w . j av a 2 s . c o m*/ reviewModel = new LoadableDetachableModel<Multimap<String, Review>>() { private static final long serialVersionUID = 1L; @Override protected Multimap<String, Review> load() { return buildReviewMap(getModelObject()); } }; PropertyPairDataProvider provider = new PropertyPairDataProvider(object, mode, reviewModel); List<PropertyPair> contents = provider.createContents(); ListView<PropertyPair> properties = new ListView<PropertyPair>("repeater", contents) { private static final long serialVersionUID = -7087485011138279358L; @Override protected void populateItem(final ListItem<PropertyPair> item) { IModel<PropertyPair> model = item.getModel(); String key = model.getObject().getKey(); Collection<Review> reviewList = reviewModel.getObject().get(key); item.add(new SinglePropertyEditor("row", model, false, reviewList)); } }; properties.setOutputMarkupId(true); Form<List<? extends PropertyPair>> form = new Form<List<? extends PropertyPair>>("properties-form", Model.ofList(contents)) { private static final long serialVersionUID = 1L; @Override protected void onSubmit() { super.onSubmit(); IModel<List<? extends PropertyPair>> model = getModel(); List<? extends PropertyPair> list = model.getObject(); PropertyFileDescriptor descriptor = PropertyEditorPanel.this.getModelObject(); PropertyFile file = descriptor.loadProperties(); Map<String, Property> map = file.asMap(); for (PropertyPair pair : list) { Property translation = pair.getTranslation(); if (translation == null) continue; if (map.containsKey(translation.getKey())) { Property property = map.get(translation.getKey()); property.setComment(translation.getComment()); property.setValue(translation.getValue()); } else file.getProperties().add(translation); } propertyPersistence.saveProperties(descriptor, file); getSession().info("Saved successfully"); try { //TODO: this is very unclean... // give it some time to store the values Thread.sleep(500); } catch (InterruptedException e) { logger.error("Interrupted while waiting for property persistence", e); } } }; add(form); form.add(new SubmitLink("properties-submit") { private static final long serialVersionUID = 1L; @Override protected String getTriggerJavaScript() { /* disables the default submit behaviour since we do that ourselfs in JS * https://github.com/jutzig/jabylon/issues/52 * see propertyEditor.js */ return ""; } }); form.add(properties); final PropertiesEditorToolbar editorToolbar = new PropertiesEditorToolbar("properties-toolbar", getModel(), getPageParameters()); editorToolbar.setOutputMarkupId(true); add(editorToolbar); // // final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() { // protected void respond(final AjaxRequestTarget target) { // editorToolbar.respond(target); // // StringValue parameter = RequestCycle.get().getRequest().getRequestParameters().getParameterValue("key"); // editorToolbar.setKey(parameter.toString("")); // } // // public CharSequence getCallbackFunction(String functionName, CallbackParameter... extraParameters) // { // StringBuilder sb = new StringBuilder(); // sb.append("function "); // sb.append(functionName); // sb.append(" ("); // boolean first = true; // for (CallbackParameter curExtraParameter : extraParameters) // { // if (curExtraParameter.getFunctionParameterName() != null) // { // if (!first) // sb.append(','); // else // first = false; // sb.append(curExtraParameter.getFunctionParameterName()); // } // } // sb.append(") {\n"); // sb.append(getCallbackFunctionBody(extraParameters)); // sb.append("}\n"); // return sb; // } // // @Override // public void renderHead(Component component, IHeaderResponse response) { // response.render(JavaScriptHeaderItem.forScript(getCallbackFunction("requestAid",CallbackParameter.explicit("key")), "requestAid")); // super.renderHead(component, response); // } // // }; // // add(behave); }
From source file:org.projectforge.plugins.skillmatrix.SkillSelectPanel.java
License:Open Source License
/** * @see org.projectforge.web.wicket.AbstractSelectPanel#onBeforeRender() *///from ww w . j av a 2s .c om @SuppressWarnings("serial") @Override protected void onBeforeRender() { super.onBeforeRender(); final SkillDO skill = getModelObject(); final Integer skillId = skill != null ? skill.getId() : null; if (currentSkillId == skillId) { return; } currentSkillId = skillId; if (showPath == true && skill != null) { ancestorRepeater.removeAll(); final SkillNode skillNode = getSkillTree().getSkillNodeById(skill.getId()); final List<Integer> ancestorIds = skillNode.getAncestorIds(); final ListIterator<Integer> it = ancestorIds.listIterator(ancestorIds.size()); while (it.hasPrevious() == true) { final Integer ancestorId = it.previous(); final SkillDO ancestorSkill = getSkillTree().getSkillById(ancestorId); if (ancestorSkill.getParent() == null) { // Don't show root node: continue; } final WebMarkupContainer cont = new WebMarkupContainer(ancestorRepeater.newChildId()); ancestorRepeater.add(cont); final SubmitLink selectSkillLink = new SubmitLink("ancestorSkillLink") { @Override public void onSubmit() { caller.select(selectProperty, ancestorSkill.getId()); } }; selectSkillLink.setDefaultFormProcessing(false); cont.add(selectSkillLink); WicketUtils.addTooltip(selectSkillLink, getString(I18N_KEY_SELECT_ANCESTOR_SKILL_TOOLTIP)); selectSkillLink.add(new Label("name", ancestorSkill.getTitle())); } ancestorRepeater.setVisible(true); } else { ancestorRepeater.setVisible(false); } }
From source file:org.projectforge.plugins.skillmatrix.SkillSelectPanel.java
License:Open Source License
@Override @SuppressWarnings("serial") public SkillSelectPanel init() { super.init(); ancestorRepeater = new RepeatingView("ancestorSkills"); divContainer.add(ancestorRepeater);/* ww w . j a va2s .c o m*/ final SubmitLink skillLink = new SubmitLink("skillLink") { @Override public void onSubmit() { final SkillDO skill = getModelObject(); if (skill == null) { return; } final PageParameters pageParams = new PageParameters(); pageParams.add(AbstractEditPage.PARAMETER_KEY_ID, String.valueOf(skill.getId())); final SkillEditPage editPage = new SkillEditPage(pageParams); editPage.setReturnToPage((AbstractSecuredPage) getPage()); setResponsePage(editPage); } }; skillLink.setDefaultFormProcessing(false); divContainer.add(skillLink); // auto complete panels initAutoCompletePanels(); WicketUtils.addTooltip(skillLink, getString(I18N_KEY_DISPLAY_SKILL_TOOLTIP)); skillLink.add(new Label("name", new Model<String>() { /** * @see org.apache.wicket.model.Model#getObject() */ @Override public String getObject() { final SkillDO skill = getModelObject(); return skill != null ? skill.getTitle() : ""; } })); final SubmitLink selectButton = new SubmitLink("select") { @Override public void onSubmit() { final SkillTreePage skillTreePage = new SkillTreePage(caller, selectProperty); if (getModelObject() != null) { skillTreePage.setHighlightedRowId(getModelObject().getId()); // Preselect node for highlighting. } setResponsePage(skillTreePage); }; }; selectButton.setDefaultFormProcessing(false); divContainer.add(selectButton); selectButton.add(new IconPanel("selectHelp", IconType.TASK, getString(I18N_KEY_SELECT_SKILL_TOOLTIP))); final SubmitLink unselectButton = new SubmitLink("unselect") { @Override public void onSubmit() { caller.unselect(selectProperty); } @Override public boolean isVisible() { return isRequired() == false && getModelObject() != null; } }; unselectButton.setDefaultFormProcessing(false); divContainer.add(unselectButton); unselectButton .add(new IconPanel("unselectHelp", IconType.REMOVE_SIGN, getString(I18N_KEY_UNSELECT_SKILL_TOOLTIP)) .setColor(CSSColor.RED)); return this; }
From source file:org.projectforge.plugins.teamcal.event.TeamEventListForm.java
License:Open Source License
/** * @see org.projectforge.web.wicket.AbstractListForm#onOptionsPanelCreate(org.projectforge.web.wicket.flowlayout.FieldsetPanel, * org.projectforge.web.wicket.flowlayout.DivPanel) *//*from www . j av a2 s . co m*/ @SuppressWarnings("serial") @Override protected void onOptionsPanelCreate(final FieldsetPanel optionsFieldsetPanel, final DivPanel optionsCheckBoxesPanel) { { optionsFieldsetPanel.setOutputMarkupId(true); startDate = new DatePanel(optionsFieldsetPanel.newChildId(), new PropertyModel<Date>(getSearchFilter(), "startDate"), DatePanelSettings.get().withSelectPeriodMode(true)); optionsFieldsetPanel.add(dependentFormComponents[0] = startDate); optionsFieldsetPanel.setLabelFor(startDate); optionsFieldsetPanel.add(new DivTextPanel(optionsFieldsetPanel.newChildId(), " - ")); endDate = new DatePanel(optionsFieldsetPanel.newChildId(), new PropertyModel<Date>(getSearchFilter(), "endDate"), DatePanelSettings.get().withSelectPeriodMode(true)); optionsFieldsetPanel.add(dependentFormComponents[1] = endDate); { final SubmitLink unselectPeriod = new SubmitLink(IconLinkPanel.LINK_ID) { @Override public void onSubmit() { getSearchFilter().setStartDate(null); getSearchFilter().setEndDate(null); clearInput(); parentPage.refresh(); }; }; unselectPeriod.setDefaultFormProcessing(false); optionsFieldsetPanel.add(new IconLinkPanel(optionsFieldsetPanel.newChildId(), IconType.REMOVE_SIGN, new ResourceModel("calendar.tooltip.unselectPeriod"), unselectPeriod) .setColor(CSSColor.RED)); } final QuickSelectPanel quickSelectPanel = new QuickSelectPanel(optionsFieldsetPanel.newChildId(), parentPage, "quickSelect", startDate); optionsFieldsetPanel.add(quickSelectPanel); quickSelectPanel.init(); optionsFieldsetPanel.add(new HtmlCommentPanel(optionsFieldsetPanel.newChildId(), new Model<String>() { @Override public String getObject() { return WicketUtils.getUTCDates(getSearchFilter().getStartDate(), getSearchFilter().getEndDate()); } })); } { // Team calendar final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.teamcal.calendar"));// .setLabelSide(false); final TeamCalsProvider calendarProvider = new TeamCalsProvider(); calendarsListHelper = new MultiChoiceListHelper<TeamCalDO>().setComparator(new TeamCalsComparator()) .setFullList(calendarProvider.getSortedCalenders()); final Collection<Integer> list = getFilter().getTeamCals(); if (list != null) { for (final Integer calId : list) { final TeamCalDO cal = TeamCalCache.getInstance().getCalendar(calId); calendarsListHelper.addOriginalAssignedItem(cal).assignItem(cal); } } final Select2MultiChoice<TeamCalDO> calendars = new Select2MultiChoice<TeamCalDO>( fs.getSelect2MultiChoiceId(), new PropertyModel<Collection<TeamCalDO>>(this.calendarsListHelper, "assignedItems"), calendarProvider); fs.add(calendars); } }
From source file:org.projectforge.web.address.PhoneCallForm.java
License:Open Source License
@SuppressWarnings("serial") private void addPhoneNumber(final String property, final String label) { final SubmitLink numberLink = new SubmitLink(TextLinkPanel.LINK_ID) { @Override/*w w w .j a v a2 s . c o m*/ public void onSubmit() { final String number = (String) BeanHelper.getProperty(address, property); setPhoneNumber(parentPage.extractPhonenumber(number)); numberTextField.setModelObject(new AddressDO().setName(getPhoneNumber())); numberTextField.modelChanged(); parentPage.call(); } }; final TextLinkPanel numberLinkPanel = new TextLinkPanel(addressPanel.newChildId(), numberLink, new Model<String>() { @Override public String getObject() { final String number = (String) BeanHelper.getProperty(address, property); return HtmlHelper.escapeHtml(number + " (" + label + ")\n", true); } }) { /** * @see org.apache.wicket.Component#isVisible() */ @Override public boolean isVisible() { if (address == null) { return false; } final String number = (String) BeanHelper.getProperty(address, property); return (StringUtils.isNotBlank(number) == true); } }; numberLinkPanel.getLabel().setEscapeModelStrings(false); addressPanel.add(numberLinkPanel); }