Example usage for org.apache.wicket.util.convert.converter AbstractConverter AbstractConverter

List of usage examples for org.apache.wicket.util.convert.converter AbstractConverter AbstractConverter

Introduction

In this page you can find the example usage for org.apache.wicket.util.convert.converter AbstractConverter AbstractConverter.

Prototype

AbstractConverter

Source Link

Usage

From source file:gr.abiss.calipso.wicket.EffortField.java

License:Open Source License

public EffortField(String id, IModel model, boolean required) {
    super(id, null);

    if (model.getObject() != null) {
        effort = new Effort();
        try {//from  w ww.  j a  va2 s  .  c  om
            effort = new Effort(new Integer(model.getObject().toString()));
        } catch (NumberFormatException numberFormatException) {
            effort = new Effort();
        }
    } else {
        effort = new Effort();
    }

    // Days ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    daysField = new TextField("days", new PropertyModel(effort, "days"), Integer.class) {
        @Override
        public IConverter getConverter(Class clazz) {
            return new AbstractConverter() {
                public Object convertToObject(String s, Locale locale) {
                    try {
                        if (s == null || (s != null && s.equals(""))) {
                            s = "0";
                        }
                        effort.setDays(new Integer(s));
                        return effort.getDays();
                    } catch (NumberFormatException numberFormatException) {
                        daysField.error(getLocalizer().getString("effortField.invalidDays", null));
                        return null;
                    }
                }

                @Override
                protected Class getTargetType() {
                    return Integer.class;
                }
            };
        }
    };
    daysField.setRequired(required);
    daysField.add(new ErrorHighlighter());
    add(daysField);
    daysField.setLabel(new ResourceModel("effortField.days"));
    add(new SimpleFormComponentLabel("daysLabel", daysField));

    // Hours ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    hoursField = new TextField("hours", new PropertyModel(effort, "hours"), Integer.class) {
        @Override
        public IConverter getConverter(Class clazz) {
            return new AbstractConverter() {
                public Object convertToObject(String s, Locale locale) {
                    try {
                        if (s == null || (s != null && s.equals(""))) {
                            s = "0";
                        }
                        effort.setHours(new Integer(s));
                        return effort.getHours();
                    } catch (NumberFormatException numberFormatException) {
                        hoursField.error(getLocalizer().getString("effortField.invalidHours", null));
                        return null;
                    }
                }

                @Override
                protected Class getTargetType() {
                    return Integer.class;
                }
            };
        }
    };
    hoursField.setRequired(required);
    hoursField.add(new ErrorHighlighter());
    add(hoursField);
    hoursField.setLabel(new ResourceModel("effortField.hours"));
    add(new SimpleFormComponentLabel("hoursLabel", hoursField));

    // Minutes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    minutesField = new TextField("minutes", new PropertyModel(effort, "minutes"), Integer.class) {
        @Override
        public IConverter getConverter(Class clazz) {
            return new AbstractConverter() {
                public Object convertToObject(String s, Locale locale) {
                    try {
                        if (s == null || (s != null && s.equals(""))) {
                            s = "0";
                        }
                        effort.setMinutes(new Integer(s));
                        return effort.getMinutes();
                    } catch (NumberFormatException numberFormatException) {
                        minutesField.error(getLocalizer().getString("effortField.invalidMinutes", null));
                        return null;
                    }
                }

                @Override
                protected Class getTargetType() {
                    return Integer.class;
                }
            };
        }
    };
    minutesField.setRequired(required);
    minutesField.add(new ErrorHighlighter());
    add(minutesField);
    minutesField.setLabel(new ResourceModel("effortField.minutes"));
    add(new SimpleFormComponentLabel("minutesLabel", minutesField));

    //Total Effort in minutes (Hidden field) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    effortField = new HiddenField("effortField", model, Integer.class) {
        public IConverter getConverter(Class clazz) {
            return new AbstractConverter() {
                public Object convertToObject(String s, Locale locale) {
                    return effort.getEffortInMinutes();
                }

                @Override
                protected Class getTargetType() {
                    return Integer.class;
                }
            };
        };
    };
    add(effortField);

}

From source file:gr.abiss.calipso.wicket.yui.YuiCalendar.java

License:Open Source License

