List of usage examples for org.apache.wicket.util.convert.converter AbstractConverter AbstractConverter
AbstractConverter
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); } }); }