/* * RHQ Management Platform * Copyright (C) 2010 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 as published by * the Free Software Foundation version 2 of the License. * * 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 for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.coregui.client.inventory.common; import java.util.ArrayList; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.SortSpecifier; import com.smartgwt.client.types.SelectionStyle; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.grid.events.DataArrivedEvent; import com.smartgwt.client.widgets.grid.events.DataArrivedHandler; import org.rhq.core.domain.criteria.MeasurementDataTraitCriteria; import org.rhq.coregui.client.components.table.Table; /** * A view that displays a non-paginated table of {@link org.rhq.core.domain.measurement.MeasurementDataTrait trait}s, * along with the ability to sort those traits. * * @author Ian Springer */ public abstract class AbstractMeasurementDataTraitListDetailView extends Table<AbstractMeasurementDataTraitDataSource> { private static final String[] EXCLUDED_FIELD_NAMES = new String[] { MeasurementDataTraitCriteria.SORT_FIELD_DISPLAY_NAME }; private static final SortSpecifier[] SORT_SPECIFIERS = new SortSpecifier[] { //new SortSpecifier(MeasurementDataTraitCriteria.SORT_FIELD_DISPLAY_NAME, SortDirection.ASCENDING) }; public AbstractMeasurementDataTraitListDetailView(String title, AbstractMeasurementDataTraitDataSource dataSource, Criteria criteria) { super(title, criteria, SORT_SPECIFIERS, EXCLUDED_FIELD_NAMES); setDataSource(dataSource); } @Override public AbstractMeasurementDataTraitDataSource getDataSource() { return (AbstractMeasurementDataTraitDataSource) super.getDataSource(); } @Override protected void configureTable() { ListGrid listGrid = getListGrid(); ArrayList<ListGridField> dataSourceFields = getDataSource().getListGridFields(); listGrid.setFields(dataSourceFields.toArray(new ListGridField[dataSourceFields.size()])); listGrid.setSelectionType(SelectionStyle.NONE); listGrid.addDataArrivedHandler(new DataArrivedHandler() { public void onDataArrived(DataArrivedEvent dataArrivedEvent) { initTitle(); } }); } private void initTitle() { if (getTitle() == null) { // Now that the table data has been loaded, set the title to include the trait name. ListGridRecord record = getListGrid().getRecord(0); String displayName = record.getAttributeAsString(MeasurementDataTraitCriteria.SORT_FIELD_DISPLAY_NAME); String title = MSG.view_metric_viewTraitHistory(displayName); setTitle(title); } } }