/************************************************************************** * ERA - Eclipse Requirements Analysis * ============================================== * Copyright (C) 2009-2013 by Georg Blaschke, Christoph P. Neumann * and Bernd Haberstumpf (http://era.origo.ethz.ch) ************************************************************************** * Licensed under the Eclipse Public License - v 1.0 (the "License"); * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.eclipse.org/org/documents/epl-v10.html * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ************************************************************************** */ package era.foss.erf.impl; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; import org.eclipse.swt.widgets.Display; import era.foss.erf.Color; import era.foss.erf.ErfPackage; /** * <!-- begin-user-doc --> An implementation of the model object '<em><b>Color</b></em>'. <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link era.foss.erf.impl.ColorImpl#getRed <em>Red</em>}</li> * <li>{@link era.foss.erf.impl.ColorImpl#getGreen <em>Green</em>}</li> * <li>{@link era.foss.erf.impl.ColorImpl#getBlue <em>Blue</em>}</li> * </ul> * </p> * * @generated */ public class ColorImpl extends EObjectImpl implements Color { /** * The default value of the '{@link #getRed() <em>Red</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc * --> * * @see #getRed() * @generated * @ordered */ protected static final int RED_EDEFAULT = 0; /** * The cached value of the '{@link #getRed() <em>Red</em>}' attribute. * <!-- begin-user-doc --> <!-- end-user-doc --> * @see #getRed() * @generated * @ordered */ protected int red = RED_EDEFAULT; /** * The default value of the '{@link #getGreen() <em>Green</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getGreen() * @generated * @ordered */ protected static final int GREEN_EDEFAULT = 0; /** * The cached value of the '{@link #getGreen() <em>Green</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc * --> * * @see #getGreen() * @generated * @ordered */ protected int green = GREEN_EDEFAULT; /** * The default value of the '{@link #getBlue() <em>Blue</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc * --> * * @see #getBlue() * @generated * @ordered */ protected static final int BLUE_EDEFAULT = 0; /** * The cached value of the '{@link #getBlue() <em>Blue</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc * --> * * @see #getBlue() * @generated * @ordered */ protected int blue = BLUE_EDEFAULT; /** The color. */ private org.eclipse.swt.graphics.Color color; /* (non-Javadoc) * @see era.foss.erf.Color#getColor() */ public org.eclipse.swt.graphics.Color getColor() { if( color == null ) { color = new org.eclipse.swt.graphics.Color( Display.getCurrent(), this.red, this.green, this.blue ); } else { if( (color.getRed() != this.red) || (color.getGreen() != this.green) || (color.getBlue() != this.blue) ) { color.dispose(); color = new org.eclipse.swt.graphics.Color( Display.getCurrent(), this.red, this.green, this.blue ); } } return color; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected ColorImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return ErfPackage.Literals.COLOR; } /** * <!-- begin-user-doc --> <!-- end-user-doc -->. * * @return the red * @generated */ public int getRed() { return red; } /** * <!-- begin-user-doc --> <!-- end-user-doc -->. * * @param newRed the new red * @generated */ public void setRed( int newRed ) { int oldRed = red; red = newRed; if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.SET, ErfPackage.COLOR__RED, oldRed, red ) ); } /** * <!-- begin-user-doc --> <!-- end-user-doc -->. * * @return the green * @generated */ public int getGreen() { return green; } /** * <!-- begin-user-doc --> <!-- end-user-doc -->. * * @param newGreen the new green * @generated */ public void setGreen( int newGreen ) { int oldGreen = green; green = newGreen; if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.SET, ErfPackage.COLOR__GREEN, oldGreen, green ) ); } /** * <!-- begin-user-doc --> <!-- end-user-doc -->. * * @return the blue * @generated */ public int getBlue() { return blue; } /** * <!-- begin-user-doc --> <!-- end-user-doc -->. * * @param newBlue the new blue * @generated */ public void setBlue( int newBlue ) { int oldBlue = blue; blue = newBlue; if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.SET, ErfPackage.COLOR__BLUE, oldBlue, blue ) ); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public Object eGet( int featureID, boolean resolve, boolean coreType ) { switch (featureID) { case ErfPackage.COLOR__RED: return getRed(); case ErfPackage.COLOR__GREEN: return getGreen(); case ErfPackage.COLOR__BLUE: return getBlue(); } return super.eGet( featureID, resolve, coreType ); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eSet( int featureID, Object newValue ) { switch (featureID) { case ErfPackage.COLOR__RED: setRed( (Integer)newValue ); return; case ErfPackage.COLOR__GREEN: setGreen( (Integer)newValue ); return; case ErfPackage.COLOR__BLUE: setBlue( (Integer)newValue ); return; } super.eSet( featureID, newValue ); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eUnset( int featureID ) { switch (featureID) { case ErfPackage.COLOR__RED: setRed( RED_EDEFAULT ); return; case ErfPackage.COLOR__GREEN: setGreen( GREEN_EDEFAULT ); return; case ErfPackage.COLOR__BLUE: setBlue( BLUE_EDEFAULT ); return; } super.eUnset( featureID ); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet( int featureID ) { switch (featureID) { case ErfPackage.COLOR__RED: return red != RED_EDEFAULT; case ErfPackage.COLOR__GREEN: return green != GREEN_EDEFAULT; case ErfPackage.COLOR__BLUE: return blue != BLUE_EDEFAULT; } return super.eIsSet( featureID ); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public String toString() { if( eIsProxy() ) return super.toString(); StringBuffer result = new StringBuffer( super.toString() ); result.append( " (red: " ); result.append( red ); result.append( ", green: " ); result.append( green ); result.append( ", blue: " ); result.append( blue ); result.append( ')' ); return result.toString(); } } // ColorImpl