Example usage for org.apache.wicket.ajax.markup.html AjaxLink add

List of usage examples for org.apache.wicket.ajax.markup.html AjaxLink add

Introduction

In this page you can find the example usage for org.apache.wicket.ajax.markup.html AjaxLink add.

Prototype

public MarkupContainer add(final Component... children) 

Source Link

Document

Adds the child component(s) to this container.

Usage

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);
}