Java tutorial
/** * Copyright (C) 2013 MOULIS Marius <moulis.marius@gmail.com> * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/> * */ package com.moulis.rcp.guido.client.view; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.part.ViewPart; import com.moulis.rcp.guido.client.model.Client; import com.moulis.rcp.guido.client.model.ClientList; public class ClientView extends ViewPart { public ClientView() { } public static final String ID = "com.moulis.rcp.guido.client.view.ClientView"; //$NON-NLS-1$ private Table table; /** * Create contents of the view part. * * @param parent */ @Override public void createPartControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); container.setLayout(new FillLayout(SWT.HORIZONTAL)); buildTableViewer(container); } private void buildTableViewer(Composite container) { Composite tableComposite = new Composite(container, SWT.NONE); TableViewer tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION); table = tableViewer.getTable(); table.setHeaderVisible(true); TableColumnLayout columnLayout = new TableColumnLayout(); tableComposite.setLayout(columnLayout); buildTableViewerColumns(tableViewer, columnLayout); tableViewer.setContentProvider(ArrayContentProvider.getInstance()); tableViewer.setInput(getClientListBouchon().getList()); } private void buildTableViewerColumns(TableViewer tableViewer, TableColumnLayout columnLayout) { TableViewerColumn lastNameTableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableColumn lastNameTableColumn = lastNameTableViewerColumn.getColumn(); lastNameTableColumn.setWidth(100); lastNameTableColumn.setText("Nom"); lastNameTableViewerColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { String text = null; if (element instanceof Client) { Client client = (Client) element; text = client.getLastName(); } return text; } }); columnLayout.setColumnData(lastNameTableColumn, new ColumnWeightData(50)); TableViewerColumn firstNameTableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); firstNameTableViewerColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { String text = null; if (element instanceof Client) { Client client = (Client) element; text = client.getFirstName(); } return text; } }); TableColumn firstNameTableColumn = firstNameTableViewerColumn.getColumn(); firstNameTableColumn.setWidth(100); firstNameTableColumn.setText("Prnom(s)"); columnLayout.setColumnData(firstNameTableColumn, new ColumnWeightData(50)); } private ClientList getClientListBouchon() { ClientList clientList = new ClientList(); clientList.addClient(new Client("Doe", "John", "Nowhere", "+33(0)699999999", "+33(0)699999999", "john.doe@gmail.com", "Nice")); clientList.addClient(new Client("Doe", "John", "Nowhere", "+33(0)699999999", "+33(0)699999999", "john.doe@gmail.com", "Nice")); clientList.addClient(new Client("Doe", "John", "Nowhere", "+33(0)699999999", "+33(0)699999999", "john.doe@gmail.com", "Nice")); clientList.addClient(new Client("Doe", "John", "Nowhere", "+33(0)699999999", "+33(0)699999999", "john.doe@gmail.com", "Nice")); clientList.addClient(new Client("Doe", "John", "Nowhere", "+33(0)699999999", "+33(0)699999999", "john.doe@gmail.com", "Nice")); clientList.addClient(new Client("Doe", "John", "Nowhere", "+33(0)699999999", "+33(0)699999999", "john.doe@gmail.com", "Nice")); return clientList; } @Override public void setFocus() { // Set the focus } }