/*******************************************************************************
* Copyright (c) 2008, 2012 Obeo.
* 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:
* Obeo - initial API and implementation
*******************************************************************************/
package org.eclipse.emf.eef.eefnr.parts.forms;
// Start of user code for imports
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.emf.eef.eefnr.parts.EefnrViewsRepository;
import org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart;
import org.eclipse.emf.eef.eefnr.providers.EefnrMessages;
import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent;
import org.eclipse.emf.eef.runtime.api.parts.IFormPropertiesEditionPart;
import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent;
import org.eclipse.emf.eef.runtime.part.impl.SectionPropertiesEditingPart;
import org.eclipse.emf.eef.runtime.ui.parts.PartComposer;
import org.eclipse.emf.eef.runtime.ui.parts.sequence.BindingCompositionSequence;
import org.eclipse.emf.eef.runtime.ui.parts.sequence.CompositionSequence;
import org.eclipse.emf.eef.runtime.ui.parts.sequence.CompositionStep;
import org.eclipse.emf.eef.runtime.ui.utils.EditingUtils;
import org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableContentProvider;
import org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.forms.widgets.Form;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
// End of user code
/**
* @author <a href="mailto:nathalie.lepine@obeo.fr">Nathalie Lepine</a>
*
*/
public class TableCompositionEditorSamplePropertiesEditionPartForm extends SectionPropertiesEditingPart implements IFormPropertiesEditionPart, TableCompositionEditorSamplePropertiesEditionPart {
protected TableViewer tablecompositionRequiredProperty;
protected List<ViewerFilter> tablecompositionRequiredPropertyBusinessFilters = new ArrayList<ViewerFilter>();
protected List<ViewerFilter> tablecompositionRequiredPropertyFilters = new ArrayList<ViewerFilter>();
protected Button addTablecompositionRequiredProperty;
protected Button removeTablecompositionRequiredProperty;
protected Button editTablecompositionRequiredProperty;
protected TableViewer tablecompositionOptionalProperty;
protected List<ViewerFilter> tablecompositionOptionalPropertyBusinessFilters = new ArrayList<ViewerFilter>();
protected List<ViewerFilter> tablecompositionOptionalPropertyFilters = new ArrayList<ViewerFilter>();
protected Button addTablecompositionOptionalProperty;
protected Button removeTablecompositionOptionalProperty;
protected Button editTablecompositionOptionalProperty;
protected TableViewer tablecompositionROProperty;
protected List<ViewerFilter> tablecompositionROPropertyBusinessFilters = new ArrayList<ViewerFilter>();
protected List<ViewerFilter> tablecompositionROPropertyFilters = new ArrayList<ViewerFilter>();
protected Button addTablecompositionROProperty;
protected Button removeTablecompositionROProperty;
protected Button editTablecompositionROProperty;
/**
* For {@link ISection} use only.
*/
public TableCompositionEditorSamplePropertiesEditionPartForm() { super(); }
/**
* Default constructor
* @param editionComponent the {@link IPropertiesEditionComponent} that manage this part
*
*/
public TableCompositionEditorSamplePropertiesEditionPartForm(IPropertiesEditionComponent editionComponent) {
super(editionComponent);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.runtime.api.parts.IFormPropertiesEditionPart#
* createFigure(org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.widgets.FormToolkit)
*
*/
public Composite createFigure(final Composite parent, final FormToolkit widgetFactory) {
ScrolledForm scrolledForm = widgetFactory.createScrolledForm(parent);
Form form = scrolledForm.getForm();
view = form.getBody();
GridLayout layout = new GridLayout();
layout.numColumns = 3;
view.setLayout(layout);
createControls(widgetFactory, view);
return scrolledForm;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.runtime.api.parts.IFormPropertiesEditionPart#
* createControls(org.eclipse.ui.forms.widgets.FormToolkit, org.eclipse.swt.widgets.Composite)
*
*/
public void createControls(final FormToolkit widgetFactory, Composite view) {
CompositionSequence tableCompositionEditorSampleStep = new BindingCompositionSequence(propertiesEditionComponent);
CompositionStep propertiesStep = tableCompositionEditorSampleStep.addStep(EefnrViewsRepository.TableCompositionEditorSample.Properties.class);
propertiesStep.addStep(EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty);
propertiesStep.addStep(EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty);
propertiesStep.addStep(EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty);
composer = new PartComposer(tableCompositionEditorSampleStep) {
@Override
public Composite addToPart(Composite parent, Object key) {
if (key == EefnrViewsRepository.TableCompositionEditorSample.Properties.class) {
return createPropertiesGroup(widgetFactory, parent);
}
if (key == EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty) {
return createTablecompositionRequiredPropertyTableComposition(widgetFactory, parent);
}
if (key == EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty) {
return createTablecompositionOptionalPropertyTableComposition(widgetFactory, parent);
}
if (key == EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty) {
return createTablecompositionROPropertyTableComposition(widgetFactory, parent);
}
return parent;
}
};
composer.compose(view);
}
/**
*
*/
protected Composite createPropertiesGroup(FormToolkit widgetFactory, final Composite parent) {
Section propertiesSection = widgetFactory.createSection(parent, Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED);
propertiesSection.setText(EefnrMessages.TableCompositionEditorSamplePropertiesEditionPart_PropertiesGroupLabel);
GridData propertiesSectionData = new GridData(GridData.FILL_HORIZONTAL);
propertiesSectionData.horizontalSpan = 3;
propertiesSection.setLayoutData(propertiesSectionData);
Composite propertiesGroup = widgetFactory.createComposite(propertiesSection);
GridLayout propertiesGroupLayout = new GridLayout();
propertiesGroupLayout.numColumns = 3;
propertiesGroup.setLayout(propertiesGroupLayout);
propertiesSection.setClient(propertiesGroup);
return propertiesGroup;
}
/**
* @param container
*
*/
protected Composite createTablecompositionRequiredPropertyTableComposition(FormToolkit widgetFactory, Composite container) {
Composite tableContainer = widgetFactory.createComposite(container, SWT.NONE);
GridLayout tableContainerLayout = new GridLayout();
GridData tableContainerData = new GridData(GridData.FILL_BOTH);
tableContainerData.horizontalSpan = 3;
tableContainer.setLayoutData(tableContainerData);
tableContainerLayout.numColumns = 2;
tableContainer.setLayout(tableContainerLayout);
org.eclipse.swt.widgets.Table tableTablecompositionRequiredProperty = widgetFactory.createTable(tableContainer, SWT.FULL_SELECTION | SWT.BORDER);
tableTablecompositionRequiredProperty.setHeaderVisible(true);
GridData gdTablecompositionRequiredProperty = new GridData();
gdTablecompositionRequiredProperty.grabExcessHorizontalSpace = true;
gdTablecompositionRequiredProperty.horizontalAlignment = GridData.FILL;
gdTablecompositionRequiredProperty.grabExcessVerticalSpace = true;
gdTablecompositionRequiredProperty.verticalAlignment = GridData.FILL;
tableTablecompositionRequiredProperty.setLayoutData(gdTablecompositionRequiredProperty);
tableTablecompositionRequiredProperty.setLinesVisible(true);
// Start of user code for columns definition for TablecompositionRequiredProperty
TableColumn name = new TableColumn(tableTablecompositionRequiredProperty, SWT.NONE);
name.setWidth(80);
name.setText("Label"); //$NON-NLS-1$
// End of user code
tablecompositionRequiredProperty = new TableViewer(tableTablecompositionRequiredProperty);
tablecompositionRequiredProperty.setContentProvider(new ArrayContentProvider());
tablecompositionRequiredProperty.setLabelProvider(new ITableLabelProvider() {
//Start of user code for label provider definition for TablecompositionRequiredProperty
public String getColumnText(Object object, int columnIndex) {
AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
if (object instanceof EObject) {
switch (columnIndex) {
case 0:
return labelProvider.getText(object);
}
}
return ""; //$NON-NLS-1$
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
//End of user code
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
});
tablecompositionRequiredProperty.getTable().addListener(SWT.MouseDoubleClick, new Listener(){
public void handleEvent(Event event) {
if (tablecompositionRequiredProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionRequiredProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.EDIT, null, selection.getFirstElement()));
tablecompositionRequiredProperty.refresh();
}
}
}
});
GridData tablecompositionRequiredPropertyData = new GridData(GridData.FILL_HORIZONTAL);
tablecompositionRequiredPropertyData.minimumHeight = 120;
tablecompositionRequiredPropertyData.heightHint = 120;
tablecompositionRequiredProperty.getTable().setLayoutData(tablecompositionRequiredPropertyData);
for (ViewerFilter filter : this.tablecompositionRequiredPropertyFilters) {
tablecompositionRequiredProperty.addFilter(filter);
}
EditingUtils.setID(tablecompositionRequiredProperty.getTable(), EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty);
EditingUtils.setEEFtype(tablecompositionRequiredProperty.getTable(), "eef::TableComposition::field"); //$NON-NLS-1$
createTablecompositionRequiredPropertyPanel(widgetFactory, tableContainer);
// Start of user code for createTablecompositionRequiredPropertyTableComposition
// End of user code
return container;
}
/**
* @param container
*
*/
protected Composite createTablecompositionRequiredPropertyPanel(FormToolkit widgetFactory, Composite container) {
Composite tablecompositionRequiredPropertyPanel = widgetFactory.createComposite(container, SWT.NONE);
GridLayout tablecompositionRequiredPropertyPanelLayout = new GridLayout();
tablecompositionRequiredPropertyPanelLayout.numColumns = 1;
tablecompositionRequiredPropertyPanel.setLayout(tablecompositionRequiredPropertyPanelLayout);
addTablecompositionRequiredProperty = widgetFactory.createButton(tablecompositionRequiredPropertyPanel, EefnrMessages.PropertiesEditionPart_AddTableViewerLabel, SWT.NONE);
GridData addTablecompositionRequiredPropertyData = new GridData(GridData.FILL_HORIZONTAL);
addTablecompositionRequiredProperty.setLayoutData(addTablecompositionRequiredPropertyData);
addTablecompositionRequiredProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.ADD, null, null));
tablecompositionRequiredProperty.refresh();
}
});
EditingUtils.setID(addTablecompositionRequiredProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty);
EditingUtils.setEEFtype(addTablecompositionRequiredProperty, "eef::TableComposition::addbutton"); //$NON-NLS-1$
removeTablecompositionRequiredProperty = widgetFactory.createButton(tablecompositionRequiredPropertyPanel, EefnrMessages.PropertiesEditionPart_RemoveTableViewerLabel, SWT.NONE);
GridData removeTablecompositionRequiredPropertyData = new GridData(GridData.FILL_HORIZONTAL);
removeTablecompositionRequiredProperty.setLayoutData(removeTablecompositionRequiredPropertyData);
removeTablecompositionRequiredProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
if (tablecompositionRequiredProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionRequiredProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
EObject selectedElement = (EObject) selection.getFirstElement();
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.REMOVE, null, selectedElement));
tablecompositionRequiredProperty.refresh();
}
}
}
});
EditingUtils.setID(removeTablecompositionRequiredProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty);
EditingUtils.setEEFtype(removeTablecompositionRequiredProperty, "eef::TableComposition::removebutton"); //$NON-NLS-1$
editTablecompositionRequiredProperty = widgetFactory.createButton(tablecompositionRequiredPropertyPanel, EefnrMessages.PropertiesEditionPart_EditTableViewerLabel, SWT.NONE);
GridData editTablecompositionRequiredPropertyData = new GridData(GridData.FILL_HORIZONTAL);
editTablecompositionRequiredProperty.setLayoutData(editTablecompositionRequiredPropertyData);
editTablecompositionRequiredProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
if (tablecompositionRequiredProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionRequiredProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.EDIT, null, selection.getFirstElement()));
tablecompositionRequiredProperty.refresh();
}
}
}
});
EditingUtils.setID(editTablecompositionRequiredProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty);
EditingUtils.setEEFtype(editTablecompositionRequiredProperty, "eef::TableComposition::editbutton"); //$NON-NLS-1$
// Start of user code for createTablecompositionRequiredPropertyPanel
// End of user code
return tablecompositionRequiredPropertyPanel;
}
/**
* @param container
*
*/
protected Composite createTablecompositionOptionalPropertyTableComposition(FormToolkit widgetFactory, Composite container) {
Composite tableContainer = widgetFactory.createComposite(container, SWT.NONE);
GridLayout tableContainerLayout = new GridLayout();
GridData tableContainerData = new GridData(GridData.FILL_BOTH);
tableContainerData.horizontalSpan = 3;
tableContainer.setLayoutData(tableContainerData);
tableContainerLayout.numColumns = 2;
tableContainer.setLayout(tableContainerLayout);
org.eclipse.swt.widgets.Table tableTablecompositionOptionalProperty = widgetFactory.createTable(tableContainer, SWT.FULL_SELECTION | SWT.BORDER);
tableTablecompositionOptionalProperty.setHeaderVisible(true);
GridData gdTablecompositionOptionalProperty = new GridData();
gdTablecompositionOptionalProperty.grabExcessHorizontalSpace = true;
gdTablecompositionOptionalProperty.horizontalAlignment = GridData.FILL;
gdTablecompositionOptionalProperty.grabExcessVerticalSpace = true;
gdTablecompositionOptionalProperty.verticalAlignment = GridData.FILL;
tableTablecompositionOptionalProperty.setLayoutData(gdTablecompositionOptionalProperty);
tableTablecompositionOptionalProperty.setLinesVisible(true);
// Start of user code for columns definition for TablecompositionOptionalProperty
TableColumn name = new TableColumn(tableTablecompositionOptionalProperty, SWT.NONE);
name.setWidth(80);
name.setText("Label"); //$NON-NLS-1$
// End of user code
tablecompositionOptionalProperty = new TableViewer(tableTablecompositionOptionalProperty);
tablecompositionOptionalProperty.setContentProvider(new ArrayContentProvider());
tablecompositionOptionalProperty.setLabelProvider(new ITableLabelProvider() {
//Start of user code for label provider definition for TablecompositionOptionalProperty
public String getColumnText(Object object, int columnIndex) {
AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
if (object instanceof EObject) {
switch (columnIndex) {
case 0:
return labelProvider.getText(object);
}
}
return ""; //$NON-NLS-1$
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
//End of user code
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
});
tablecompositionOptionalProperty.getTable().addListener(SWT.MouseDoubleClick, new Listener(){
public void handleEvent(Event event) {
if (tablecompositionOptionalProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionOptionalProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.EDIT, null, selection.getFirstElement()));
tablecompositionOptionalProperty.refresh();
}
}
}
});
GridData tablecompositionOptionalPropertyData = new GridData(GridData.FILL_HORIZONTAL);
tablecompositionOptionalPropertyData.minimumHeight = 120;
tablecompositionOptionalPropertyData.heightHint = 120;
tablecompositionOptionalProperty.getTable().setLayoutData(tablecompositionOptionalPropertyData);
for (ViewerFilter filter : this.tablecompositionOptionalPropertyFilters) {
tablecompositionOptionalProperty.addFilter(filter);
}
EditingUtils.setID(tablecompositionOptionalProperty.getTable(), EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty);
EditingUtils.setEEFtype(tablecompositionOptionalProperty.getTable(), "eef::TableComposition::field"); //$NON-NLS-1$
createTablecompositionOptionalPropertyPanel(widgetFactory, tableContainer);
// Start of user code for createTablecompositionOptionalPropertyTableComposition
// End of user code
return container;
}
/**
* @param container
*
*/
protected Composite createTablecompositionOptionalPropertyPanel(FormToolkit widgetFactory, Composite container) {
Composite tablecompositionOptionalPropertyPanel = widgetFactory.createComposite(container, SWT.NONE);
GridLayout tablecompositionOptionalPropertyPanelLayout = new GridLayout();
tablecompositionOptionalPropertyPanelLayout.numColumns = 1;
tablecompositionOptionalPropertyPanel.setLayout(tablecompositionOptionalPropertyPanelLayout);
addTablecompositionOptionalProperty = widgetFactory.createButton(tablecompositionOptionalPropertyPanel, EefnrMessages.PropertiesEditionPart_AddTableViewerLabel, SWT.NONE);
GridData addTablecompositionOptionalPropertyData = new GridData(GridData.FILL_HORIZONTAL);
addTablecompositionOptionalProperty.setLayoutData(addTablecompositionOptionalPropertyData);
addTablecompositionOptionalProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.ADD, null, null));
tablecompositionOptionalProperty.refresh();
}
});
EditingUtils.setID(addTablecompositionOptionalProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty);
EditingUtils.setEEFtype(addTablecompositionOptionalProperty, "eef::TableComposition::addbutton"); //$NON-NLS-1$
removeTablecompositionOptionalProperty = widgetFactory.createButton(tablecompositionOptionalPropertyPanel, EefnrMessages.PropertiesEditionPart_RemoveTableViewerLabel, SWT.NONE);
GridData removeTablecompositionOptionalPropertyData = new GridData(GridData.FILL_HORIZONTAL);
removeTablecompositionOptionalProperty.setLayoutData(removeTablecompositionOptionalPropertyData);
removeTablecompositionOptionalProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
if (tablecompositionOptionalProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionOptionalProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
EObject selectedElement = (EObject) selection.getFirstElement();
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.REMOVE, null, selectedElement));
tablecompositionOptionalProperty.refresh();
}
}
}
});
EditingUtils.setID(removeTablecompositionOptionalProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty);
EditingUtils.setEEFtype(removeTablecompositionOptionalProperty, "eef::TableComposition::removebutton"); //$NON-NLS-1$
editTablecompositionOptionalProperty = widgetFactory.createButton(tablecompositionOptionalPropertyPanel, EefnrMessages.PropertiesEditionPart_EditTableViewerLabel, SWT.NONE);
GridData editTablecompositionOptionalPropertyData = new GridData(GridData.FILL_HORIZONTAL);
editTablecompositionOptionalProperty.setLayoutData(editTablecompositionOptionalPropertyData);
editTablecompositionOptionalProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
if (tablecompositionOptionalProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionOptionalProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.EDIT, null, selection.getFirstElement()));
tablecompositionOptionalProperty.refresh();
}
}
}
});
EditingUtils.setID(editTablecompositionOptionalProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty);
EditingUtils.setEEFtype(editTablecompositionOptionalProperty, "eef::TableComposition::editbutton"); //$NON-NLS-1$
// Start of user code for createTablecompositionOptionalPropertyPanel
// End of user code
return tablecompositionOptionalPropertyPanel;
}
/**
* @param container
*
*/
protected Composite createTablecompositionROPropertyTableComposition(FormToolkit widgetFactory, Composite container) {
Composite tableContainer = widgetFactory.createComposite(container, SWT.NONE);
GridLayout tableContainerLayout = new GridLayout();
GridData tableContainerData = new GridData(GridData.FILL_BOTH);
tableContainerData.horizontalSpan = 3;
tableContainer.setLayoutData(tableContainerData);
tableContainerLayout.numColumns = 2;
tableContainer.setLayout(tableContainerLayout);
org.eclipse.swt.widgets.Table tableTablecompositionROProperty = widgetFactory.createTable(tableContainer, SWT.FULL_SELECTION | SWT.BORDER);
tableTablecompositionROProperty.setHeaderVisible(true);
GridData gdTablecompositionROProperty = new GridData();
gdTablecompositionROProperty.grabExcessHorizontalSpace = true;
gdTablecompositionROProperty.horizontalAlignment = GridData.FILL;
gdTablecompositionROProperty.grabExcessVerticalSpace = true;
gdTablecompositionROProperty.verticalAlignment = GridData.FILL;
tableTablecompositionROProperty.setLayoutData(gdTablecompositionROProperty);
tableTablecompositionROProperty.setLinesVisible(true);
// Start of user code for columns definition for TablecompositionROProperty
TableColumn name = new TableColumn(tableTablecompositionROProperty, SWT.NONE);
name.setWidth(80);
name.setText("Label"); //$NON-NLS-1$
// End of user code
tablecompositionROProperty = new TableViewer(tableTablecompositionROProperty);
tablecompositionROProperty.setContentProvider(new ArrayContentProvider());
tablecompositionROProperty.setLabelProvider(new ITableLabelProvider() {
//Start of user code for label provider definition for TablecompositionROProperty
public String getColumnText(Object object, int columnIndex) {
AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
if (object instanceof EObject) {
switch (columnIndex) {
case 0:
return labelProvider.getText(object);
}
}
return ""; //$NON-NLS-1$
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
//End of user code
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
});
tablecompositionROProperty.getTable().addListener(SWT.MouseDoubleClick, new Listener(){
public void handleEvent(Event event) {
if (tablecompositionROProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionROProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.EDIT, null, selection.getFirstElement()));
tablecompositionROProperty.refresh();
}
}
}
});
GridData tablecompositionROPropertyData = new GridData(GridData.FILL_HORIZONTAL);
tablecompositionROPropertyData.minimumHeight = 120;
tablecompositionROPropertyData.heightHint = 120;
tablecompositionROProperty.getTable().setLayoutData(tablecompositionROPropertyData);
for (ViewerFilter filter : this.tablecompositionROPropertyFilters) {
tablecompositionROProperty.addFilter(filter);
}
EditingUtils.setID(tablecompositionROProperty.getTable(), EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty);
EditingUtils.setEEFtype(tablecompositionROProperty.getTable(), "eef::TableComposition::field"); //$NON-NLS-1$
createTablecompositionROPropertyPanel(widgetFactory, tableContainer);
// Start of user code for createTablecompositionROPropertyTableComposition
// End of user code
return container;
}
/**
* @param container
*
*/
protected Composite createTablecompositionROPropertyPanel(FormToolkit widgetFactory, Composite container) {
Composite tablecompositionROPropertyPanel = widgetFactory.createComposite(container, SWT.NONE);
GridLayout tablecompositionROPropertyPanelLayout = new GridLayout();
tablecompositionROPropertyPanelLayout.numColumns = 1;
tablecompositionROPropertyPanel.setLayout(tablecompositionROPropertyPanelLayout);
addTablecompositionROProperty = widgetFactory.createButton(tablecompositionROPropertyPanel, EefnrMessages.PropertiesEditionPart_AddTableViewerLabel, SWT.NONE);
GridData addTablecompositionROPropertyData = new GridData(GridData.FILL_HORIZONTAL);
addTablecompositionROProperty.setLayoutData(addTablecompositionROPropertyData);
addTablecompositionROProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.ADD, null, null));
tablecompositionROProperty.refresh();
}
});
EditingUtils.setID(addTablecompositionROProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty);
EditingUtils.setEEFtype(addTablecompositionROProperty, "eef::TableComposition::addbutton"); //$NON-NLS-1$
removeTablecompositionROProperty = widgetFactory.createButton(tablecompositionROPropertyPanel, EefnrMessages.PropertiesEditionPart_RemoveTableViewerLabel, SWT.NONE);
GridData removeTablecompositionROPropertyData = new GridData(GridData.FILL_HORIZONTAL);
removeTablecompositionROProperty.setLayoutData(removeTablecompositionROPropertyData);
removeTablecompositionROProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
if (tablecompositionROProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionROProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
EObject selectedElement = (EObject) selection.getFirstElement();
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty, PropertiesEditionEvent.CHANGE, PropertiesEditionEvent.REMOVE, null, selectedElement));
tablecompositionROProperty.refresh();
}
}
}
});
EditingUtils.setID(removeTablecompositionROProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty);
EditingUtils.setEEFtype(removeTablecompositionROProperty, "eef::TableComposition::removebutton"); //$NON-NLS-1$
editTablecompositionROProperty = widgetFactory.createButton(tablecompositionROPropertyPanel, EefnrMessages.PropertiesEditionPart_EditTableViewerLabel, SWT.NONE);
GridData editTablecompositionROPropertyData = new GridData(GridData.FILL_HORIZONTAL);
editTablecompositionROProperty.setLayoutData(editTablecompositionROPropertyData);
editTablecompositionROProperty.addSelectionListener(new SelectionAdapter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*
*/
public void widgetSelected(SelectionEvent e) {
if (tablecompositionROProperty.getSelection() instanceof IStructuredSelection) {
IStructuredSelection selection = (IStructuredSelection) tablecompositionROProperty.getSelection();
if (selection.getFirstElement() instanceof EObject) {
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(TableCompositionEditorSamplePropertiesEditionPartForm.this, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty, PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.EDIT, null, selection.getFirstElement()));
tablecompositionROProperty.refresh();
}
}
}
});
EditingUtils.setID(editTablecompositionROProperty, EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionROProperty);
EditingUtils.setEEFtype(editTablecompositionROProperty, "eef::TableComposition::editbutton"); //$NON-NLS-1$
// Start of user code for createTablecompositionROPropertyPanel
// End of user code
return tablecompositionROPropertyPanel;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionListener#firePropertiesChanged(org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent)
*
*/
public void firePropertiesChanged(IPropertiesEditionEvent event) {
// Start of user code for tab synchronization
// End of user code
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#initTablecompositionRequiredProperty(EObject current, EReference containingFeature, EReference feature)
*/
public void initTablecompositionRequiredProperty(ReferencesTableSettings settings) {
if (current.eResource() != null && current.eResource().getResourceSet() != null)
this.resourceSet = current.eResource().getResourceSet();
ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
tablecompositionRequiredProperty.setContentProvider(contentProvider);
tablecompositionRequiredProperty.setInput(settings);
boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionRequiredProperty);
if (eefElementEditorReadOnlyState && tablecompositionRequiredProperty.getTable().isEnabled()) {
tablecompositionRequiredProperty.getTable().setEnabled(false);
tablecompositionRequiredProperty.getTable().setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
addTablecompositionRequiredProperty.setEnabled(false);
addTablecompositionRequiredProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
removeTablecompositionRequiredProperty.setEnabled(false);
removeTablecompositionRequiredProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
editTablecompositionRequiredProperty.setEnabled(false);
editTablecompositionRequiredProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
} else if (!eefElementEditorReadOnlyState && !tablecompositionRequiredProperty.getTable().isEnabled()) {
tablecompositionRequiredProperty.getTable().setEnabled(true);
addTablecompositionRequiredProperty.setEnabled(true);
removeTablecompositionRequiredProperty.setEnabled(true);
editTablecompositionRequiredProperty.setEnabled(true);
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#updateTablecompositionRequiredProperty()
*
*/
public void updateTablecompositionRequiredProperty() {
tablecompositionRequiredProperty.refresh();
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#addFilterTablecompositionRequiredProperty(ViewerFilter filter)
*
*/
public void addFilterToTablecompositionRequiredProperty(ViewerFilter filter) {
tablecompositionRequiredPropertyFilters.add(filter);
if (this.tablecompositionRequiredProperty != null) {
this.tablecompositionRequiredProperty.addFilter(filter);
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#addBusinessFilterTablecompositionRequiredProperty(ViewerFilter filter)
*
*/
public void addBusinessFilterToTablecompositionRequiredProperty(ViewerFilter filter) {
tablecompositionRequiredPropertyBusinessFilters.add(filter);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#isContainedInTablecompositionRequiredPropertyTable(EObject element)
*
*/
public boolean isContainedInTablecompositionRequiredPropertyTable(EObject element) {
return ((ReferencesTableSettings)tablecompositionRequiredProperty.getInput()).contains(element);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#initTablecompositionOptionalProperty(EObject current, EReference containingFeature, EReference feature)
*/
public void initTablecompositionOptionalProperty(ReferencesTableSettings settings) {
if (current.eResource() != null && current.eResource().getResourceSet() != null)
this.resourceSet = current.eResource().getResourceSet();
ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
tablecompositionOptionalProperty.setContentProvider(contentProvider);
tablecompositionOptionalProperty.setInput(settings);
boolean eefElementEditorReadOnlyState = isReadOnly(EefnrViewsRepository.TableCompositionEditorSample.Properties.tablecompositionOptionalProperty);
if (eefElementEditorReadOnlyState && tablecompositionOptionalProperty.getTable().isEnabled()) {
tablecompositionOptionalProperty.getTable().setEnabled(false);
tablecompositionOptionalProperty.getTable().setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
addTablecompositionOptionalProperty.setEnabled(false);
addTablecompositionOptionalProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
removeTablecompositionOptionalProperty.setEnabled(false);
removeTablecompositionOptionalProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
editTablecompositionOptionalProperty.setEnabled(false);
editTablecompositionOptionalProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
} else if (!eefElementEditorReadOnlyState && !tablecompositionOptionalProperty.getTable().isEnabled()) {
tablecompositionOptionalProperty.getTable().setEnabled(true);
addTablecompositionOptionalProperty.setEnabled(true);
removeTablecompositionOptionalProperty.setEnabled(true);
editTablecompositionOptionalProperty.setEnabled(true);
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#updateTablecompositionOptionalProperty()
*
*/
public void updateTablecompositionOptionalProperty() {
tablecompositionOptionalProperty.refresh();
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#addFilterTablecompositionOptionalProperty(ViewerFilter filter)
*
*/
public void addFilterToTablecompositionOptionalProperty(ViewerFilter filter) {
tablecompositionOptionalPropertyFilters.add(filter);
if (this.tablecompositionOptionalProperty != null) {
this.tablecompositionOptionalProperty.addFilter(filter);
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#addBusinessFilterTablecompositionOptionalProperty(ViewerFilter filter)
*
*/
public void addBusinessFilterToTablecompositionOptionalProperty(ViewerFilter filter) {
tablecompositionOptionalPropertyBusinessFilters.add(filter);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#isContainedInTablecompositionOptionalPropertyTable(EObject element)
*
*/
public boolean isContainedInTablecompositionOptionalPropertyTable(EObject element) {
return ((ReferencesTableSettings)tablecompositionOptionalProperty.getInput()).contains(element);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#initTablecompositionROProperty(EObject current, EReference containingFeature, EReference feature)
*/
public void initTablecompositionROProperty(ReferencesTableSettings settings) {
if (current.eResource() != null && current.eResource().getResourceSet() != null)
this.resourceSet = current.eResource().getResourceSet();
ReferencesTableContentProvider contentProvider = new ReferencesTableContentProvider();
tablecompositionROProperty.setContentProvider(contentProvider);
tablecompositionROProperty.setInput(settings);
tablecompositionROProperty.getTable().setEnabled(false);
tablecompositionROProperty.getTable().setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
addTablecompositionROProperty.setEnabled(false);
addTablecompositionROProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
removeTablecompositionROProperty.setEnabled(false);
removeTablecompositionROProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
editTablecompositionROProperty.setEnabled(false);
editTablecompositionROProperty.setToolTipText(EefnrMessages.TableCompositionEditorSample_ReadOnly);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#updateTablecompositionROProperty()
*
*/
public void updateTablecompositionROProperty() {
tablecompositionROProperty.refresh();
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#addFilterTablecompositionROProperty(ViewerFilter filter)
*
*/
public void addFilterToTablecompositionROProperty(ViewerFilter filter) {
tablecompositionROPropertyFilters.add(filter);
if (this.tablecompositionROProperty != null) {
this.tablecompositionROProperty.addFilter(filter);
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#addBusinessFilterTablecompositionROProperty(ViewerFilter filter)
*
*/
public void addBusinessFilterToTablecompositionROProperty(ViewerFilter filter) {
tablecompositionROPropertyBusinessFilters.add(filter);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.eefnr.parts.TableCompositionEditorSamplePropertiesEditionPart#isContainedInTablecompositionROPropertyTable(EObject element)
*
*/
public boolean isContainedInTablecompositionROPropertyTable(EObject element) {
return ((ReferencesTableSettings)tablecompositionROProperty.getInput()).contains(element);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.runtime.api.parts.IPropertiesEditionPart#getTitle()
*
*/
public String getTitle() {
return EefnrMessages.TableCompositionEditorSample_Part_Title;
}
// Start of user code additional methods
// End of user code
}