List of usage examples for org.apache.wicket.ajax.markup.html AjaxLink add
public MarkupContainer add(final Component... children)
From source file:org.obiba.onyx.quartz.core.wicket.wizard.QuestionnaireWizardForm.java
License:Open Source License
private AjaxLink createInterrupt() { AjaxLink link = new AjaxLink("interrupt") { private static final long serialVersionUID = 0L; @Override//from w w w . j a v a 2 s . c o m public void onClick(AjaxRequestTarget target) { onInterrupt(target); } }; link.add(new AttributeModifier("value", true, new StringResourceModel("Interrupt", QuestionnaireWizardForm.this, null))); return link; }
From source file:org.obiba.onyx.quartz.editor.openAnswer.OpenAnswerPanel.java
License:Open Source License
public OpenAnswerPanel(String id, IModel<OpenAnswerDefinition> model, IModel<Category> categoryModel, final IModel<Question> questionModel, final IModel<Questionnaire> questionnaireModel, IModel<LocaleProperties> localePropertiesModel, final FeedbackPanel feedbackPanel, final FeedbackWindow feedbackWindow) { super(id, model); this.questionModel = questionModel; this.questionnaireModel = questionnaireModel; this.localePropertiesModel = localePropertiesModel; this.feedbackPanel = feedbackPanel; this.feedbackWindow = feedbackWindow; final Question question = questionModel.getObject(); final Category category = categoryModel.getObject(); final OpenAnswerDefinition openAnswer = model.getObject(); validatorWindow = new ModalWindow("validatorWindow"); validatorWindow.setCssClassName("onyx"); validatorWindow.setInitialWidth(850); validatorWindow.setInitialHeight(300); validatorWindow.setResizable(true);//from ww w . ja v a2 s .c o m validatorWindow.setTitle(new ResourceModel("Validator")); add(validatorWindow); initialName = model.getObject().getName(); final TextField<String> name = new TextField<String>("name", new PropertyModel<String>(model, "name")); name.setLabel(new ResourceModel("Name")); name.add(new RequiredFormFieldBehavior()); name.add(new PatternValidator(QuartzEditorPanel.ELEMENT_NAME_PATTERN)); name.add(new AbstractValidator<String>() { @Override protected void onValidate(IValidatable<String> validatable) { if (!StringUtils.equals(initialName, validatable.getValue())) { boolean alreadyContains = false; if (category != null) { Map<String, OpenAnswerDefinition> openAnswerDefinitionsByName = category .getOpenAnswerDefinitionsByName(); alreadyContains = openAnswerDefinitionsByName.containsKey(validatable.getValue()) && openAnswerDefinitionsByName.get(validatable.getValue()) != openAnswer; } QuestionnaireFinder questionnaireFinder = QuestionnaireFinder .getInstance(questionnaireModel.getObject()); questionnaireModel.getObject().setQuestionnaireCache(null); OpenAnswerDefinition findOpenAnswerDefinition = questionnaireFinder .findOpenAnswerDefinition(validatable.getValue()); if (alreadyContains || findOpenAnswerDefinition != null && findOpenAnswerDefinition != openAnswer) { error(validatable, "OpenAnswerAlreadyExists"); } } } }); add(name).add(new SimpleFormComponentLabel("nameLabel", name)); add(new HelpTooltipPanel("nameHelp", new ResourceModel("Name.Tooltip"))); variable = new TextField<String>("variable", new MapModel<String>( new PropertyModel<Map<String, String>>(model, "variableNames"), question.getName())); variable.setLabel(new ResourceModel("Variable")); add(variable).add(new SimpleFormComponentLabel("variableLabel", variable)); add(new HelpTooltipPanel("variableHelp", new ResourceModel("Variable.Tooltip"))); if (category == null) { variableNameBehavior = new VariableNameBehavior(name, variable, question.getParentQuestion(), question, null) { @Override @SuppressWarnings("hiding") protected String generateVariableName(Question parentQuestion, Question question, Category category, String name) { if (StringUtils.isBlank(name)) return ""; if (category != null) { return super.generateVariableName(parentQuestion, question, category, name); } String variableName = parentQuestion == null ? "" : parentQuestion.getName() + "."; if (question != null) { variableName += question.getName() + "." + question.getName() + "."; } return variableName + StringUtils.trimToEmpty(name); } }; } else { variableNameBehavior = new VariableNameBehavior(name, variable, question.getParentQuestion(), question, category); } add(variableNameBehavior); List<DataType> typeChoices = new ArrayList<DataType>(Arrays.asList(DataType.values())); typeChoices.remove(DataType.BOOLEAN); typeChoices.remove(DataType.DATA); dataTypeDropDown = new DropDownChoice<DataType>("dataType", new PropertyModel<DataType>(model, "dataType"), typeChoices, new IChoiceRenderer<DataType>() { @Override public Object getDisplayValue(DataType type) { return new StringResourceModel("DataType." + type, OpenAnswerPanel.this, null).getString(); } @Override public String getIdValue(DataType type, int index) { return type.name(); } }); dataTypeDropDown.setLabel(new ResourceModel("DataType")); dataTypeDropDown.add(new RequiredFormFieldBehavior()); dataTypeDropDown.setNullValid(false); add(dataTypeDropDown).add(new SimpleFormComponentLabel("dataTypeLabel", dataTypeDropDown)); // add(new HelpTooltipPanel("dataTypeHelp", new ResourceModel("DataType.Tooltip"))); TextField<String> unit = new TextField<String>("unit", new PropertyModel<String>(model, "unit")); unit.setLabel(new ResourceModel("Unit")); add(unit).add(new SimpleFormComponentLabel("unitLabel", unit)); add(new HelpTooltipPanel("unitHelp", new ResourceModel("Unit.Tooltip"))); PatternValidator numericPatternValidator = new PatternValidator("\\d*"); // ui Arguments Integer size = openAnswer.getInputSize(); sizeField = new TextField<String>("size", new Model<String>(size == null ? null : String.valueOf(size))); sizeField.add(numericPatternValidator); sizeField.setLabel(new ResourceModel("SizeLabel")); add(new SimpleFormComponentLabel("sizeLabel", sizeField)); add(sizeField); Integer rows = openAnswer.getInputNbRows(); rowsField = new TextField<String>("rows", new Model<String>(rows == null ? null : String.valueOf(rows))); rowsField.add(numericPatternValidator); rowsField.setLabel(new ResourceModel("RowsLabel")); add(new SimpleFormComponentLabel("rowsLabel", rowsField)); add(rowsField); localePropertiesUtils.load(localePropertiesModel.getObject(), questionnaireModel.getObject(), openAnswer); Map<String, Boolean> visibleStates = new HashMap<String, Boolean>(); if (openAnswer.isSuggestionAnswer()) { for (String item : new OpenAnswerDefinitionSuggestion(openAnswer).getSuggestionItems()) { visibleStates.put(item, false); } } add(labelsPanel = new LabelsPanel("labels", localePropertiesModel, model, feedbackPanel, feedbackWindow, null, visibleStates)); CheckBox requiredCheckBox = new CheckBox("required", new PropertyModel<Boolean>(model, "required")); requiredCheckBox.setLabel(new ResourceModel("AnswerRequired")); add(requiredCheckBox); add(new SimpleFormComponentLabel("requiredLabel", requiredCheckBox)); // min/max validators String maxValue = null, minValue = null, patternValue = null; for (IDataValidator<?> dataValidator : openAnswer.getDataValidators()) { IValidator<?> validator = dataValidator.getValidator(); if (validator instanceof RangeValidator<?>) { RangeValidator<?> rangeValidator = (RangeValidator<?>) validator; Object minimum = rangeValidator.getMinimum(); Object maximum = rangeValidator.getMaximum(); if (dataValidator.getDataType() == DataType.DATE) { if (minimum != null) minValue = onyxSettings.getDateFormat().format((Date) minimum); if (maximum != null) maxValue = onyxSettings.getDateFormat().format((Date) maximum); } else { if (minimum != null) minValue = String.valueOf(minimum); if (maximum != null) maxValue = String.valueOf(maximum); } } else if (validator instanceof StringValidator.MaximumLengthValidator) { int maximum = ((StringValidator.MaximumLengthValidator) validator).getMaximum(); if (maximum > 0) maxValue = String.valueOf(maximum); } else if (validator instanceof MaximumValidator<?>) { Object maximum = ((MaximumValidator<?>) validator).getMaximum(); if (dataValidator.getDataType() == DataType.DATE) { if (maximum != null) maxValue = onyxSettings.getDateFormat().format((Date) maximum); } else { if (maximum != null) maxValue = String.valueOf(maximum); } } else if (validator instanceof StringValidator.MinimumLengthValidator) { int minimum = ((StringValidator.MinimumLengthValidator) validator).getMinimum(); if (minimum > 0) minValue = String.valueOf(minimum); } else if (validator instanceof MinimumValidator<?>) { Object minimum = ((MinimumValidator<?>) validator).getMinimum(); if (dataValidator.getDataType() == DataType.DATE) { if (minimum != null) minValue = onyxSettings.getDateFormat().format((Date) minimum); } else { if (minimum != null) minValue = String.valueOf(minimum); } } else if (validator instanceof PatternValidator) { patternValue = ((PatternValidator) validator).getPattern().toString(); } } patternField = new TextField<String>("patternValidator", new Model<String>(patternValue)); patternField.setLabel(new ResourceModel("PatternLabel")); patternField.setOutputMarkupId(true); add(new SimpleFormComponentLabel("patternLabel", patternField)); add(patternField); minMaxContainer = new WebMarkupContainer("minMaxContainer"); minMaxContainer.setOutputMarkupId(true); add(minMaxContainer); minLength = new TextField<String>("minLength", new Model<String>(minValue), String.class); minLength.setLabel(new ResourceModel("Minimum.length")); minMaxContainer.add(minLength); maxLength = new TextField<String>("maxLength", new Model<String>(maxValue), String.class); maxLength.setLabel(new ResourceModel("Maximum.length")); minMaxContainer.add(maxLength); minNumeric = new TextField<String>("minNumeric", new Model<String>(minValue), String.class); minNumeric.setLabel(new ResourceModel("Minimum")); minNumeric.add(numericPatternValidator); minMaxContainer.add(minNumeric); maxNumeric = new TextField<String>("maxNumeric", new Model<String>(maxValue), String.class); maxNumeric.setLabel(new ResourceModel("Maximum")); maxNumeric.add(numericPatternValidator); minMaxContainer.add(maxNumeric); PatternValidator decimalPatternValidator = new PatternValidator("\\d*(\\.\\d+)?"); minDecimal = new TextField<String>("minDecimal", new Model<String>(minValue), String.class); minDecimal.setLabel(new ResourceModel("Minimum")); minDecimal.add(decimalPatternValidator); minMaxContainer.add(minDecimal); maxDecimal = new TextField<String>("maxDecimal", new Model<String>(maxValue), String.class); maxDecimal.setLabel(new ResourceModel("Maximum")); maxDecimal.add(decimalPatternValidator); minMaxContainer.add(maxDecimal); String patternStr = onyxSettings.getDateFormat().toPattern(); beforeDate = new TextField<String>("beforeDate", new Model<String>(maxValue), String.class); beforeDate.setLabel(new Model<String>( new StringResourceModel("Before", this, null).getObject() + " (" + patternStr + ")")); minMaxContainer.add(beforeDate); afterDate = new TextField<String>("afterDate", new Model<String>(minValue), String.class); afterDate.setLabel(new Model<String>( new StringResourceModel("After", this, null).getObject() + " (" + patternStr + ")")); minMaxContainer.add(afterDate); minMaxContainer.add(minimumLabel = new SimpleFormComponentLabel("minimumLabel", minLength)); minMaxContainer.add(maximumLabel = new SimpleFormComponentLabel("maximumLabel", maxLength)); setMinMaxLabels(dataTypeDropDown.getModelObject()); add(validators = new OnyxEntityList<ComparingDataSource>("validators", new ValidationDataSourcesProvider(), new ValidationDataSourcesColumnProvider(), new ResourceModel("Validators"))); AjaxLink<Void> addValidator = new AjaxLink<Void>("addValidator") { @Override public void onClick(AjaxRequestTarget target) { if (dataTypeDropDown.getModelObject() == null) { info(new StringResourceModel("SelectDataTypeFirst", OpenAnswerPanel.this, null).getString()); feedbackWindow.setContent(feedbackPanel); feedbackWindow.show(target); } else { validatorWindow.setContent(new ValidationDataSourceWindow("content", new Model<ComparingDataSource>(), questionModel, questionnaireModel, dataTypeDropDown.getModelObject(), validatorWindow) { @Override protected void onSave(@SuppressWarnings("hiding") AjaxRequestTarget target, ComparingDataSource comparingDataSource) { openAnswer.addValidationDataSource(comparingDataSource); target.addComponent(validators); } }); validatorWindow.show(target); } } }; addValidator.setOutputMarkupId(true); add(addValidator.add(new Image("img", Images.ADD))); dataTypeDropDown.add(new OnChangeAjaxBehavior() { @SuppressWarnings("incomplete-switch") @Override protected void onUpdate(AjaxRequestTarget target) { setFieldType(); String value = dataTypeDropDown.getValue(); // use value because model is not set if validation error DataType valueOf = DataType.valueOf(value); if (value != null) { OpenAnswerDefinition openAnswerDefinition = (OpenAnswerDefinition) getDefaultModelObject(); for (Data data : openAnswerDefinition.getDefaultValues()) { switch (valueOf) { case DATE: try { onyxSettings.getDateFormat().parse(data.getValueAsString()); } catch (ParseException nfe) { error(new StringResourceModel("InvalidCastType", OpenAnswerPanel.this, null) .getObject()); showFeedbackErrorAndReset(target); return; } break; case DECIMAL: try { Double.parseDouble(data.getValueAsString()); } catch (NumberFormatException nfe) { error(new StringResourceModel("InvalidCastType", OpenAnswerPanel.this, null) .getObject()); showFeedbackErrorAndReset(target); return; } break; case INTEGER: if (data.getType() == DataType.DECIMAL) { Double d = data.getValue(); if (d != d.longValue()) { error(new StringResourceModel("InvalidCastType", OpenAnswerPanel.this, null) .getObject()); showFeedbackErrorAndReset(target); return; } } else { try { Long.parseLong(data.getValueAsString()); } catch (NumberFormatException nfe) { error(new StringResourceModel("InvalidCastType", OpenAnswerPanel.this, null) .getObject()); showFeedbackErrorAndReset(target); return; } } break; case TEXT: break; } } for (Data data : openAnswerDefinition.getDefaultValues()) { switch (valueOf) { case DATE: try { data.setTypeAndValue(valueOf, onyxSettings.getDateFormat().parse(data.getValueAsString())); } catch (ParseException e) { throw new RuntimeException(e); } break; case DECIMAL: data.setTypeAndValue(valueOf, Double.parseDouble(data.getValueAsString())); break; case INTEGER: if (data.getType() == DataType.DECIMAL) { data.setTypeAndValue(valueOf, ((Double) data.getValue()).longValue()); } else { data.setTypeAndValue(valueOf, Integer.parseInt(data.getValueAsString())); } break; case TEXT: data.setTypeAndValue(valueOf, data.getType() == DataType.DATE ? onyxSettings.getDateFormat().format(data.getValue()) : data.getValueAsString()); break; } } } setMinMaxLabels(value == null ? null : valueOf); target.addComponent(minMaxContainer); target.addComponent(patternField); defaultValuesList.refreshList(target); } private void showFeedbackErrorAndReset(AjaxRequestTarget target) { dataTypeDropDown.setModelObject(openAnswer.getDefaultValues().get(0).getType()); target.addComponent(dataTypeDropDown); OpenAnswerPanel.this.feedbackWindow.setContent(OpenAnswerPanel.this.feedbackPanel); OpenAnswerPanel.this.feedbackWindow.show(target); } }); final IModel<String> addDefaultValuesModel = new Model<String>(); List<ITab> tabs = new ArrayList<ITab>(); tabs.add(new AbstractTab(new ResourceModel("Add.simple")) { @Override public Panel getPanel(String panelId) { return new SimpleAddPanel(panelId, addDefaultValuesModel); } }); tabs.add(new AbstractTab(new ResourceModel("Add.bulk")) { @Override public Panel getPanel(String panelId) { return new BulkAddPanel(panelId, addDefaultValuesModel); } }); add(new AjaxTabbedPanel("addTabs", tabs)); defaultValuesList = new SortableList<Data>("defaultValues", openAnswer.getDefaultValues(), true) { @Override public Component getItemTitle(@SuppressWarnings("hiding") String id, Data data) { return new Label(id, data.getType() == DataType.DATE ? onyxSettings.getDateFormat().format(data.getValue()) : data.getValueAsString()); } @Override public void editItem(Data t, AjaxRequestTarget target) { } @SuppressWarnings("unchecked") @Override public void deleteItem(final Data data, AjaxRequestTarget target) { ((OpenAnswerDefinition) OpenAnswerPanel.this.getDefaultModelObject()).removeDefaultData(data); for (Locale locale : OpenAnswerPanel.this.localePropertiesModel.getObject().getLocales()) { List<KeyValue> list = OpenAnswerPanel.this.localePropertiesModel.getObject() .getElementLabels(openAnswer).get(locale); Collection<KeyValue> toDelete = Collections2.filter(list, new Predicate<KeyValue>() { @Override public boolean apply(KeyValue input) { return input.getKey().equals(data.getValue().toString()); } }); list.remove(toDelete.iterator().next()); } OpenAnswerPanel.this.addOrReplace( labelsPanel = new LabelsPanel("labels", OpenAnswerPanel.this.localePropertiesModel, (IModel<OpenAnswerDefinition>) OpenAnswerPanel.this.getDefaultModel(), OpenAnswerPanel.this.feedbackPanel, OpenAnswerPanel.this.feedbackWindow)); target.addComponent(labelsPanel); refreshList(target); } @Override public Button[] getButtons() { return null; } }; add(defaultValuesList); add(new HelpTooltipPanel("defaultValuesHelp", new ResourceModel("DefaultValues.Tooltip"))); }
From source file:org.obiba.onyx.quartz.editor.questionnaire.EditionPanel.java
License:Open Source License
private ListView<MenuItem> createMenu(List<MenuItem> menuItems) { ListView<MenuItem> listView = new ListView<EditionPanel.MenuItem>("menu", menuItems == null ? new ArrayList<MenuItem>() : menuItems) { @Override//from w ww. ja va 2 s. co m protected void populateItem(ListItem<MenuItem> item) { final MenuItem menuItem = item.getModelObject(); AjaxLink<Void> ajaxLink = new AjaxLink<Void>("button") { @Override public void onClick(AjaxRequestTarget target) { menuItem.onClick(target); } }; ajaxLink.add(new Image("buttonImg", menuItem.getImg())); ajaxLink.add(new TooltipBehavior(menuItem.getTitle())); item.add(ajaxLink); } }; listView.setVisible(menuItems != null && menuItems.size() > 0); return listView; }
From source file:org.obiba.onyx.quartz.editor.questionnaire.QuestionnaireListPanel.java
License:Open Source License
public QuestionnaireListPanel(String id) { super(id);/*from ww w.ja v a2s . c o m*/ add(CSSPackageResource.getHeaderContribution(QuestionnaireListPanel.class, "QuestionnaireListPanel.css")); modalWindow = new ModalWindow("modalWindow"); modalWindow.setCssClassName("onyx"); modalWindow.setInitialWidth(1100); modalWindow.setInitialHeight(801); modalWindow.setResizable(true); modalWindow.setTitle(new ResourceModel("Questionnaire")); uploadWindow = new ModalWindow("uploadWindow"); uploadWindow.setCssClassName("onyx"); uploadWindow.setInitialWidth(500); uploadWindow.setInitialHeight(150); uploadWindow.setResizable(false); add(uploadWindow); Form<?> form = new Form<Void>("form"); form.setMultiPart(false); form.add(modalWindow); add(form); add(questionnaireList = new OnyxEntityList<Questionnaire>("questionnaires", new QuestionnaireProvider(), new QuestionnaireListColumnProvider(), new ResourceModel("Questionnaires"))); add(deleteConfirm = new ConfirmationDialog("deleteConfirm")); deleteConfirm.setTitle(new StringResourceModel("ConfirmDelete", this, null)); deleteConfirm.setContent(new MultiLineLabel(deleteConfirm.getContentId(), new ResourceModel("DeleteQuestionnaireConfirmInfos"))); add(new IndicatingAjaxLink<Void>("addQuestionnaire") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { Questionnaire newQuestionnaire = new Questionnaire( new StringResourceModel("NewQuestionnaire", QuestionnaireListPanel.this, null).getString(), "1.0"); newQuestionnaire.setConvertedToMagmaVariables(true); Model<Questionnaire> questionnaireModel = new Model<Questionnaire>(newQuestionnaire); final EditionPanel editionPanel = new EditionPanel("content", questionnaireModel, true); QuestionnairePanel rightPanel = new QuestionnairePanel(EditionPanel.RIGHT_PANEL, questionnaireModel, true) { private static final long serialVersionUID = 1L; @Override public void prepareSave(AjaxRequestTarget target, Questionnaire questionnaire) { } @Override public void onSave(@SuppressWarnings("hiding") AjaxRequestTarget target, Questionnaire questionnaire) { editionPanel.restoreDefaultRightPanel(target); target.addComponent(editionPanel.getTree()); editionPanel.setNewQuestionnaire(false); } @Override public void onCancel(@SuppressWarnings("hiding") AjaxRequestTarget target) { modalWindow.close(target); } }; editionPanel.setRightPanel(rightPanel, new Model<String>(""), null, null); modalWindow.setTitle(newQuestionnaire.getName()); modalWindow.setContent(editionPanel); modalWindow.setCloseButtonCallback(new ModalWindow.CloseButtonCallback() { private static final long serialVersionUID = 1L; @Override public boolean onCloseButtonClicked(@SuppressWarnings("hiding") AjaxRequestTarget target) { target.addComponent(questionnaireList); // reload questionnaire list return true; // same as cancel } }); modalWindow.show(target); } }.add(new Image("addImg", Images.ADD))); AjaxLink<?> uploadLink = new AjaxLink<Void>("uploadQuestionnaire") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { uploadWindow.setTitle(new ResourceModel("UploadNewQuestionnaire")); uploadWindow.setContent(new UploadQuestionnairePanel("content", uploadWindow) { private static final long serialVersionUID = 1L; @Override protected void onSave(@SuppressWarnings("hiding") AjaxRequestTarget target) { target.addComponent(questionnaireList); } }); uploadWindow.show(target); } }; uploadLink.add(new Image("uploadImg", Images.UPLOAD)); add(uploadLink); }
From source file:org.obiba.onyx.quartz.editor.widget.attributes.AttributesPanel.java
License:Open Source License
public AttributesPanel(String id, final IModel<? extends Attributable> attributable, final List<Locale> locales, final FeedbackPanel feedbackPanel, final FeedbackWindow feedbackWindow) { super(id);// ww w . j a v a 2 s. c o m this.feedbackPanel = feedbackPanel; this.feedbackWindow = feedbackWindow; this.attributable = attributable; this.locales = locales; modalWindow = new ModalWindow("modalWindow"); modalWindow.setTitle(new ResourceModel("Attribute")); modalWindow.setCssClassName("onyx"); modalWindow.setInitialWidth(550); modalWindow.setInitialHeight(300); modalWindow.setResizable(true); modalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { @Override public void onClose(AjaxRequestTarget target) { target.addComponent(attributes); } }); AjaxLink<Serializable> ajaxAddLink = new AjaxLink<Serializable>("addAttribute", new Model<Serializable>()) { @Override public void onClick(AjaxRequestTarget target) { AttributesEditPanel content = new AttributesEditPanel("content", attributable, new Model<FactorizedAttribute>(new FactorizedAttribute(locales)), locales, feedbackPanel, feedbackWindow); modalWindow.setContent(content); modalWindow.show(target); } }; attributes = new OnyxEntityList<FactorizedAttribute>("attributes", new AttributesDataProvider(), new AttributeColumnProvider(), new ResourceModel("Attributes")); ajaxAddLink.add(new Image("addImage", Images.ADD)); add(ajaxAddLink); add(attributes); add(modalWindow); }
From source file:org.obiba.onyx.quartz.editor.widget.sortable.SortableList.java
License:Open Source License
@SuppressWarnings("unchecked") public SortableList(String id, IModel<? extends List<? extends T>> model, final boolean hideEditButton) { super(id, model); add(CSSPackageResource.getHeaderContribution(SortableList.class, "SortableList.css")); ListView<T> listView = new ListView<T>("listView", model) { @Override/*from w ww . j a v a2 s . c o m*/ protected void populateItem(ListItem<T> item) { item.setOutputMarkupId(true); final T t = item.getModelObject(); item.add(getItemTitle("item", t)); Image editImg = new Image("editImg", Images.EDIT); editImg.add(new AttributeModifier("title", true, new ResourceModel("Edit"))); AjaxLink<Void> editAjaxLink = new AjaxLink<Void>("editItem") { @Override public void onClick(AjaxRequestTarget target) { editItem(t, target); } }; editAjaxLink.setVisible(!hideEditButton); item.add(editAjaxLink.add(editImg)); Image deleteImg = new Image("deleteImg", Images.DELETE); deleteImg.add(new AttributeModifier("title", true, new ResourceModel("Delete"))); item.add(new AjaxLink<Void>("deleteItem") { @Override public void onClick(AjaxRequestTarget target) { deleteItem(t, target); } }.add(deleteImg)); itemByMarkupId.put(item.getMarkupId(), t); } }; listContainer = new WebMarkupContainer("listContainer") { @Override protected void onBeforeRender() { super.onBeforeRender(); final IModel<Map<String, Object>> variablesModel = new AbstractReadOnlyModel<Map<String, Object>>() { private Map<String, Object> variables; @Override public Map<String, Object> getObject() { if (variables == null) { this.variables = new MiniMap<String, Object>(2); variables.put("listMarkupId", listContainer.getMarkupId()); variables.put("callbackUrl", toArrayBehavior.getCallbackUrl()); } return variables; } }; PackagedTextTemplate jsTemplate = new PackagedTextTemplate(SortableList.class, "SortableList.js"); final Label jsScript = new Label("sortableJs", new JavaScriptTemplate(jsTemplate).asString(variablesModel.getObject())); jsScript.setEscapeModelStrings(false); listContainer.addOrReplace(jsScript); } }; listContainer.add(toArrayBehavior = new ToArrayBehavior()); listContainer.setOutputMarkupId(true); listContainer.add(listView); add(listContainer); listContainer.add(new AbstractBehavior() { @Override public void renderHead(IHeaderResponse response) { response.renderOnLoadJavascript("Wicket.Sortable.create" + listContainer.getMarkupId() + "('" + listContainer.getMarkupId() + "')"); } }); add(new ListView<Button>("buttons", getButtons() == null ? Collections.EMPTY_LIST : Arrays.asList(getButtons())) { @Override protected void populateItem(ListItem<Button> item) { item.add(new ButtonFragment("button", item.getModel())); } }); listContainer.addOrReplace(new WebMarkupContainer("sortableJs")); }
From source file:org.obiba.onyx.ruby.core.wicket.wizard.DeleteBarcodePanel.java
License:Open Source License
private void addDeleteLink() { RegisteredParticipantTube registeredParticipantTube = (RegisteredParticipantTube) DeleteBarcodePanel.this .getDefaultModelObject();/*www. j a va 2 s. c o m*/ final String barcode = registeredParticipantTube.getBarcode(); final ConfirmationDialog confirmationDialog = new ConfirmationDialog("confirmation-dialog"); add(confirmationDialog); AjaxLink deleteLink = new AjaxLink("link") { private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { Label label = new Label("content", new SpringStringResourceModel("Ruby.Confirm.BarcodeDeletion", new Object[] { barcode }, null)); label.add(new AttributeModifier("class", true, new Model("confirmation-dialog-content"))); confirmationDialog.setContent(label); confirmationDialog.setTitle(new SpringStringResourceModel("Ruby.TubeDeletion")); confirmationDialog.setYesButtonCallback(new OnYesCallback() { private static final long serialVersionUID = -6691702933562884991L; public void onYesButtonClicked(AjaxRequestTarget target) { activeTubeRegistrationService.unregisterTube(barcode); target.addComponent(DeleteBarcodePanel.this.findParent(TubeRegistrationPanel.class)); } }); confirmationDialog.show(target); } }; deleteLink.add(new Label("delete", new SpringStringResourceModel("Ruby.Delete"))); add(deleteLink); }
From source file:org.obiba.onyx.ruby.core.wicket.wizard.EditBarcodePanel.java
License:Open Source License
@SuppressWarnings("serial") private void addEditLink() { AjaxLink editLink = new AjaxLink("link") { @Override// w w w .j a v a 2 s . c om public void onClick(AjaxRequestTarget target) { editSampleDialog.show(target); target.appendJavascript("styleSelectedTubeRemark();"); } }; editLink.add(new Label("edit", new SpringStringResourceModel("Ruby.Edit"))); add(editLink); }
From source file:org.obiba.onyx.ruby.core.wicket.wizard.RubyWizardForm.java
License:Open Source License
public RubyWizardForm(String id, IModel model) { super(id, model); // Add Interrupt button. addInterruptLink();//from w ww. j a va 2s . c om observedContraIndicationStep = new ObservedContraIndicationStep(getStepId()); askedContraIndicationStep = new AskedContraIndicationStep(getStepId()); tubeRegistrationStep = new TubeRegistrationStep(getStepId()); validationStep = new ValidationStep(getStepId()); createModalAdministrationPanel(); // admin button AjaxLink link = new AjaxLink("adminLink") { private static final long serialVersionUID = 0L; @Override public void onClick(AjaxRequestTarget target) { adminWindow.setInterruptState(getInterruptLink().isEnabled()); if (getCancelLink() != null) adminWindow.setCancelState(getCancelLink().isEnabled()); adminWindow.show(target); } }; link.add(new AttributeModifier("value", true, new StringResourceModel("Administration", this, null))); link.add(new AttributeAppender("class", new Model("ui-corner-all"), " ")); add(link); }
From source file:org.obiba.onyx.ruby.core.wicket.wizard.RubyWizardForm.java
License:Open Source License
private void addInterruptLink() { AjaxLink link = new AjaxLink("interrupt") { private static final long serialVersionUID = 0L; @Override//from w w w . j a v a 2 s . c om public void onClick(AjaxRequestTarget target) { onInterrupt(target); } }; link.add(new AttributeModifier("value", true, new StringResourceModel("Interrupt", RubyWizardForm.this, null))); link.add(new AttributeAppender("class", new Model("ui-corner-all"), " ")); add(link); }