/* * RHQ Management Platform * Copyright (C) 2005-2013 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation, and/or the GNU Lesser * General Public License, version 2.1, also as published by the Free * Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License and the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.rhq.coregui.client.components.lookup; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.TextMatchStyle; import com.smartgwt.client.widgets.form.fields.ComboBoxItem; import com.smartgwt.client.widgets.grid.CellFormatter; import com.smartgwt.client.widgets.grid.HoverCustomizer; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import org.rhq.coregui.client.CoreGUI; import org.rhq.coregui.client.Messages; import org.rhq.coregui.client.inventory.resource.AncestryUtil; import org.rhq.coregui.client.inventory.resource.ResourceDatasource; /** * @author Greg Hinkle */ public class ResourceLookupComboBoxItem extends ComboBoxItem { private static final Messages MSG = CoreGUI.getMessages(); public ResourceLookupComboBoxItem(String name, String title) { super(name, title); setHint(MSG.widget_resourceSelector_selectResource()); setShowHintInField(false); setOptionDataSource(new ResourceDatasource()); ListGridField nameField = new ListGridField("name", MSG.common_title_name(), 250); nameField.setShowHover(true); nameField.setHoverCustomizer(new HoverCustomizer() { public String hoverHTML(Object value, ListGridRecord listGridRecord, int rowNum, int colNum) { return AncestryUtil.getResourceHoverHTML(listGridRecord, 0); } }); ListGridField ancestryField = new ListGridField(AncestryUtil.RESOURCE_ANCESTRY, MSG.common_title_ancestry(), 300); // needs to use a different cell formatter than what AncestryUtil.setupAncestryListGridField creates ancestryField.setCellFormatter(new CellFormatter() { public String format(Object o, ListGridRecord listGridRecord, int rowNum, int colNum) { return AncestryUtil.getAncestryValue(listGridRecord, false); } }); AncestryUtil.setupAncestryListGridFieldHover(ancestryField); ListGridField descriptionField = new ListGridField("description", MSG.common_title_description()); ListGridField categoryField = new ListGridField("category", MSG.common_title_category(), 60); ListGridField availabilityField = new ListGridField("currentAvailability", MSG.common_title_availability(), 55); availabilityField.setAlign(Alignment.CENTER); setPickListFields(nameField, ancestryField, descriptionField, categoryField, availabilityField); setValueField("id"); setDisplayField("name"); setPickListWidth(800); setTextMatchStyle(TextMatchStyle.SUBSTRING); setCompleteOnTab(true); setAddUnknownValues(false); } }