public YuiCalendar(String id, IModel model, boolean required) {

    super(id, null);

    add(new Behavior() {
        public void renderHead(Component component, IHeaderResponse response) {
            response.renderJavaScriptReference("resources/yui/yahoo/yahoo-min.js", "yui-yahoo");
            response.renderJavaScriptReference("resources/yui/event/event-min.js", "yui-event");
            response.renderJavaScriptReference("resources/yui/dom/dom-min.js", "yui-dom");
            response.renderJavaScriptReference("resources/yui/calendar/calendar-min.js", "yui-calendar");
            response.renderJavaScriptReference("resources/yui/calendar/calendar-utils.js",
                    "yui-calendar-utils");
            response.renderCSSReference("resources/yui/container/assets/calendar.css");
        }/* ww w .j av a2 s .  c  o m*/
    });

    dateField = new TextField("field", model, Date.class) {
        @Override
        public IConverter getConverter(Class clazz) {
            return new AbstractConverter() {
                //                    private DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                private DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

                public Object convertToObject(String s, Locale locale) {
                    if (s == null || s.trim().length() == 0) {
                        value = null;
                        dateValue = null;
                        return null;
                    }
                    try {
                        value = s;
                        dateValue = df.parse(s);
                        return dateValue;
                    } catch (Exception e) {
                        value = null;
                        throw new ConversionException(e);
                    }
                }

                protected Class getTargetType() {
                    return Date.class;
                }

                @Override
                public String convertToString(Object o, Locale locale) {
                    Date d = (Date) o;
                    return df.format(d);
                }
            };
        }

        @Override
        public IModel getLabel() {
            return YuiCalendar.this.getLabel();
        }
    };
    dateField.setOutputMarkupId(true);
    dateField.setRequired(required);
    dateField.add(new ErrorHighlighter());
    add(dateField);

    final WebMarkupContainer button = new WebMarkupContainer("button");
    button.setOutputMarkupId(true);
    button.add(new AttributeModifier("onclick", true, new AbstractReadOnlyModel() {
        public Object getObject() {
            String js = "showCalendar(" + getCalendarId() + ", '" + getInputId() + "');";
            logger.info("YuiCalendar button onclick js: " + js);

            return js;
        }
    }));
    add(button);

    container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);
    add(container);
}

From source file:ro.nextreports.server.web.report.ManualListPanel.java

License:Apache License

@SuppressWarnings("unchecked")
public ManualListPanel(QueryParameter parameter, final IModel<List<Serializable>> listModel, int rows,
        AjaxFormComponentUpdatingBehavior ajaxUpdate) {

    super("palette");
    this.parameter = parameter;
    this.updatingBehavior = ajaxUpdate;

    Form form = new Form("form");

    final FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
    feedbackPanel.setOutputMarkupId(true);
    add(feedbackPanel);// w w  w .  ja  v  a  2  s.  co m

    final TextField<String> textField = new TextField<String>("txtValue",
            new PropertyModel<String>(this, "objectModel")) {

        // needed in wicket 1.5 (our model object is of a generic type Serializable instead of String)
        // and an error is raised saying "1 is not a valid serializable") if no converter added
        // wicket 1.4 did not need this
        @Override
        public <C> IConverter<C> getConverter(Class<C> type) {
            return new AbstractConverter() {

                public Object convertToObject(String value, Locale locale) {
                    return value;
                }

                @Override
                protected Class getTargetType() {
                    return String.class;
                }

            };
        }
    };
    textField.setVisible(false);

    final DateTimeField txtTime = new DateTimeField("txtTime", new PropertyModel<Date>(this, "objectModel")) {

        private static final long serialVersionUID = 1L;

        @Override
        protected boolean use12HourFormat() {
            return false;
        }

        protected DatePicker newDatePicker() {
            return new DatePicker() {
                private static final long serialVersionUID = 1L;

                @Override
                protected void configure(final Map<String, Object> widgetProperties,
                        final IHeaderResponse response, final Map<String, Object> initVariables) {
                    super.configure(widgetProperties, response, initVariables);
                }

                @Override
                protected boolean enableMonthYearSelection() {
                    return true;
                }

            };
        }

    };
    txtTime.setVisible(false);

    final Model<ArrayList<Serializable>> choiceModel = new Model<ArrayList<Serializable>>();
    final ListMultipleChoice listChoice = new ListMultipleChoice("listChoice", choiceModel, listModel);
    listChoice.setMaxRows(rows);
    listChoice.setOutputMarkupId(true);
    listChoice.add(ajaxUpdate);

    final String type = parameter.getValueClassName();
    if (QueryParameter.DATE_VALUE.equals(type) || QueryParameter.TIME_VALUE.equals(type)
            || QueryParameter.TIMESTAMP_VALUE.equals(type)) {
        txtTime.setVisible(true);
    } else {
        textField.setVisible(true);
    }

    AjaxSubmitLink addLink = new AjaxSubmitLink("addElement", form) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            if (objectModel == null) {
                return;
            }

            List<Serializable> model = listModel.getObject();
            if (objectModel instanceof String) {
                try {
                    List<Serializable> values = getValues((String) objectModel, type);

                    for (Serializable value : values) {
                        if (!model.contains(value)) {
                            model.add(value);
                        }
                    }
                } catch (NumberFormatException ex) {
                    error("Invalid value type.");
                }
            } else if (!model.contains(objectModel)) {
                model.add(objectModel);
            }

            if (target != null) {
                target.add(listChoice);
            }
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(form);
        }

    };
    addLink.add(new SimpleTooltipBehavior("Add value"));

    AjaxSubmitLink removeLink = new AjaxSubmitLink("removeElement", form) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            for (Serializable sel : choiceModel.getObject()) {
                for (Iterator<?> it = listModel.getObject().iterator(); it.hasNext();) {
                    if (sel.equals(it.next())) {
                        it.remove();
                    }
                }
            }
            if (target != null) {
                target.add(listChoice);
            }
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(form);
        }

    };
    removeLink.add(new SimpleTooltipBehavior("Remove selected values"));

    form.add(textField);
    form.add(txtTime);
    form.add(listChoice);
    form.add(addLink);
    form.add(removeLink);

    add(form);
}

