/******************************************************************************* * Copyright (c) 2010 SAP AG. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Emil Simeonov - initial API and implementation. * Dimitar Donchev - initial API and implementation. * Dimitar Tenev - initial API and implementation. * Nevena Manova - initial API and implementation. * Georgi Konstantinov - initial API and implementation. *******************************************************************************/ package org.eclipse.wst.sse.sieditor.ui.v2.dt.extractwizard.table; import java.util.Set; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.wst.sse.sieditor.command.emf.wsdl.extract.dependencies.SchemaNode; import org.eclipse.wst.sse.sieditor.ui.i18n.Messages; import org.eclipse.wst.sse.sieditor.ui.v2.dt.extractwizard.utils.ExtractSchemaWizardConstants; public class SchemaFilesTableViewer extends TableViewer { private final Set<SchemaNode> schemas; private final IWizardPage wizardPage; public SchemaFilesTableViewer(final Composite parent, final Set<SchemaNode> schemas, final IWizardPage wizardPage) { super(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); this.schemas = schemas; this.wizardPage = wizardPage; this.createDependenciesTable(parent); } private void createDependenciesTable(final Composite container) { final Table table = getTable(); table.setLayoutData(new GridData(GridData.FILL_BOTH)); table.setHeaderVisible(true); table.setLinesVisible(true); createNamespaceColumn(this); createFileColumn(this); setContentProvider(new DependentSchemasContentProvider()); setLabelProvider(new DependentSchemasLabelProvider()); setInput(schemas); } private void createNamespaceColumn(final TableViewer viewer) { final TableViewerColumn namespaceViewerColumn = new TableViewerColumn(viewer, SWT.NONE); namespaceViewerColumn.getColumn().setText(Messages.SchemaDependenciesWizardPage_dependent_xml_schemas_column_header); namespaceViewerColumn.getColumn().setWidth(ExtractSchemaWizardConstants.DEPENDENCIES_TABLE_NAMESPACE_COLUMN_WIDTH); } private void createFileColumn(final TableViewer viewer) { final TableViewerColumn fileViewerColumn = new TableViewerColumn(viewer, SWT.NONE); fileViewerColumn.getColumn().setText(Messages.SchemaDependenciesWizardPage_files_column_header); fileViewerColumn.getColumn().setWidth(ExtractSchemaWizardConstants.DEPENDENCIES_TABLE_FILES_COLUMN_WIDTH); fileViewerColumn.setEditingSupport(new DependencyColumnEditingSupport(viewer, wizardPage)); } // ========================================================= // content provider // ========================================================= @SuppressWarnings("unchecked") protected class DependentSchemasContentProvider implements IStructuredContentProvider { public Object[] getElements(final Object inputElement) { if (inputElement instanceof Set) { final Set<SchemaNode> set = (Set<SchemaNode>) inputElement; return set.toArray(new Object[set.size()]); } return null; } public void dispose() { } public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } } // ========================================================= // label provider // ========================================================= protected class DependentSchemasLabelProvider extends LabelProvider implements ITableLabelProvider { @Override public Image getColumnImage(final Object element, final int columnIndex) { return null;// Activator.getDefault().getImage(FieldDecorationRegistry.DEC_ERROR); } @Override public String getColumnText(final Object element, final int columnIndex) { final SchemaNode node = (SchemaNode) element; switch (columnIndex) { case 0: return node.getNamespace(); case 1: return node.getFilename(); } return null; } } }