1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.convert;
21
22 import org.apache.myfaces.tobago.internal.util.StringUtils;
23
24 import javax.faces.component.UIComponent;
25 import javax.faces.component.ValueHolder;
26 import javax.faces.context.FacesContext;
27 import javax.faces.convert.Converter;
28 import javax.faces.convert.ConverterException;
29 import javax.swing.BoundedRangeModel;
30 import javax.swing.DefaultBoundedRangeModel;
31
32
33
34
35 @org.apache.myfaces.tobago.apt.annotation.Converter(forClass = "javax.swing.BoundedRangeModel")
36 public class BoundedRangeModelConverter implements Converter<BoundedRangeModel> {
37
38 @Override
39 public BoundedRangeModel getAsObject(
40 final FacesContext facesContext, final UIComponent component, final String string)
41 throws ConverterException {
42 if (StringUtils.isBlank(string)) {
43 return null;
44 } else {
45 try {
46 final BoundedRangeModel model = (BoundedRangeModel) ((ValueHolder) component).getValue();
47 return new DefaultBoundedRangeModel(
48 Integer.parseInt(string), model.getExtent(), model.getMinimum(), model.getMaximum());
49 } catch (final Exception e) {
50 throw new ConverterException("string='" + string + "'", e);
51 }
52 }
53 }
54
55 @Override
56 public String getAsString(
57 final FacesContext facesContext, final UIComponent component, final BoundedRangeModel boundedRangeModel)
58 throws ConverterException {
59 if (boundedRangeModel == null) {
60 return null;
61 }
62 try {
63 return Integer.toString(boundedRangeModel.getValue());
64 } catch (final ClassCastException e) {
65 throw new ConverterException("object='" + boundedRangeModel + "'", e);
66 }
67 }
68 }