Java tutorial
/******************************************************************************* * Copyright (c) 2004, 2006 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation * yyyymmdd bug Email and other contact information * -------- -------- ----------------------------------------------------------- * 20060524 141194 joan@ca.ibm.com - Joan Haggarty *******************************************************************************/ package org.eclipse.jst.ws.internal.consumption.ui.widgets.object; import java.util.Vector; import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TableLayout; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; public class EJBTableViewer extends TableViewer { private Vector beanNames; private Vector projectNames; public EJBTableViewer(Composite parent) { super(parent, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); String columnProperties[] = { ConsumptionUIMessages.TABLE_TITLE_EJB_BEAN_NAMES, ConsumptionUIMessages.TABLE_TITLE_EJB_PROJECT_NAME }; int columnsWidth[] = { 60, 20 }; int columnMins[] = { 175, 125 }; Table table = getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); TableLayout layout = new TableLayout(); for (int i = 0; i < columnProperties.length; i++) { TableColumn column = new TableColumn(table, SWT.NONE, i); column.setText(columnProperties[i]); column.pack(); layout.addColumnData(new ColumnWeightData(columnsWidth[i], columnMins[i], true)); } table.setLayout(layout); setColumnProperties(columnProperties); setContentProvider(new EJBContentProvider()); setLabelProvider(new EJBLabelProvider()); } public void setData(Vector beanNames, Vector projectNames) { this.beanNames = beanNames; this.projectNames = projectNames; } private class EJBLabelProvider extends LabelProvider implements ITableLabelProvider { public String getColumnText(Object object, int columnIndex) { String result = null; if (object instanceof Integer) { int index = ((Integer) object).intValue(); if (columnIndex == 0) { return (String) (beanNames.elementAt(index)); } else if (columnIndex == 1) { return (String) (projectNames.elementAt(index)); } } return result; } public Image getColumnImage(Object object, int columnIndex) { return null; } } public class EJBContentProvider implements IStructuredContentProvider { public Object[] getElements(Object element) { if (beanNames != null) { int size = beanNames.size(); Object[] result = new Object[size]; for (int index = 0; index < size; index++) { result[index] = new Integer(index); } return result; } return null; } public void dispose() { } public void inputChanged(Viewer viewer, Object old, Object newobj) { } public boolean isDeleted(Object object) { return false; } } }