/*******************************************************************************
* Copyright (c) 2008, 2011 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.navigation.parts.forms;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.emf.eef.mapping.navigation.SimpleModelNavigation;
import org.eclipse.emf.eef.mapping.navigation.parts.NavigationViewsRepository;
import org.eclipse.emf.eef.mapping.navigation.parts.forms.SimpleModelNavigationPropertiesEditionPartForm;
import org.eclipse.emf.eef.mapping.navigation.providers.NavigationMessages;
import org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent;
import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent;
import org.eclipse.emf.eef.runtime.ui.widgets.EObjectFlatComboViewer;
import org.eclipse.emf.eef.runtime.ui.widgets.FormUtils;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.widgets.FormToolkit;
/**
* @author <a href="mailto:nathalie.lepine@obeo.fr">Nathalie Lepine</a>
*/
public class SimpleModelNavigationCustomPropertiesEditionPartForm extends SimpleModelNavigationPropertiesEditionPartForm {
public SimpleModelNavigationCustomPropertiesEditionPartForm(IPropertiesEditionComponent editionComponent) {
super(editionComponent);
}
/**
* @param propertiesGroup
*/
protected Composite createFeatureFlatComboViewer(Composite parent, FormToolkit widgetFactory) {
FormUtils.createPartLabel(widgetFactory, parent,
NavigationMessages.SimpleModelNavigationPropertiesEditionPart_FeatureLabel, true);
feature = new EObjectFlatComboViewer(parent, false);
feature.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
feature.addFilter(new ViewerFilter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
* java.lang.Object, java.lang.Object)
*/
public boolean select(Viewer viewer, Object parentElement, Object element) {
return (element instanceof EReference);
}
});
GridData featureData = new GridData(GridData.FILL_HORIZONTAL);
feature.setLayoutData(featureData);
feature.addSelectionChangedListener(new ISelectionChangedListener() {
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
*/
public void selectionChanged(SelectionChangedEvent event) {
if (propertiesEditionComponent != null)
propertiesEditionComponent.firePropertiesChanged(new PropertiesEditionEvent(
SimpleModelNavigationCustomPropertiesEditionPartForm.this,
NavigationViewsRepository.SimpleModelNavigation.Properties.feature,
PropertiesEditionEvent.COMMIT, PropertiesEditionEvent.SET, null, getFeature()));
setDiscriminatorInput((SimpleModelNavigation)current, resourceSet);
}
});
FormUtils.createHelpButton(widgetFactory, parent, null, null); //$NON-NLS-1$
return parent;
}
}