blob: 2663a742b03dbcbdcfe225a2a94995c9fef65041 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* 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:
* Pierre Allard - initial API and implementation
* Regent L'Archeveque
*
* SPDX-License-Identifier: EPL-1.0
*******************************************************************************/
package org.eclipse.apogy.addons.ui.composites;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.apogy.core.FeatureOfInterestList;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
public class ListOfFeatureOfInterestListComposite extends Composite {
private final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
private final Collection<FeatureOfInterestList> list = new ArrayList<FeatureOfInterestList>();
private final TableViewer viewer;
public ListOfFeatureOfInterestListComposite(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout(1, false));
// Table Viewer
this.viewer = new TableViewer(this, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
Table table = this.viewer.getTable();
table.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
GridData gd_table = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
gd_table.minimumWidth = 300;
gd_table.widthHint = 300;
table.setLayoutData(gd_table);
table.setLinesVisible(true);
ColumnViewerToolTipSupport.enableFor(this.viewer);
this.viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
newFeatureOfInterestListSelected(
(FeatureOfInterestList) ((IStructuredSelection) event.getSelection()).getFirstElement());
}
});
TableViewerColumn tableViewerColumnItem_Name = new TableViewerColumn(this.viewer, SWT.NONE);
TableColumn trclmnItemName = tableViewerColumnItem_Name.getColumn();
trclmnItemName.setText("Feature Of Interest List");
trclmnItemName.setWidth(400);
this.viewer.setContentProvider(new ArrayContentProvider());
this.viewer.setLabelProvider(new AdapterFactoryLabelProvider(this.adapterFactory));
this.viewer.setInput(this.list);
}
@Override
public void dispose() {
super.dispose();
}
public Collection<FeatureOfInterestList> getList() {
return this.list;
}
public void setList(Collection<FeatureOfInterestList> newList) {
this.list.clear();
if (newList != null) {
this.list.addAll(newList);
}
this.viewer.setInput(this.list);
}
protected void newFeatureOfInterestListSelected(FeatureOfInterestList featureOfInterestList) {
}
}