diff --git a/coeus-impl/src/main/java/org/kuali/coeus/org/kuali/rice/krad/uif/container/KcLightTable.java b/coeus-impl/src/main/java/org/kuali/coeus/org/kuali/rice/krad/uif/container/KcLightTable.java new file mode 100644 index 00000000000..186814311b8 --- /dev/null +++ b/coeus-impl/src/main/java/org/kuali/coeus/org/kuali/rice/krad/uif/container/KcLightTable.java @@ -0,0 +1,773 @@ +package org.kuali.coeus.org.kuali.rice.krad.uif.container; + +/** + * Copyright 2005-2014 The Kuali Foundation + * + * Licensed under the Educational Community License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.opensource.org/licenses/ecl2.php + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang.StringUtils; +import org.kuali.rice.krad.datadictionary.parse.BeanTag; +import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute; +import org.kuali.rice.krad.datadictionary.parse.BeanTags; +import org.kuali.rice.krad.uif.UifConstants; +import org.kuali.rice.krad.uif.component.BindingInfo; +import org.kuali.rice.krad.uif.component.Component; +import org.kuali.rice.krad.uif.component.DataBinding; +import org.kuali.rice.krad.uif.container.Group; +import org.kuali.rice.krad.uif.container.GroupBase; +import org.kuali.rice.krad.uif.control.CheckboxControl; +import org.kuali.rice.krad.uif.control.Control; +import org.kuali.rice.krad.uif.control.SelectControl; +import org.kuali.rice.krad.uif.control.TextControl; +import org.kuali.rice.krad.uif.element.Action; +import org.kuali.rice.krad.uif.element.Image; +import org.kuali.rice.krad.uif.element.Label; +import org.kuali.rice.krad.uif.element.Link; +import org.kuali.rice.krad.uif.element.Message; +import org.kuali.rice.krad.uif.field.DataField; +import org.kuali.rice.krad.uif.field.Field; +import org.kuali.rice.krad.uif.field.FieldGroup; +import org.kuali.rice.krad.uif.field.InputField; +import org.kuali.rice.krad.uif.lifecycle.ViewLifecycle; +import org.kuali.rice.krad.uif.lifecycle.ViewLifecycleUtils; +import org.kuali.rice.krad.uif.util.ComponentUtils; +import org.kuali.rice.krad.uif.util.LifecycleElement; +import org.kuali.rice.krad.uif.util.ObjectPropertyUtils; +import org.kuali.rice.krad.uif.view.ExpressionEvaluator; +import org.kuali.rice.krad.uif.view.View; +import org.kuali.rice.krad.uif.widget.Inquiry; +import org.kuali.rice.krad.uif.widget.RichTable; +import org.kuali.rice.krad.uif.widget.Tooltip; +import org.kuali.rice.krad.util.KRADConstants; +import org.kuali.rice.krad.util.KRADUtils; +import org.kuali.rice.krad.web.form.UifFormBase; + +/** + * LightTable is a light-weight collection table implementation that supports a subset of features, + * Current known supported features are: + * + * + * + * Other features are not guaranteed to work, but may work at your own risk. The intent of this table is to be a + * light-weight alternative to the fully featured table already available in KRAD and it is more suited to displaying + * large sets of simple data to the user. + * + * @author Kuali Rice Team (rice.collab@kuali.org) + */ +@BeanTags({@BeanTag(name = "lightTable", parent = "Uif-LightTableGroup"), + @BeanTag(name = "lightTableSection", parent = "Uif-LightTableSection"), + @BeanTag(name = "lightTableSubSection", parent = "Uif-LightTableSubSection")}) +public class KcLightTable extends GroupBase implements DataBinding { + private static final long serialVersionUID = -8930885219866835711L; + + private static final String VALUE_TOKEN = "@v@"; + private static final String EXPRESSION_TOKEN = "@e@"; + private static final String RENDER = "render"; + private static final String ID_TOKEN = "@id@"; + private static final String A_TOKEN = "@"; + private static final String ROW_CLASS = "@rowClass@"; + private static final String SORT_VALUE = "@sortVal"; + private static final String SEPARATOR = "@@@"; + + private String propertyName; + private BindingInfo bindingInfo; + private List