/* * 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 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.bundle.group; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.grid.ListGridRecord; import org.rhq.core.domain.bundle.BundleGroup; import org.rhq.core.domain.criteria.BundleGroupCriteria; import org.rhq.coregui.client.components.selector.AbstractSelector; import org.rhq.coregui.client.util.RPCDataSource; /** * @author Jay Shaughnessy */ public class BundleGroupSelector extends AbstractSelector<BundleGroup, BundleGroupCriteria> { private Integer[] idsFilter; public BundleGroupSelector() { this(null, null, false); } public BundleGroupSelector(boolean isReadonly) { this(null, null, isReadonly); } /** * @param idsFilter optionally narrow the results to some predefined set, typically when narrowing to * bundle groups associated with roles having specific permissions. ignored if null. * @param initiallyAssigned * @param isReadOnly */ public BundleGroupSelector(Integer[] idsFilter, ListGridRecord[] initiallyAssigned, boolean isReadOnly) { super(isReadOnly); setAssigned(initiallyAssigned); this.idsFilter = idsFilter; } protected DynamicForm getAvailableFilterForm() { DynamicForm availableFilterForm = new DynamicForm(); availableFilterForm.setNumCols(4); final TextItem search = new TextItem("search", MSG.common_title_search()); availableFilterForm.setItems(search); return availableFilterForm; } protected RPCDataSource<BundleGroup, BundleGroupCriteria> getDataSource() { return new SelectedBundleGroupsDataSource(); } protected Criteria getLatestCriteria(DynamicForm availableFilterForm) { String search = (String) availableFilterForm.getValue("search"); Criteria latestCriteria = new Criteria(); latestCriteria.addCriteria("search", search); return latestCriteria; } @Override protected String getItemTitle() { return MSG.common_title_bundleGroups(); } public class SelectedBundleGroupsDataSource extends BundleGroupsDataSource { @Override protected BundleGroupCriteria getFetchCriteria(final DSRequest request) { BundleGroupCriteria result = super.getFetchCriteria(request); if (null != result) { result.setStrict(false); } if (null != idsFilter) { result.addFilterIds(idsFilter); } return result; } } public boolean hasInitialSelection() { return null != initialSelection && initialSelection.length > 0; } }