/******************************************************************************* * Copyright (c) 2009, 2010 Progress Software Corporation. * 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 ******************************************************************************/ package org.fusesource.tools.messaging.ui; import java.util.List; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Table; import org.fusesource.tools.messaging.IConstants; public class HeaderPropertyComposite { protected Composite parentComposite; public static final String HEADER_NAME = "Name"; public static final String HEADER_VALUE = "Value"; protected String[] columnNames = new String[] { HEADER_NAME, HEADER_VALUE }; protected Table table; protected TableViewer tableViewer; public HeaderPropertyComposite(Composite parentComposite) { this.parentComposite = parentComposite; createUI(); } public HeaderPropertyComposite(Composite parentComposite, Object model) { this(parentComposite); setModel(model); } public void setModel(Object model) { if (model != null) { tableViewer.setInput(model); } } public void createUI() { tableViewer = new DefaultMessageTableViewer(parentComposite, SWT.FULL_SELECTION, IConstants.EMPTY_STRING); tableViewer.setUseHashlookup(true); tableViewer.setColumnProperties(columnNames); table = tableViewer.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); table.setLinesVisible(true); ((DefaultMessageTableViewer) tableViewer).refreshTable("Name;Value"); initializeTableViewer(); } protected void initializeTableViewer() { tableViewer.setContentProvider(new HeadersViewerContentProvider()); tableViewer.setLabelProvider(new HeadersLabelProvider()); } public Control getControl() { return tableViewer.getTable(); } @SuppressWarnings("unchecked") protected class HeadersViewerContentProvider extends HeadersContentProvider { public HeadersViewerContentProvider() { } @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof List) { List input = (List) inputElement; return input.toArray(new Object[input.size()]); } return null; } } }