📄 filterdroplistcell.java
字号:
/* * Copyright 2004 original author or authors. * * Licensed under the Apache 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.apache.org/licenses/LICENSE-2.0 * * 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. */package org.extremecomponents.table.cell;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Locale;import org.apache.commons.beanutils.PropertyUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.extremecomponents.table.core.TableConstants;import org.extremecomponents.table.view.HtmlViewUtils;import org.extremecomponents.util.ExtremeUtils;import org.extremecomponents.util.HtmlBuilder;/** * A filter cell that is a droplist * * @author Jeff Johnston */public class FilterDroplistCell extends BaseCell { private static Log logger = LogFactory.getLog(FilterDroplistCell.class); public String html() { HtmlBuilder html = new HtmlBuilder(); if (!column.isFilterable()) { html.append(""); } else { List droplist = getFilterDropList(); html.append(dropListHtml(droplist)); } return html.toString(); } protected List getFilterDropList() { List droplist = new ArrayList(); List list = model.getCollectionOfBeans(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object bean = iter.next(); try { Object obj = PropertyUtils.getProperty(bean, column.getProperty()); if ((obj != null) && !droplist.contains(obj)) { droplist.add(obj); } } catch (Exception e) { logger.debug("Problems getting the droplist.", e); } } Collections.sort(droplist); return droplist; } protected String dropListHtml(List droplist) { HtmlBuilder html = new HtmlBuilder(); html.td(2).close(); html.newline(); html.tabs(2); html.select().name(model.getTableHandler().prefixWithTableId() + TableConstants.FILTER + column.getProperty()); StringBuffer onkeypress = new StringBuffer(); onkeypress.append(HtmlViewUtils.filterJavaScript(model)); html.onchange(onkeypress.toString()); html.close(); html.newline(); html.tabs(2); html.option().value("").close(); html.optionEnd(); Locale locale = model.getTableHandler().getTable().getLocale(); for (Iterator iter = droplist.iterator(); iter.hasNext();) { Object value = iter.next(); if (column.isDate()) { value = ExtremeUtils.formatDate(column.getParse(), column.getFormat(), value, locale); } html.newline(); html.tabs(2); html.option().value("" + value); if (value.equals(column.getValue())) { html.append(" selected"); } html.close(); html.append(value); html.optionEnd(); } html.newline(); html.tabs(2); html.selectEnd(); html.tdEnd(); return html.toString(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -