/* * Copyright 2012 PRODYNA AG * * Licensed under the Eclipse Public License (EPL), Version 1.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.opensource.org/licenses/eclipse-1.0.php or * http://www.nabucco.org/License.html * * 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.nabucco.testautomation.ui.rcp.list.engine.view; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.nabucco.framework.plugin.base.component.list.view.NabuccoAbstractListLayouter; import org.nabucco.framework.plugin.base.component.list.view.NabuccoDefaultListContentProvider; import org.nabucco.framework.plugin.base.component.list.view.NabuccoDefaultTableSorter; import org.nabucco.framework.plugin.base.component.list.view.NabuccoTableColumnInfo; import org.nabucco.framework.plugin.base.component.list.view.NabuccoTableParameter; import org.nabucco.framework.plugin.base.component.list.view.NabuccoTableViewer; import org.nabucco.framework.plugin.base.layout.Layoutable; import org.nabucco.framework.plugin.base.view.NabuccoFormToolkit; import org.nabucco.framework.plugin.base.view.NabuccoMessageManager; import org.nabucco.testautomation.facade.datatype.engine.TestEngineConfiguration; import org.nabucco.testautomation.ui.rcp.list.engine.model.TestEngineConfigurationListViewModel; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigDescriptionComparator; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigDescriptionLabelProvider; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigHostComparator; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigHostLabelProvider; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigNameComparator; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigNameLabelProvider; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigPortComparator; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigPortLabelProvider; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigRemoteReferenceNameComparator; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewConfigRemoteReferenceNameLabelProvider; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewTableFilter; import org.nabucco.testautomation.ui.rcp.list.engine.view.TestEngineConfigurationListViewWidgetFactory; /** * @author Steffen Schmidt, PRODYNA AG * */ public class TestEngineConfigurationListViewLayouter extends NabuccoAbstractListLayouter<TestEngineConfigurationListViewModel> { /** * Layouts the table **/ @Override public NabuccoTableViewer layout(final Composite parent, final NabuccoMessageManager messageManager, final TestEngineConfigurationListViewModel model, final Layoutable<TestEngineConfigurationListViewModel> view) { NabuccoFormToolkit ntk = new NabuccoFormToolkit(parent); TestEngineConfigurationListViewWidgetFactory widgetFactory = new TestEngineConfigurationListViewWidgetFactory( ntk); NabuccoTableParameter parameter = new NabuccoTableParameter( new NabuccoDefaultTableSorter<TestEngineConfiguration>( createComparators()), new TestEngineConfigurationListViewTableFilter(), new NabuccoDefaultListContentProvider(model), createTableColumnInfo(), getDoubleClickCommand(view .getManagedFormViewPart())); return widgetFactory.createTable(parent, parameter, model); } private List<Comparator<TestEngineConfiguration>> createComparators() { List<Comparator<TestEngineConfiguration>> comparators = new ArrayList<Comparator<TestEngineConfiguration>>(); comparators .add(new TestEngineConfigurationListViewConfigNameComparator()); comparators .add(new TestEngineConfigurationListViewConfigDescriptionComparator()); comparators .add(new TestEngineConfigurationListViewConfigHostComparator()); comparators .add(new TestEngineConfigurationListViewConfigPortComparator()); comparators .add(new TestEngineConfigurationListViewConfigRemoteReferenceNameComparator()); return comparators; } /** * Creates needed tables. * * @return table columns */ private NabuccoTableColumnInfo[] createTableColumnInfo() { NabuccoTableColumnInfo[] result = { new NabuccoTableColumnInfo( "config.name", "config.name", 250, SWT.LEFT, SWT.LEFT, new TestEngineConfigurationListViewConfigNameLabelProvider()), new NabuccoTableColumnInfo( "config.description", "config.description", 300, SWT.LEFT, SWT.LEFT, new TestEngineConfigurationListViewConfigDescriptionLabelProvider()), new NabuccoTableColumnInfo( "config.host", "config.host", 200, SWT.LEFT, SWT.LEFT, new TestEngineConfigurationListViewConfigHostLabelProvider()), new NabuccoTableColumnInfo( "config.port", "config.port", 100, SWT.LEFT, SWT.LEFT, new TestEngineConfigurationListViewConfigPortLabelProvider()), new NabuccoTableColumnInfo( "config.remoteReferenceName", "config.remoteReferenceName", 250, SWT.LEFT, SWT.LEFT, new TestEngineConfigurationListViewConfigRemoteReferenceNameLabelProvider()) }; return result; } }