List of usage examples for org.apache.wicket.markup.html.form FormComponent getModelObject
@SuppressWarnings("unchecked") default T getModelObject()
From source file:com.pushinginertia.wicket.core.form.behavior.FormInputSaveDraftBehavior.java
License:Open Source License
@Override public void renderHead(final Component component, final IHeaderResponse response) { super.renderHead(component, response); // prepopulate the saved drafts on the client with whatever model objects already exist final StringBuilder sb = new StringBuilder(); for (final FormComponent<String> c : components) { sb.append(c.getMarkupId()).append(":'"); final String inputValue = c.getModelObject(); if (inputValue != null) { sb.append(inputValue.replace("\n", "\\n").replace("'", "\\'")); }/*from w w w . j a v a 2 s . c o m*/ sb.append("',"); } response.renderJavaScript("var savedDrafts={" + sb.toString() + "};\n" + "var lastCallbackTime=(new Date()).getTime();\n" + "var interval=setInterval(function(){pushDraft();}, " + saveDraftInterval.getMilliseconds() + ");\n" + "var keepAliveInterval=" + keepAliveInterval.getMilliseconds() + ";\n" + // maximum time between callbacks "function pushDraft() {\n" + "\tvar p={};\n" + "\tvar push=false;\n" + "\tfor(k in savedDrafts){\n" + "\t\tvar el=document.getElementById(k);\n" + "\t\tif(savedDrafts[k]!==el.value){\n" + "\t\t\tp[k]=el.value;\n" + "\t\t\tpush=true;\n" + "\t\t}\n" + "\t}\n" + "\tvar now=(new Date()).getTime();\n" + "\tif(push||now-lastCallbackTime>keepAliveInterval){\n" + // Insert a dummy post variable for servers that reject POSTs without any key/value pairs. // See: https://cwiki.apache.org/confluence/display/WICKET/Calling+Wicket+from+Javascript "\t\tvar s='_now='+now;\n" + "\t\tfor(k in p){\n" + "\t\t\ts+='&'+k+'='+encodeURIComponent(p[k]);\n" + "\t\t\tsavedDrafts[k]=p[k];\n" + "\t\t}\n" + "\t\twicketAjaxPost('" + getCallbackUrl() + "', s);\n" + "\t\tlastCallbackTime=now;\n" + "\t}\n" + "}", "FormSaveDraftBehavior"); }
From source file:com.servoy.j2db.server.headlessclient.dataui.FocusIfInvalidAttributeModifier.java
License:Open Source License
public FocusIfInvalidAttributeModifier(final FormComponent component) { // please keep the case in the event name super("onblur", true, new Model<String>() //$NON-NLS-1$ {//from ww w. j a v a 2 s .c om private static final long serialVersionUID = 1L; @Override public String getObject() { Object mo = component.getModelObject(); String value; if (mo instanceof Boolean) { value = mo.toString(); } else { value = '\'' + String.valueOf(Strings.escapeMarkup(component.getValue())) + '\''; value = component.getValue(); if (value == null) { value = ""; //$NON-NLS-1$ } else { value = '\'' + Strings.escapeMarkup(value).toString() + '\''; } } return "scheduleRequestFocusOnInvalid(\"" + component.getMarkupId() + "\", \"" + value + "\");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } }); }
From source file:com.visural.wicket.component.viewmode.ViewOrEdit.java
License:Apache License
protected ViewOrEdit(final String id, final FormComponent component, IModel labelModel, final ComponentModelToLabel componentModelToLabel) { super(id);//from w w w. j a va 2s . com this.component = component; if (labelModel == null && componentModelToLabel != null) { labelModel = new AbstractReadOnlyModel() { private final ComponentModelToLabel converter = componentModelToLabel; @Override public Object getObject() { return converter.convertToLabel(component.getModelObject()); } }; } if (component == null || !component.getId().equals(COMP_ID)) { throw new IllegalArgumentException( "The component provided to LabelOnViewOnly(...) must have the id \"" + COMP_ID + "\""); } Fragment f = resolveComponentFragment(labelModel); if (f == null) { throw new UnsupportedOperationException( "No view mode fragment for component of type " + component.getClass().getName()); } add(f); }
From source file:gr.abiss.calipso.wicket.components.validators.RegisterUserConfirmPasswordValidator.java
License:Open Source License
public RegisterUserConfirmPasswordValidator(FormComponent passwordField, FormComponent confirmPasswordField) { this.passwordField = passwordField; this.confirmPasswordField = confirmPasswordField; if (logger.isDebugEnabled()) { logger.debug("passwordField modelObject : " + passwordField.getModelObject()); logger.debug("confirmPasswordField modelObject : " + confirmPasswordField.getModelObject()); }//from w ww . j a va2s . c o m }
From source file:gr.interamerican.wicket.utils.WicketUtils.java
License:Open Source License
/** * Validates that a form component is not null. * /* ww w . j av a 2s .c o m*/ * An error resource key that consists of error.formComponentId * must be defined relevant to the owner component. * * @param owner * Owner component that does the validation and the resource key * is defined relevant to it. * @param formComponent * For component being validated. */ public static void validateNotNull(Component owner, FormComponent<?> formComponent) { if (formComponent.getModelObject() == null) { String resourceKey = "error." + formComponent.getId(); //$NON-NLS-1$ error(owner, resourceKey); } }
From source file:gr.interamerican.wicket.utils.WicketUtils.java
License:Open Source License
/** * Validates that a form component is not null. * * @param owner//from w w w . j a v a 2 s. c om * Owner component that does the validation and the resource key * is defined relevant to it. * @param resourceKey * Resource key for the resource message. The resource key must be * relevant to the owner component. * @param formComponents * Form components being validated. */ public static void validateNotNull(Component owner, String resourceKey, FormComponent<?>... formComponents) { for (FormComponent<?> formComponent : formComponents) { if (formComponent.getModelObject() == null) { error(owner, resourceKey); } } }
From source file:ontopoly.pages.ModalFindPage.java
License:Apache License
private WebMarkupContainer createSearchTab() { WebMarkupContainer searchTab = new WebMarkupContainer("searchTab"); searchTab.setOutputMarkupId(true);/*from w w w . j a va 2 s.c om*/ final TextField<String> searchTermField = new TextField<String>("searchTerm", new Model<String>(null)); searchTermField.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { // do nothing here as we only want the server to be notified } }); searchTab.add(searchTermField); final WebMarkupContainer resultsContainer = new WebMarkupContainer("resultsContainer"); resultsContainer.setOutputMarkupId(true); searchTab.add(resultsContainer); this.results = new LoadableDetachableModel<List<Topic>>() { @Override protected List<Topic> load() { String searchTerm = (String) searchTermField.getModelObject(); if (searchTerm == null) { return Collections.emptyList(); } else { try { FieldInstance fieldInstance = fieldInstanceModel.getFieldInstance(); RoleField associationField = (RoleField) fieldInstance.getFieldAssignment() .getFieldDefinition(); RoleField otherField = (RoleField) associationField.getFieldsForOtherRoles().iterator() .next(); return otherField.searchAllowedPlayers(searchTerm); } catch (Exception e) { errorInSearch = true; return Collections.emptyList(); } } } }; Button searchButton = new Button("search"); searchButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { results.detach(); target.addComponent(resultsContainer); } }); searchTab.add(searchButton); final FormComponent<? extends Object> checkGroup; final boolean maxOneCardinality = isMaxOneCardinality(); if (maxOneCardinality) { checkGroup = new RadioGroup<String>("checkGroup", new Model<String>()); } else { checkGroup = new CheckGroup<String>("checkGroup", new HashSet<String>()); } checkGroup.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { // notify server when selection is made } }); resultsContainer.add(checkGroup); final WebMarkupContainer unsuccessfulSearchContainer = new WebMarkupContainer( "unsuccessfulSearchContainer") { public boolean isVisible() { IModel<String> model = searchTermField.getModel(); if (model == null) return false; return !(model.getObject() == null || model.getObject().equals("")) && ((List<Topic>) results.getObject()).isEmpty(); } }; unsuccessfulSearchContainer.setOutputMarkupPlaceholderTag(true); checkGroup.add(unsuccessfulSearchContainer); Label message = new Label("message", new ResourceModel(errorInSearch ? "search.error" : "search.empty")); unsuccessfulSearchContainer.add(message); ListView<Topic> listView = new ListView<Topic>("results", results) { public void populateItem(ListItem<Topic> item) { Topic hit = item.getModelObject(); if (maxOneCardinality) { Radio<String> check = new Radio<String>("check", new Model<String>(hit.getId())) { @Override protected void onComponentTag(final ComponentTag tag) { tag.put("type", "radio"); super.onComponentTag(tag); } }; item.add(check); } else { Check<String> check = new Check<String>("check", new Model<String>(hit.getId())) { @Override protected void onComponentTag(final ComponentTag tag) { tag.put("type", "checkbox"); super.onComponentTag(tag); } }; item.add(check); } item.add(new Label("topic", new Model<String>(hit.getName()))); item.add(new Label("type", new Model<String>(((TopicType) hit.getTopicTypes().iterator().next()).getName()))); } }; checkGroup.add(listView); Button closeOkButton = new Button("closeOK"); closeOkButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { Object modelObject = checkGroup.getModelObject(); Collection selected; if (modelObject instanceof String) selected = Collections.singleton(modelObject); else selected = (Collection) modelObject; if (selected == null) selected = Collections.emptyList(); // add associations for selected topics onSelectionConfirmed(target, selected); onCloseOk(target); // reset search term field searchTermField.getDefaultModel().setObject(null); } }); searchTab.add(closeOkButton); Button closeCancelButton = new Button("closeCancel"); closeCancelButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { onCloseCancel(target); // reset search term field searchTermField.getDefaultModel().setObject(null); } }); searchTab.add(closeCancelButton); return searchTab; }
From source file:ontopoly.pages.ModalFindPage.java
License:Apache License
private WebMarkupContainer createBrowseTab() { final WebMarkupContainer browseTab = new WebMarkupContainer("browseTab"); browseTab.setOutputMarkupId(true);/*from ww w. j a v a2 s .c o m*/ this.playerTypesChoicesModel = new LoadableDetachableModel<List<TopicType>>() { @Override protected List<TopicType> load() { // TODO: should merge with PlayerTypesModel.java (extend to filter my large instance types) FieldInstance fieldInstance = fieldInstanceModel.getFieldInstance(); RoleField associationField = (RoleField) fieldInstance.getFieldAssignment().getFieldDefinition(); // FIXME: this doesn't work for n+ary fields RoleField otherField = (RoleField) associationField.getFieldsForOtherRoles().iterator().next(); TopicMap tm = associationField.getTopicMap(); // include all topic types except those with large instance sets Collection<TopicType> allowedValueTypes = otherField.getDeclaredPlayerTypes(); Collection<TopicType> largeInstanceSets = tm.getTopicTypesWithLargeInstanceSets(); List<TopicType> topicTypes = new ArrayList<TopicType>(allowedValueTypes.size()); Iterator<TopicType> iter = allowedValueTypes.iterator(); while (iter.hasNext()) { TopicType topicType = iter.next(); if (!largeInstanceSets.contains(topicType)) topicTypes.add(topicType); } return topicTypes; } }; List<TopicType> playerTypes = playerTypesChoicesModel.getObject(); TopicType selectedType = playerTypes.size() == 1 ? playerTypes.get(0) : null; this.selectedTypeModel = new TopicModel<TopicType>(selectedType, TopicModel.TYPE_TOPIC_TYPE); final WebMarkupContainer resultsContainer = new WebMarkupContainer("resultsContainer"); resultsContainer.setOutputMarkupId(true); browseTab.add(resultsContainer); final FormComponent checkGroup; final Model<String> radioGroupModel = new Model<String>(); final Collection<String> checkGroupModel = new HashSet<String>(); final boolean maxOneCardinality = isMaxOneCardinality(); if (maxOneCardinality) { checkGroup = new RadioGroup<String>("checkGroup", radioGroupModel); } else { checkGroup = new CheckGroup<String>("checkGroup", checkGroupModel); } final AjaxParentFormChoiceComponentUpdatingBehavior apfc = new AjaxParentFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { // notify server when selection is made } }; checkGroup.add(apfc); resultsContainer.add(checkGroup); // create a tree final TreePanel treePanel = new TreePanel("results", getTreeModel(null)) { @Override protected Component populateNode(String id, TreeNode treeNode) { DefaultMutableTreeNode mTreeNode = (DefaultMutableTreeNode) treeNode; final TopicNode node = (TopicNode) mTreeNode.getUserObject(); Topic selectedType = selectedTypeModel.getTopic(); final boolean selectable = node.getTopic().isInstanceOf(selectedType); // create link with label return new CheckLabelPanel(id) { @Override protected Component newCheck(String id) { if (maxOneCardinality) { return new AjaxParentRadioChild<String>(id, new Model<String>(node.getTopicId()), apfc) { @Override public boolean isVisible() { return selectable; } @Override protected void onComponentTag(final ComponentTag tag) { tag.put("type", "radio"); super.onComponentTag(tag); } }; } else { return new AjaxParentCheckChild(id, new Model<String>(node.getTopicId()), apfc) { @Override public boolean isVisible() { return selectable; } @Override protected void onComponentTag(final ComponentTag tag) { tag.put("type", "checkbox"); super.onComponentTag(tag); } }; } } @Override protected Label newLabel(String id) { Label label = new Label(id, new Model<String>(node.getName())); label.setRenderBodyOnly(false); return label; } }; } }; treePanel.setOutputMarkupId(true); checkGroup.add(treePanel); // NOTE: need to readd model here because page, which we depend on // in the construction of the tree model, is not available in // TreePanel constructor if (this.selectedTypeModel != null) treePanel.setDefaultModel(getTreeModel(selectedType)); final TopicDropDownChoice<TopicType> playerTypesDropDown = new TopicDropDownChoice<TopicType>("playerTypes", this.selectedTypeModel, playerTypesChoicesModel); playerTypesDropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") { protected void onUpdate(AjaxRequestTarget target) { // replace tree model TopicType topicType = (TopicType) playerTypesDropDown.getDefaultModelObject(); treePanel.setDefaultModel(getTreeModel(topicType)); target.addComponent(resultsContainer); } }); browseTab.add(playerTypesDropDown); Button closeOkButton = new Button("closeOK"); closeOkButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { Object modelObject = checkGroup.getModelObject(); Collection selected; if (modelObject instanceof String) selected = Collections.singleton(modelObject); else selected = (Collection) modelObject; if (selected == null) selected = Collections.EMPTY_LIST; // add associations for selected topics onSelectionConfirmed(target, selected); onCloseOk(target); // reset selected topic type, choice group and tree model selectedTypeModel.setObject(null); treePanel.setDefaultModel(getTreeModel(null)); radioGroupModel.setObject(null); checkGroupModel.clear(); } }); browseTab.add(closeOkButton); Button closeCancelButton = new Button("closeCancel"); closeCancelButton.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override protected void onUpdate(AjaxRequestTarget target) { onCloseCancel(target); // reset selected topic type, choice group and tree model selectedTypeModel.setObject(null); treePanel.setDefaultModel(getTreeModel(null)); radioGroupModel.setObject(null); checkGroupModel.clear(); } }); browseTab.add(closeCancelButton); return browseTab; }
From source file:org.artifactory.common.wicket.component.table.columns.checkbox.AjaxCheckboxColumn.java
License:Open Source License
@Override protected FormComponent<Boolean> newCheckBox(String id, IModel<Boolean> model, final T rowObject) { final FormComponent<Boolean> checkbox = super.newCheckBox(id, model, rowObject); checkbox.add(new AjaxFormComponentUpdatingBehavior("onclick") { @Override//w w w .j a va 2 s .co m protected void onUpdate(AjaxRequestTarget target) { Boolean checked = checkbox.getModelObject(); AjaxCheckboxColumn.this.onUpdate(checkbox, rowObject, checked, target); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return AjaxCheckboxColumn.this.getAjaxCallDecorator(); } }); return checkbox; }
From source file:org.dcm4chee.web.war.common.UIDFieldBehavior.java
License:LGPL
@SuppressWarnings("unchecked") @Override/*from ww w . ja va 2s. c o m*/ protected final void onEvent(final AjaxRequestTarget target) { final FormComponent<String> formComponent = (FormComponent<String>) getComponent(); boolean b = QueryUtil.isUniversalMatch(formComponent.getModelObject()); try { formComponent.inputChanged(); formComponent.validate(); if (formComponent.hasErrorMessage()) { formComponent.invalid(); } else { formComponent.valid(); formComponent.updateModel(); if (b != QueryUtil.isUniversalMatch(formComponent.getModelObject())) { updateOtherFields(target.getPage().getRequest().getParameterMap(), formComponent.getInputName()); addToTarget(target); } } } catch (RuntimeException e) { onError(target, e); } }