org.eclipse.jst.ws.internal.consumption.ui.widgets.object.EJBTableViewer.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.jst.ws.internal.consumption.ui.widgets.object.EJBTableViewer.java

Source

/*******************************************************************************
 * 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;
        }
    }
}