/* * Copyright 2012 Red Hat, Inc. and/or its affiliates. * * 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.workbench.screens.guided.dtable.client.widget.table.model.converters.column.impl; import java.util.ArrayList; import java.util.List; import javax.enterprise.context.Dependent; import org.drools.workbench.models.guided.dtable.shared.model.BaseColumn; import org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52; import org.drools.workbench.models.guided.dtable.shared.model.MetadataCol52; import org.drools.workbench.screens.guided.dtable.client.resources.i18n.GuidedDecisionTableConstants; import org.drools.workbench.screens.guided.dtable.client.widget.table.GuidedDecisionTablePresenter; import org.drools.workbench.screens.guided.dtable.client.widget.table.GuidedDecisionTableView; import org.drools.workbench.screens.guided.dtable.client.widget.table.columns.PriorityListUiColumn; import org.drools.workbench.screens.guided.dtable.client.widget.table.columns.dom.listbox.ListBoxStringSingletonDOMElementFactory; import org.uberfire.ext.wires.core.grids.client.model.GridColumn; import org.uberfire.ext.wires.core.grids.client.model.impl.BaseHeaderMetaData; @Dependent public class MetaDataColumnConverter extends BaseColumnConverterImpl { @Override public boolean handles( final BaseColumn column ) { return column instanceof MetadataCol52; } @Override public GridColumn<?> convertColumn( final BaseColumn column, final GuidedDecisionTablePresenter.Access access, final GuidedDecisionTableView gridWidget ) { final MetadataCol52 metadataCol = (MetadataCol52) column; if ( GuidedDecisionTable52.HitPolicy.RESOLVED_HIT_METADATA_NAME.equals( metadataCol.getMetadata() ) ) { return new PriorityListUiColumn( makePriorityHeaderMetaData(), Math.max( column.getWidth(), DEFAULT_COLUMN_WIDTH + 20 ), access, new ListBoxStringSingletonDOMElementFactory( gridPanel, gridLayer, gridWidget )); } else { return newStringColumn( makeHeaderMetaData( column ), Math.max( column.getWidth(), DEFAULT_COLUMN_WIDTH ), true, !column.isHideColumn(), access, gridWidget ); } } private List<GridColumn.HeaderMetaData> makePriorityHeaderMetaData() { return new ArrayList<GridColumn.HeaderMetaData>() {{ add( new BaseHeaderMetaData( GuidedDecisionTableConstants.INSTANCE.HasPriorityOverRow(), MetadataCol52.class.getName() ) ); }}; } @Override public List<GridColumn.HeaderMetaData> makeHeaderMetaData( final BaseColumn column ) { return new ArrayList<GridColumn.HeaderMetaData>() {{ add( new BaseHeaderMetaData( ( (MetadataCol52) column ).getMetadata(), MetadataCol52.class.getName() ) ); }}; } }