Java tutorial
/* * Copyright 2010 JBoss Inc * * 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.drools.guvnor.client.decisiontable; import org.drools.guvnor.client.common.SmallLabel; import org.drools.guvnor.client.messages.Constants; import org.drools.ide.common.client.modeldriven.dt.ActionCol; import org.drools.ide.common.client.modeldriven.dt.AttributeCol; import org.drools.ide.common.client.modeldriven.dt.ConditionCol; import org.drools.ide.common.client.modeldriven.dt.GuidedDecisionTable; import org.drools.ide.common.client.modeldriven.dt.MetadataCol; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.ListBox; /** * * @author rikkola * */ public class GroupingsPanel extends HorizontalPanel { private Constants constants = ((Constants) GWT.create(Constants.class)); private final ListBox columnsListBox = new ListBox(); private final GuidedDecisionTable guidedDecisionTable; private final Command refreshCommand; public GroupingsPanel(final GuidedDecisionTable guidedDecisionTable, final Command refreshCommand) { this.guidedDecisionTable = guidedDecisionTable; this.refreshCommand = refreshCommand; initColumnsListBox(); add(new SmallLabel(constants.GroupByColumn())); add(columnsListBox); add(getOkButton()); } private void initColumnsListBox() { columnsListBox.addItem(constants.Description(), "desc"); //NON-NLS addListItems(); if (guidedDecisionTable.getGroupField() == null) { columnsListBox.setSelectedIndex(columnsListBox.getItemCount() - 1); } } private Button getOkButton() { Button ok = new Button(constants.Apply()); ok.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { guidedDecisionTable.setGroupField(columnsListBox.getValue(columnsListBox.getSelectedIndex())); refreshCommand.execute(); } }); return ok; } private void addListItems() { addMetaDataColumns(); addAttributeColumns(); addConditionColumns(); addActionColumns(); addNone(); } private void addNone() { columnsListBox.addItem(constants.none(), ""); } private void addActionColumns() { for (ActionCol c : guidedDecisionTable.getActionCols()) { columnsListBox.addItem(c.getHeader(), c.getHeader()); if (c.getHeader().equals(guidedDecisionTable.getGroupField())) { columnsListBox.setSelectedIndex(columnsListBox.getItemCount() - 1); } } } private void addConditionColumns() { for (ConditionCol c : guidedDecisionTable.getConditionCols()) { columnsListBox.addItem(c.getHeader(), c.getHeader()); if (c.getHeader().equals(guidedDecisionTable.getGroupField())) { columnsListBox.setSelectedIndex(columnsListBox.getItemCount() - 1); } } } private void addAttributeColumns() { for (AttributeCol c : guidedDecisionTable.getAttributeCols()) { columnsListBox.addItem(c.attr, c.attr); if (c.attr.equals(guidedDecisionTable.getGroupField())) { columnsListBox.setSelectedIndex(columnsListBox.getItemCount() - 1); } } } private void addMetaDataColumns() { for (MetadataCol c : guidedDecisionTable.getMetadataCols()) { columnsListBox.addItem(c.attr, c.attr); if (c.attr.equals(guidedDecisionTable.getGroupField())) { columnsListBox.setSelectedIndex(columnsListBox.getItemCount() - 1); } } } public void refresh() { columnsListBox.clear(); addListItems(); } }