Java tutorial
/******************************************************************************* * Copyright (c) 2010 Kai Toedter and Siemens 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: * Kai Toedter - initial API and implementation *******************************************************************************/ package com.siemens.ct.osgi.vaadin.pm.tableview; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.siemens.ct.osgi.vaadin.pm.main.service.IViewContribution; import com.siemens.ct.pm.model.IPerson; import com.siemens.ct.pm.model.IPersonManager; import com.vaadin.Application; import com.vaadin.ui.Component; import com.vaadin.ui.Table; import com.vaadin.ui.VerticalLayout; public class TableView implements IViewContribution { protected Logger logger = LoggerFactory.getLogger(TableView.class); protected IPersonManager personManager; private Component view; private Table table; @Override public String getIcon() { return "icons/application_view_columns.png"; } @Override public String getName() { return "Table View"; } @Override public Component getView(Application application) { if (view == null) { VerticalLayout verticalLayout = new VerticalLayout(); verticalLayout.setMargin(true); table = new Table(); table.addContainerProperty("Name", String.class, null); table.addContainerProperty("First Name", String.class, null); table.addContainerProperty("Last Name", String.class, null); table.addContainerProperty("Company", String.class, null); table.setWidth("100%"); table.setPageLength(9); table.setImmediate(true); verticalLayout.addComponent(table); view = verticalLayout; synchronized (this) { if (personManager != null) { refreshTable(); } } } return view; } public void removePersonManager(final IPersonManager personManager) { logger.debug("TableView.removePersonManager()"); if (this.personManager == personManager) { this.personManager = null; table.removeAllItems(); } } public void setPersonManager(final IPersonManager personManager) { logger.debug("TableView.setPersonManager()"); synchronized (this) { this.personManager = personManager; if (table != null) { refreshTable(); } } } void refreshTable() { List<IPerson> persons = personManager.getPersons(); table.removeAllItems(); int i = 1; for (IPerson person : persons) { table.addItem(new Object[] { person.getFirstName() + " " + person.getLastName(), person.getFirstName(), person.getLastName(), person.getCompany() }, i++); } } }