From source file:ro.nextreports.server.web.schedule.destination.MailAlertPanel.java

License:Apache License

@SuppressWarnings("unchecked")
protected void initComponents() {
    initBasicComponents();/*w  ww  .  jav a  2  s  . co m*/

    add(new Label("value", getString("ActionContributor.Run.destination.value")));

    final DropDownChoice<String> opChoice = new DropDownChoice<String>("opChoice",
            new PropertyModel<String>(destination, "operator"), Arrays.asList(ConditionalOperator.operators));
    add(opChoice);

    TextField<String> leftField = new TextField<String>("leftField",
            new PropertyModel<String>(destination, "rightOperand")) {
        // needed in wicket 1.5 (our model object is of a generic type Serializable instead of String)
        // and an error is raised saying "1 is not a valid serializable") if no converter added
        // wicket 1.4 did not need this
        @Override
        public <C> IConverter<C> getConverter(Class<C> type) {
            return new AbstractConverter() {

                public Object convertToObject(String value, Locale locale) {
                    return value;
                }

                @Override
                protected Class getTargetType() {
                    return String.class;
                }
            };
        }
    };
    leftField.setRequired(true);
    leftField.setLabel(Model.of(getString("ActionContributor.Run.destination.firstOperand")));
    add(leftField);
    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupPlaceholderTag(true);
    add(container);
    final TextField<String> rightField = new TextField<String>("rightField",
            new PropertyModel<String>(destination, "rightOperand2")) {
        @Override
        public <C> IConverter<C> getConverter(Class<C> type) {
            return new AbstractConverter() {

                public Object convertToObject(String value, Locale locale) {
                    return value;
                }

                @Override
                protected Class getTargetType() {
                    return String.class;
                }
            };
        }
    };
    container.add(rightField);
    boolean show = ConditionalOperator.BETWEEN.equals(((SmtpAlertDestination) destination).getOperator());
    rightField.setRequired(show);
    rightField.setLabel(Model.of(getString("ActionContributor.Run.destination.secondOperand")));
    container.setVisible(show);

    opChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        protected void onUpdate(AjaxRequestTarget target) {
            boolean show = ConditionalOperator.BETWEEN
                    .equals(((SmtpAlertDestination) destination).getOperator());
            rightField.setRequired(show);
            container.setVisible(show);
            target.add(container);
        }
    });
}