blob: 7d21ec76e8aa34fea78049d8c608d878ab77cb52 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 Oracle. 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: Oracle. - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.ui.internal.mappings.details;
import org.eclipse.emf.common.command.CommandStack;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jpt.core.internal.mappings.IMappedSuperclass;
import org.eclipse.jpt.ui.internal.details.BaseJpaComposite;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
public class MappedSuperclassComposite extends BaseJpaComposite
{
private IMappedSuperclass mappedSuperclass;
private Adapter mappedSuperclassListener;
private CommandStack commandStack;
public MappedSuperclassComposite(Composite parent, CommandStack commandStack, TabbedPropertySheetWidgetFactory widgetFactory) {
super(parent, SWT.NULL, commandStack, widgetFactory);
this.mappedSuperclassListener = buildMappedSuperclassListener();
}
private Adapter buildMappedSuperclassListener() {
return new AdapterImpl() {
@Override
public void notifyChanged(Notification notification) {
mappedSuperclassChanged(notification);
}
};
}
@Override
protected void initializeLayout(Composite composite) {
composite.setLayout(new FillLayout(SWT.VERTICAL));
// Label accessTypeLabel = new Label(composite, SWT.LEFT);
// accessTypeLabel.setText(DaliUiMessages.MappedSuperclassComposite_accessType);
// this.accessTypeComboViewer = buildAccessTypeCombo(composite);
// //eventually this will be enabled if editing xml instead of java
// this.accessTypeComboViewer.getCombo().setEnabled(false);
// GridData gridData = new GridData();
// gridData.horizontalAlignment = GridData.FILL;
// gridData.grabExcessHorizontalSpace = true;
// this.accessTypeComboViewer.getCombo().setLayoutData(gridData);
// PlatformUI.getWorkbench().getHelpSystem().setHelp(this.accessTypeComboViewer.getCombo(), IDaliHelpContextIds.ENTITY_ACCESS_TYPE);
}
// private ComboViewer buildAccessTypeCombo(Composite parent) {
// ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);
// viewer.add(AccessType.VALUES.toArray());
// viewer.addSelectionChangedListener(new ISelectionChangedListener() {
// public void selectionChanged(SelectionChangedEvent event) {
// if (populating) {
// return;
// }
// if (event.getSelection() instanceof StructuredSelection) {
// StructuredSelection selection = (StructuredSelection) event.getSelection();
// editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, persistentType, OrmPackage.eINSTANCE.getPersistentType_AccessType(), selection.getFirstElement()));
// }
// }
// });
// return viewer;
// }
@Override
protected void doPopulate(EObject model) {
this.mappedSuperclass = (IMappedSuperclass) model;
}
@Override
protected void doPopulate() {
}
protected void engageListeners() {
// this.persistentTypeItemProvider.addListener(getPersistentTypeListener());
// this.persistentType.eAdapters().add(this.persistentTypeItemProvider);
}
protected void disengageListeners() {
// if (this.persistentType != null){
// this.persistentType.eAdapters().remove(this.persistentTypeItemProvider);
// this.persistentTypeItemProvider.removeListener(getPersistentTypeListener());
// }
}
private void mappedSuperclassChanged(Notification notification) {
}
// private INotifyChangedListener getPersistentTypeListener() {
// if (this.persistentTypeListener == null) {
// this.persistentTypeListener = new INotifyChangedListener() {
// public void notifyChanged(Notification notification) {
// if (notification.getFeatureID(PersistentType.class) == OrmPackage.PERSISTENT_TYPE__ACCESS_TYPE) {
// final AccessType accessType = (AccessType) notification.getNewValue();
// Display.getDefault().syncExec(new Runnable() {
// public void run() {
// if (((StructuredSelection) accessTypeComboViewer.getSelection()).getFirstElement() != accessType) {
// accessTypeComboViewer.setSelection(new StructuredSelection(accessType));
// }
// }
// });
// }
// }
// };
// }
// return this.persistentTypeListener;
// }
}