001 /*
002 * Copyright 2002-2004 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.list;
017
018 import org.springframework.beans.BeanWrapperImpl;
019 import org.springframework.util.Assert;
020
021 /**
022 * Renders objects in a list, using a propertyName for rendering.
023 *
024 * @author Keith Donald
025 */
026 public class BeanPropertyValueListRenderer extends TextValueListRenderer {
027
028 private BeanWrapperImpl beanWrapper;
029
030 private String propertyName;
031
032 /**
033 * Creates a new <code>BeanPropertyValueListRenderer</code>
034 *
035 * @param propertyName
036 * the property name to use for rendering
037 */
038 public BeanPropertyValueListRenderer(String propertyName) {
039 Assert.notNull(propertyName, "propertyName can not be null.");
040 this.propertyName = propertyName;
041 }
042
043 protected String getTextValue(Object value) {
044 if (value == null) {
045 return "";
046 }
047 if (beanWrapper == null) {
048 beanWrapper = new BeanWrapperImpl(value);
049 } else {
050 beanWrapper.setWrappedInstance(value);
051 }
052 return String.valueOf(beanWrapper.getPropertyValue(propertyName));
053 }
054
055 /**
056 * @return the property name
057 */
058 public String getPropertyName() {
059 return propertyName;
060 }
061 }