private void removeValue(AjaxRequestTarget target) { ValueModel valueModel = model.getObject(); FieldModel fieldModel = valueModel.getField(); fieldModel.removeValue(valueModel); ListView listView = findParent(ListView.class); target.add(listView.getParent()); }
protected void initLayout() { final ValueModel valueModel = model.getObject(); FieldDisplayType display = valueModel.getDefaultDisplay(); // todo help Label label = new Label("label", new StringResourceModel(display.getLabel(), null, display.getLabel())); label.add( new AttributeModifier( "style", new AbstractReadOnlyModel<String>() { @Override public String getObject() { if (valueModel.getVisibleValueIndex() > 0) { return "visibility: hidden;"; } return null; } })); if (StringUtils.isNotEmpty(display.getTooltip())) { label.add( new AttributeModifier( "title", new StringResourceModel(display.getTooltip(), null, display.getTooltip()))); } add(label); FieldToken fieldToken = valueModel.getField().getToken(); UiWidget widget = initWidget(fieldToken.getWidget(), display.getProperty()); add(widget); FeedbackPanel feedback = new FeedbackPanel("feedback"); feedback.setFilter(new ComponentFeedbackMessageFilter(widget.getBaseFormComponent())); feedback.setOutputMarkupId(true); add(feedback); AjaxLink addButton = new AjaxLink("addButton") { @Override public void onClick(AjaxRequestTarget target) { addValue(target); } }; addButton.add( new VisibleEnableBehaviour() { @Override public boolean isVisible() { return valueModel.isAddButtonVisible(); } }); add(addButton); AjaxLink removeButton = new AjaxLink("removeButton") { @Override public void onClick(AjaxRequestTarget target) { removeValue(target); } }; removeButton.add( new VisibleEnableBehaviour() { @Override public boolean isVisible() { return valueModel.isRemoveButtonVisible(); } }); add(removeButton); }