blob: 579f341a9a9d39de87ca29fe585f12aa38ad6972 [file] [log] [blame]
/**
* Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Eugen Neufeld - initial API and implementation
*/
package org.eclipse.emf.ecp.view.spi.table.model.impl;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.emf.ecp.view.spi.model.VView;
import org.eclipse.emf.ecp.view.spi.model.impl.VControlImpl;
import org.eclipse.emf.ecp.view.spi.table.model.DetailEditing;
import org.eclipse.emf.ecp.view.spi.table.model.VTableColumnConfiguration;
import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
import org.eclipse.emf.ecp.view.spi.table.model.VTablePackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Control</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* </p>
* <ul>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#isAddRemoveDisabled <em>Add Remove
* Disabled</em>}</li>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#isMoveUpDownDisabled <em>Move Up Down
* Disabled</em>}</li>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#getColumnConfigurations <em>Column
* Configurations</em>}</li>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#getDetailEditing <em>Detail
* Editing</em>}</li>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#getDetailView <em>Detail View</em>}</li>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#isEnableDetailEditingDialog <em>Enable
* Detail Editing Dialog</em>}</li>
* <li>{@link org.eclipse.emf.ecp.view.spi.table.model.impl.VTableControlImpl#isDuplicateDisabled <em>Duplicate
* Disabled</em>}</li>
* </ul>
*
* @generated
*/
public class VTableControlImpl extends VControlImpl implements VTableControl {
/**
* The default value of the '{@link #isAddRemoveDisabled() <em>Add Remove Disabled</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #isAddRemoveDisabled()
* @generated
* @ordered
*/
protected static final boolean ADD_REMOVE_DISABLED_EDEFAULT = false;
/**
* The cached value of the '{@link #isAddRemoveDisabled() <em>Add Remove Disabled</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #isAddRemoveDisabled()
* @generated
* @ordered
*/
protected boolean addRemoveDisabled = ADD_REMOVE_DISABLED_EDEFAULT;
/**
* The default value of the '{@link #isMoveUpDownDisabled() <em>Move Up Down Disabled</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #isMoveUpDownDisabled()
* @generated
* @ordered
*/
protected static final boolean MOVE_UP_DOWN_DISABLED_EDEFAULT = true;
/**
* The cached value of the '{@link #isMoveUpDownDisabled() <em>Move Up Down Disabled</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #isMoveUpDownDisabled()
* @generated
* @ordered
*/
protected boolean moveUpDownDisabled = MOVE_UP_DOWN_DISABLED_EDEFAULT;
/**
* The cached value of the '{@link #getColumnConfigurations() <em>Column Configurations</em>}' containment reference
* list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getColumnConfigurations()
* @generated
* @ordered
*/
protected EList<VTableColumnConfiguration> columnConfigurations;
/**
* The default value of the '{@link #getDetailEditing() <em>Detail Editing</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getDetailEditing()
* @generated
* @ordered
*/
protected static final DetailEditing DETAIL_EDITING_EDEFAULT = DetailEditing.NONE;
/**
* The cached value of the '{@link #getDetailEditing() <em>Detail Editing</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getDetailEditing()
* @generated
* @ordered
*/
protected DetailEditing detailEditing = DETAIL_EDITING_EDEFAULT;
/**
* The cached value of the '{@link #getDetailView() <em>Detail View</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getDetailView()
* @generated
* @ordered
*/
protected VView detailView;
/**
* The default value of the '{@link #isEnableDetailEditingDialog() <em>Enable Detail Editing Dialog</em>}'
* attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #isEnableDetailEditingDialog()
* @generated
* @ordered
*/
protected static final boolean ENABLE_DETAIL_EDITING_DIALOG_EDEFAULT = false;
/**
* The cached value of the '{@link #isEnableDetailEditingDialog() <em>Enable Detail Editing Dialog</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #isEnableDetailEditingDialog()
* @generated
* @ordered
*/
protected boolean enableDetailEditingDialog = ENABLE_DETAIL_EDITING_DIALOG_EDEFAULT;
/**
* The default value of the '{@link #isDuplicateDisabled() <em>Duplicate Disabled</em>}' attribute.
* <!-- begin-user-doc -->
*
* @since 1.18
* <!-- end-user-doc -->
*
* @see #isDuplicateDisabled()
* @generated
* @ordered
*
*/
protected static final boolean DUPLICATE_DISABLED_EDEFAULT = true;
/**
* The cached value of the '{@link #isDuplicateDisabled() <em>Duplicate Disabled</em>}' attribute.
* <!-- begin-user-doc -->
*
* @since 1.18
* <!-- end-user-doc -->
*
* @see #isDuplicateDisabled()
* @generated
* @ordered
*
*/
protected boolean duplicateDisabled = DUPLICATE_DISABLED_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
protected VTableControlImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return VTablePackage.Literals.TABLE_CONTROL;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public boolean isAddRemoveDisabled() {
return addRemoveDisabled;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setAddRemoveDisabled(boolean newAddRemoveDisabled) {
final boolean oldAddRemoveDisabled = addRemoveDisabled;
addRemoveDisabled = newAddRemoveDisabled;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, VTablePackage.TABLE_CONTROL__ADD_REMOVE_DISABLED,
oldAddRemoveDisabled, addRemoveDisabled));
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public boolean isMoveUpDownDisabled() {
return moveUpDownDisabled;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setMoveUpDownDisabled(boolean newMoveUpDownDisabled) {
final boolean oldMoveUpDownDisabled = moveUpDownDisabled;
moveUpDownDisabled = newMoveUpDownDisabled;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, VTablePackage.TABLE_CONTROL__MOVE_UP_DOWN_DISABLED,
oldMoveUpDownDisabled, moveUpDownDisabled));
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public EList<VTableColumnConfiguration> getColumnConfigurations() {
if (columnConfigurations == null) {
columnConfigurations = new EObjectContainmentEList<VTableColumnConfiguration>(
VTableColumnConfiguration.class, this, VTablePackage.TABLE_CONTROL__COLUMN_CONFIGURATIONS);
}
return columnConfigurations;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public DetailEditing getDetailEditing() {
return detailEditing;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setDetailEditing(DetailEditing newDetailEditing) {
final DetailEditing oldDetailEditing = detailEditing;
detailEditing = newDetailEditing == null ? DETAIL_EDITING_EDEFAULT : newDetailEditing;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, VTablePackage.TABLE_CONTROL__DETAIL_EDITING,
oldDetailEditing, detailEditing));
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public VView getDetailView() {
return detailView;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
public NotificationChain basicSetDetailView(VView newDetailView, NotificationChain msgs) {
final VView oldDetailView = detailView;
detailView = newDetailView;
if (eNotificationRequired()) {
final ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
VTablePackage.TABLE_CONTROL__DETAIL_VIEW, oldDetailView, newDetailView);
if (msgs == null) {
msgs = notification;
} else {
msgs.add(notification);
}
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setDetailView(VView newDetailView) {
if (newDetailView != detailView) {
NotificationChain msgs = null;
if (detailView != null) {
msgs = ((InternalEObject) detailView).eInverseRemove(this,
EOPPOSITE_FEATURE_BASE - VTablePackage.TABLE_CONTROL__DETAIL_VIEW, null, msgs);
}
if (newDetailView != null) {
msgs = ((InternalEObject) newDetailView).eInverseAdd(this,
EOPPOSITE_FEATURE_BASE - VTablePackage.TABLE_CONTROL__DETAIL_VIEW, null, msgs);
}
msgs = basicSetDetailView(newDetailView, msgs);
if (msgs != null) {
msgs.dispatch();
}
} else if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, VTablePackage.TABLE_CONTROL__DETAIL_VIEW,
newDetailView, newDetailView));
}
}
/**
* <!-- begin-user-doc -->
*
* @deprecated
* <!-- end-user-doc -->
* @generated
*/
@Deprecated
@Override
public boolean isEnableDetailEditingDialog() {
return enableDetailEditingDialog;
}
/**
* <!-- begin-user-doc -->
*
* @deprecated
* <!-- end-user-doc -->
* @generated
*/
@Deprecated
@Override
public void setEnableDetailEditingDialog(boolean newEnableDetailEditingDialog) {
final boolean oldEnableDetailEditingDialog = enableDetailEditingDialog;
enableDetailEditingDialog = newEnableDetailEditingDialog;
if (eNotificationRequired()) {
eNotify(
new ENotificationImpl(this, Notification.SET, VTablePackage.TABLE_CONTROL__ENABLE_DETAIL_EDITING_DIALOG,
oldEnableDetailEditingDialog, enableDetailEditingDialog));
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public boolean isDuplicateDisabled() {
return duplicateDisabled;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setDuplicateDisabled(boolean newDuplicateDisabled) {
final boolean oldDuplicateDisabled = duplicateDisabled;
duplicateDisabled = newDuplicateDisabled;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, VTablePackage.TABLE_CONTROL__DUPLICATE_DISABLED,
oldDuplicateDisabled, duplicateDisabled));
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case VTablePackage.TABLE_CONTROL__COLUMN_CONFIGURATIONS:
return ((InternalEList<?>) getColumnConfigurations()).basicRemove(otherEnd, msgs);
case VTablePackage.TABLE_CONTROL__DETAIL_VIEW:
return basicSetDetailView(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case VTablePackage.TABLE_CONTROL__ADD_REMOVE_DISABLED:
return isAddRemoveDisabled();
case VTablePackage.TABLE_CONTROL__MOVE_UP_DOWN_DISABLED:
return isMoveUpDownDisabled();
case VTablePackage.TABLE_CONTROL__COLUMN_CONFIGURATIONS:
return getColumnConfigurations();
case VTablePackage.TABLE_CONTROL__DETAIL_EDITING:
return getDetailEditing();
case VTablePackage.TABLE_CONTROL__DETAIL_VIEW:
return getDetailView();
case VTablePackage.TABLE_CONTROL__ENABLE_DETAIL_EDITING_DIALOG:
return isEnableDetailEditingDialog();
case VTablePackage.TABLE_CONTROL__DUPLICATE_DISABLED:
return isDuplicateDisabled();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case VTablePackage.TABLE_CONTROL__ADD_REMOVE_DISABLED:
setAddRemoveDisabled((Boolean) newValue);
return;
case VTablePackage.TABLE_CONTROL__MOVE_UP_DOWN_DISABLED:
setMoveUpDownDisabled((Boolean) newValue);
return;
case VTablePackage.TABLE_CONTROL__COLUMN_CONFIGURATIONS:
getColumnConfigurations().clear();
getColumnConfigurations().addAll((Collection<? extends VTableColumnConfiguration>) newValue);
return;
case VTablePackage.TABLE_CONTROL__DETAIL_EDITING:
setDetailEditing((DetailEditing) newValue);
return;
case VTablePackage.TABLE_CONTROL__DETAIL_VIEW:
setDetailView((VView) newValue);
return;
case VTablePackage.TABLE_CONTROL__ENABLE_DETAIL_EDITING_DIALOG:
setEnableDetailEditingDialog((Boolean) newValue);
return;
case VTablePackage.TABLE_CONTROL__DUPLICATE_DISABLED:
setDuplicateDisabled((Boolean) newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case VTablePackage.TABLE_CONTROL__ADD_REMOVE_DISABLED:
setAddRemoveDisabled(ADD_REMOVE_DISABLED_EDEFAULT);
return;
case VTablePackage.TABLE_CONTROL__MOVE_UP_DOWN_DISABLED:
setMoveUpDownDisabled(MOVE_UP_DOWN_DISABLED_EDEFAULT);
return;
case VTablePackage.TABLE_CONTROL__COLUMN_CONFIGURATIONS:
getColumnConfigurations().clear();
return;
case VTablePackage.TABLE_CONTROL__DETAIL_EDITING:
setDetailEditing(DETAIL_EDITING_EDEFAULT);
return;
case VTablePackage.TABLE_CONTROL__DETAIL_VIEW:
setDetailView((VView) null);
return;
case VTablePackage.TABLE_CONTROL__ENABLE_DETAIL_EDITING_DIALOG:
setEnableDetailEditingDialog(ENABLE_DETAIL_EDITING_DIALOG_EDEFAULT);
return;
case VTablePackage.TABLE_CONTROL__DUPLICATE_DISABLED:
setDuplicateDisabled(DUPLICATE_DISABLED_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case VTablePackage.TABLE_CONTROL__ADD_REMOVE_DISABLED:
return addRemoveDisabled != ADD_REMOVE_DISABLED_EDEFAULT;
case VTablePackage.TABLE_CONTROL__MOVE_UP_DOWN_DISABLED:
return moveUpDownDisabled != MOVE_UP_DOWN_DISABLED_EDEFAULT;
case VTablePackage.TABLE_CONTROL__COLUMN_CONFIGURATIONS:
return columnConfigurations != null && !columnConfigurations.isEmpty();
case VTablePackage.TABLE_CONTROL__DETAIL_EDITING:
return detailEditing != DETAIL_EDITING_EDEFAULT;
case VTablePackage.TABLE_CONTROL__DETAIL_VIEW:
return detailView != null;
case VTablePackage.TABLE_CONTROL__ENABLE_DETAIL_EDITING_DIALOG:
return enableDetailEditingDialog != ENABLE_DETAIL_EDITING_DIALOG_EDEFAULT;
case VTablePackage.TABLE_CONTROL__DUPLICATE_DISABLED:
return duplicateDisabled != DUPLICATE_DISABLED_EDEFAULT;
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) {
return super.toString();
}
final StringBuffer result = new StringBuffer(super.toString());
result.append(" (addRemoveDisabled: "); //$NON-NLS-1$
result.append(addRemoveDisabled);
result.append(", moveUpDownDisabled: "); //$NON-NLS-1$
result.append(moveUpDownDisabled);
result.append(", detailEditing: "); //$NON-NLS-1$
result.append(detailEditing);
result.append(", enableDetailEditingDialog: "); //$NON-NLS-1$
result.append(enableDetailEditingDialog);
result.append(", duplicateDisabled: "); //$NON-NLS-1$
result.append(duplicateDisabled);
result.append(')');
return result.toString();
}
// /**
// * {@inheritDoc}
// *
// * @see org.eclipse.emf.ecp.view.model.AbstractControl#getDomainModelReferences()
// */
// @Override
// public EList<VDomainModelReference> getDomainModelReferences() {
// final EList<VDomainModelReference> result = super.getDomainModelReferences();
// if (result.isEmpty()) {
// return result;
// }
// final Iterator<Setting> settings = result.get(0).getIterator();
// if (settings.hasNext()) {
// final Setting setting = settings.next();
// if (setting != null) {
// @SuppressWarnings("unchecked")
// final List<? extends EObject> objects =
// (List<? extends EObject>) setting.getEObject().eGet(
// setting.getEStructuralFeature());
//
// for (final EObject object : objects) {
// for (final VTableColumn tc : getColumns()) {
// final VFeaturePathDomainModelReference modelReference = ViewFactory.eINSTANCE
// .createVFeaturePathDomainModelReference();
// modelReference.setDomainModelEFeature(tc.getAttribute());
//
// final boolean resolve = modelReference.resolve(object);
// if (!resolve) {
// // TODO: log
// }
//
// result.add(modelReference);
// }
// }
// }
// }
//
// return result;
// }
} // VTableControlImpl