java类java.beans.PropertyEditorSupport的实例源码

ContactController.java 文件源码 项目:podcastpedia-web 阅读 35 收藏 0 点赞 0 评论 0
@InitBinder    
public void initBinder(WebDataBinder dataBinder) {
    dataBinder.registerCustomEditor(ContactTopicType.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String value) throws IllegalArgumentException {
            setValue(ContactTopicType.valueOf(value));
        }

        @Override
        public String getAsText() {
            if(getValue() == null)
                return "";

            return ((ContactTopicType) getValue()).name();
        }
    });

}
OneComponentNode.java 文件源码 项目:opensim-gui 阅读 20 收藏 0 点赞 0 评论 0
private void createSocketProperty(AbstractSocket socket, Sheet.Set sheetSet) {
    try {
        String connecteeType = socket.getConnecteeTypeName();
        String connectionName = socket.getName();
        PropertySupport.Reflection nextNodeProp = 
                new PropertySupport.Reflection(new ConnectionEditor(socket, this),
                String.class,
                "getConnectedToName",
                "setConnectedToName");
        nextNodeProp.setValue("canEditAsText", Boolean.TRUE);
        nextNodeProp.setValue("suppressCustomEditor", Boolean.TRUE);
        nextNodeProp.setName(connecteeType + ":" + connectionName);
        PropertyEditorSupport editor = EditorRegistry.getEditor(connecteeType);
        if (editor != null)
            nextNodeProp.setPropertyEditorClass(editor.getClass());
        sheetSet.put(nextNodeProp);
    } catch (NoSuchMethodException ex) {
        Exceptions.printStackTrace(ex);
    }
}
PortletRequestDataBinderTests.java 文件源码 项目:class-guard 阅读 23 收藏 0 点赞 0 评论 0
public void testNestedBindWithPropertyEditor() {
    TestBean bean = new TestBean();

    PortletRequestDataBinder binder = new PortletRequestDataBinder(bean);
    binder.registerCustomEditor(ITestBean.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(new TestBean(text));
        }
    });

    MockPortletRequest request = new MockPortletRequest();
    request.addParameter("spouse", "test");
    request.addParameter("spouse.age", "32");
    binder.bind(request);

    assertNotNull(bean.getSpouse());
    assertEquals("test", bean.getSpouse().getName());
    assertEquals(32, bean.getSpouse().getAge());
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 36 收藏 0 点赞 0 评论 0
public void testBindingWithNestedObjectCreation() throws Exception {
    TestBean tb = new TestBean();

    DataBinder binder = new DataBinder(tb, "person");
    binder.registerCustomEditor(ITestBean.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(new TestBean());
        }
    });

    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("spouse", "someValue");
    pvs.add("spouse.name", "test");
    binder.bind(pvs);

    assertNotNull(tb.getSpouse());
    assertEquals("test", tb.getSpouse().getName());
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 33 收藏 0 点赞 0 评论 0
public void testCustomEditorForPrimitiveProperty() {
    TestBean tb = new TestBean();
    DataBinder binder = new DataBinder(tb, "tb");

    binder.registerCustomEditor(int.class, "age", new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(new Integer(99));
        }
        @Override
        public String getAsText() {
            return "argh";
        }
    });

    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("age", "");
    binder.bind(pvs);

    assertEquals("argh", binder.getBindingResult().getFieldValue("age"));
    assertEquals(99, tb.getAge());
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 26 收藏 0 点赞 0 评论 0
public void testCustomEditorWithOldValueAccess() {
    TestBean tb = new TestBean();
    DataBinder binder = new DataBinder(tb, "tb");

    binder.registerCustomEditor(String.class, null, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            if (getValue() == null || !text.equalsIgnoreCase(getValue().toString())) {
                setValue(text);
            }
        }
    });

    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("name", "value");
    binder.bind(pvs);
    assertEquals("value", tb.getName());

    pvs = new MutablePropertyValues();
    pvs.add("name", "vaLue");
    binder.bind(pvs);
    assertEquals("value", tb.getName());
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 24 收藏 0 点赞 0 评论 0
public void testEditorForNestedIndexedField() {
    IndexedTestBean tb = new IndexedTestBean();
    tb.getArray()[0].setNestedIndexedBean(new IndexedTestBean());
    tb.getArray()[1].setNestedIndexedBean(new IndexedTestBean());
    DataBinder binder = new DataBinder(tb, "tb");
    binder.registerCustomEditor(String.class, "array.nestedIndexedBean.list.name", new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue("list" + text);
        }
        @Override
        public String getAsText() {
            return ((String) getValue()).substring(4);
        }
    });
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("array[0].nestedIndexedBean.list[0].name", "test1");
    pvs.add("array[1].nestedIndexedBean.list[1].name", "test2");
    binder.bind(pvs);
    assertEquals("listtest1", ((TestBean)tb.getArray()[0].getNestedIndexedBean().getList().get(0)).getName());
    assertEquals("listtest2", ((TestBean)tb.getArray()[1].getNestedIndexedBean().getList().get(1)).getName());
    assertEquals("test1", binder.getBindingResult().getFieldValue("array[0].nestedIndexedBean.list[0].name"));
    assertEquals("test2", binder.getBindingResult().getFieldValue("array[1].nestedIndexedBean.list[1].name"));
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 39 收藏 0 点赞 0 评论 0
public void testSpecificEditorForNestedIndexedField() {
    IndexedTestBean tb = new IndexedTestBean();
    tb.getArray()[0].setNestedIndexedBean(new IndexedTestBean());
    tb.getArray()[1].setNestedIndexedBean(new IndexedTestBean());
    DataBinder binder = new DataBinder(tb, "tb");
    binder.registerCustomEditor(String.class, "array[0].nestedIndexedBean.list.name", new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue("list" + text);
        }
        @Override
        public String getAsText() {
            return ((String) getValue()).substring(4);
        }
    });
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("array[0].nestedIndexedBean.list[0].name", "test1");
    pvs.add("array[1].nestedIndexedBean.list[1].name", "test2");
    binder.bind(pvs);
    assertEquals("listtest1", ((TestBean)tb.getArray()[0].getNestedIndexedBean().getList().get(0)).getName());
    assertEquals("test2", ((TestBean)tb.getArray()[1].getNestedIndexedBean().getList().get(1)).getName());
    assertEquals("test1", binder.getBindingResult().getFieldValue("array[0].nestedIndexedBean.list[0].name"));
    assertEquals("test2", binder.getBindingResult().getFieldValue("array[1].nestedIndexedBean.list[1].name"));
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 27 收藏 0 点赞 0 评论 0
public void testInnerSpecificEditorForNestedIndexedField() {
    IndexedTestBean tb = new IndexedTestBean();
    tb.getArray()[0].setNestedIndexedBean(new IndexedTestBean());
    tb.getArray()[1].setNestedIndexedBean(new IndexedTestBean());
    DataBinder binder = new DataBinder(tb, "tb");
    binder.registerCustomEditor(String.class, "array.nestedIndexedBean.list[0].name", new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue("list" + text);
        }
        @Override
        public String getAsText() {
            return ((String) getValue()).substring(4);
        }
    });
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("array[0].nestedIndexedBean.list[0].name", "test1");
    pvs.add("array[1].nestedIndexedBean.list[1].name", "test2");
    binder.bind(pvs);
    assertEquals("listtest1", ((TestBean)tb.getArray()[0].getNestedIndexedBean().getList().get(0)).getName());
    assertEquals("test2", ((TestBean)tb.getArray()[1].getNestedIndexedBean().getList().get(1)).getName());
    assertEquals("test1", binder.getBindingResult().getFieldValue("array[0].nestedIndexedBean.list[0].name"));
    assertEquals("test2", binder.getBindingResult().getFieldValue("array[1].nestedIndexedBean.list[1].name"));
}
DataBinderTests.java 文件源码 项目:class-guard 阅读 28 收藏 0 点赞 0 评论 0
public void testBindToStringArrayWithArrayEditor() {
    TestBean tb = new TestBean();
    DataBinder binder = new DataBinder(tb, "tb");
    binder.registerCustomEditor(String[].class, "stringArray", new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(StringUtils.delimitedListToStringArray(text, "-"));
        }
    });
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("stringArray", "a1-b2");
    binder.bind(pvs);
    assertTrue(!binder.getBindingResult().hasErrors());
    assertEquals(2, tb.getStringArray().length);
    assertEquals("a1", tb.getStringArray()[0]);
    assertEquals("b2", tb.getStringArray()[1]);
}


问题


面经


文章

微信
公众号

扫码关注公众号