blob: 6a98e7d6d6d87189e9bca45b3f01aed4b8e00719 [file] [log] [blame]
/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.eclipse.stem.loggers.imagewriter.impl;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.stem.core.model.Decorator;
import org.eclipse.stem.core.model.IntegrationDecorator;
import org.eclipse.stem.jobs.simulation.ISimulation;
import org.eclipse.stem.jobs.simulation.SimulationEvent;
import org.eclipse.stem.jobs.simulation.SimulationState;
import org.eclipse.stem.loggers.LOGGER_EVENTS;
import org.eclipse.stem.loggers.imagewriter.ImagewriterFactory;
import org.eclipse.stem.loggers.imagewriter.ImagewriterPackage;
import org.eclipse.stem.loggers.imagewriter.MAP_PROJECTIONS;
import org.eclipse.stem.loggers.imagewriter.ProjectedMapImageLogger;
import org.eclipse.stem.loggers.imagewriter.logger.DecoratorPropertyImageWriter;
import org.eclipse.stem.loggers.imagewriter.logger.projections.IMapProjection;
import org.eclipse.stem.ui.adapters.color.ColorProvider;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Projected Map Image Logger</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#isUseLogScaling <em>Use Log Scaling</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getGain <em>Gain</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#isLogAllDecorators <em>Log All Decorators</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getColorProvider <em>Color Provider</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getDecorator <em>Decorator</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getDecoratorProperties <em>Decorator Properties</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getWidth <em>Width</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getHeight <em>Height</em>}</li>
* <li>{@link org.eclipse.stem.loggers.imagewriter.impl.ProjectedMapImageLoggerImpl#getProjection <em>Projection</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public abstract class ProjectedMapImageLoggerImpl extends ImageWriterLoggerImpl implements ProjectedMapImageLogger {
/**
* The default value of the '{@link #isUseLogScaling() <em>Use Log Scaling</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isUseLogScaling()
* @generated
* @ordered
*/
protected static final boolean USE_LOG_SCALING_EDEFAULT = true;
/**
* The cached value of the '{@link #isUseLogScaling() <em>Use Log Scaling</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isUseLogScaling()
* @generated
* @ordered
*/
protected boolean useLogScaling = USE_LOG_SCALING_EDEFAULT;
/**
* The default value of the '{@link #getGain() <em>Gain</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getGain()
* @generated
* @ordered
*/
protected static final float GAIN_EDEFAULT = 1.0F;
/**
* The cached value of the '{@link #getGain() <em>Gain</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getGain()
* @generated
* @ordered
*/
protected float gain = GAIN_EDEFAULT;
/**
* The default value of the '{@link #isLogAllDecorators() <em>Log All Decorators</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isLogAllDecorators()
* @generated
* @ordered
*/
protected static final boolean LOG_ALL_DECORATORS_EDEFAULT = false;
/**
* The cached value of the '{@link #isLogAllDecorators() <em>Log All Decorators</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isLogAllDecorators()
* @generated
* @ordered
*/
protected boolean logAllDecorators = LOG_ALL_DECORATORS_EDEFAULT;
/**
* The default value of the '{@link #getColorProvider() <em>Color Provider</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColorProvider()
* @generated
* @ordered
*/
protected static final ColorProvider COLOR_PROVIDER_EDEFAULT = null;
/**
* The cached value of the '{@link #getColorProvider() <em>Color Provider</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getColorProvider()
* @generated
* @ordered
*/
protected ColorProvider colorProvider = COLOR_PROVIDER_EDEFAULT;
/**
* The cached value of the '{@link #getDecorator() <em>Decorator</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDecorator()
* @generated
* @ordered
*/
protected Decorator decorator;
/**
* The default value of the '{@link #getDecoratorProperties() <em>Decorator Properties</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDecoratorProperties()
* @generated
* @ordered
*/
protected static final String DECORATOR_PROPERTIES_EDEFAULT = null;
/**
* The cached value of the '{@link #getDecoratorProperties() <em>Decorator Properties</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDecoratorProperties()
* @generated
* @ordered
*/
protected String decoratorProperties = DECORATOR_PROPERTIES_EDEFAULT;
/**
* The default value of the '{@link #getWidth() <em>Width</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getWidth()
* @generated
* @ordered
*/
protected static final int WIDTH_EDEFAULT = 1000;
/**
* The cached value of the '{@link #getWidth() <em>Width</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getWidth()
* @generated
* @ordered
*/
protected int width = WIDTH_EDEFAULT;
/**
* The default value of the '{@link #getHeight() <em>Height</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHeight()
* @generated
* @ordered
*/
protected static final int HEIGHT_EDEFAULT = 500;
/**
* The cached value of the '{@link #getHeight() <em>Height</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHeight()
* @generated
* @ordered
*/
protected int height = HEIGHT_EDEFAULT;
/**
* The default value of the '{@link #getProjection() <em>Projection</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getProjection()
* @generated
* @ordered
*/
protected static final IMapProjection PROJECTION_EDEFAULT = null; //(IMapProjection)ImagewriterFactory.eINSTANCE.createFromString(ImagewriterPackage.eINSTANCE.getIMapProjection(), "null");
/**
* The cached value of the '{@link #getProjection() <em>Projection</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getProjection()
* @generated
* @ordered
*/
protected IMapProjection projection = PROJECTION_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ProjectedMapImageLoggerImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return ImagewriterPackage.Literals.PROJECTED_MAP_IMAGE_LOGGER;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public IMapProjection getProjection() {
return projection;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setProjection(IMapProjection newProjection) {
IMapProjection oldProjection = projection;
projection = newProjection;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__PROJECTION, oldProjection, projection));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isUseLogScaling() {
return useLogScaling;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setUseLogScaling(boolean newUseLogScaling) {
boolean oldUseLogScaling = useLogScaling;
useLogScaling = newUseLogScaling;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__USE_LOG_SCALING, oldUseLogScaling, useLogScaling));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public float getGain() {
return gain;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setGain(float newGain) {
float oldGain = gain;
gain = newGain;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__GAIN, oldGain, gain));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isLogAllDecorators() {
return logAllDecorators;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setLogAllDecorators(boolean newLogAllDecorators) {
boolean oldLogAllDecorators = logAllDecorators;
logAllDecorators = newLogAllDecorators;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__LOG_ALL_DECORATORS, oldLogAllDecorators, logAllDecorators));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ColorProvider getColorProvider() {
return colorProvider;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setColorProvider(ColorProvider newColorProvider) {
ColorProvider oldColorProvider = colorProvider;
colorProvider = newColorProvider;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__COLOR_PROVIDER, oldColorProvider, colorProvider));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Decorator getDecorator() {
if (decorator != null && decorator.eIsProxy()) {
InternalEObject oldDecorator = (InternalEObject)decorator;
decorator = (Decorator)eResolveProxy(oldDecorator);
if (decorator != oldDecorator) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR, oldDecorator, decorator));
}
}
return decorator;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Decorator basicGetDecorator() {
return decorator;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDecorator(Decorator newDecorator) {
Decorator oldDecorator = decorator;
decorator = newDecorator;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR, oldDecorator, decorator));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getDecoratorProperties() {
return decoratorProperties;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDecoratorProperties(String newDecoratorProperties) {
String oldDecoratorProperties = decoratorProperties;
decoratorProperties = newDecoratorProperties;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR_PROPERTIES, oldDecoratorProperties, decoratorProperties));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getWidth() {
return width;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setWidth(int newWidth) {
int oldWidth = width;
width = newWidth;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__WIDTH, oldWidth, width));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getHeight() {
return height;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setHeight(int newHeight) {
int oldHeight = height;
height = newHeight;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__HEIGHT, oldHeight, height));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__USE_LOG_SCALING:
return isUseLogScaling();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__GAIN:
return getGain();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__LOG_ALL_DECORATORS:
return isLogAllDecorators();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__COLOR_PROVIDER:
return getColorProvider();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR:
if (resolve) return getDecorator();
return basicGetDecorator();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR_PROPERTIES:
return getDecoratorProperties();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__WIDTH:
return getWidth();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__HEIGHT:
return getHeight();
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__PROJECTION:
return getProjection();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__USE_LOG_SCALING:
setUseLogScaling((Boolean)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__GAIN:
setGain((Float)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__LOG_ALL_DECORATORS:
setLogAllDecorators((Boolean)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__COLOR_PROVIDER:
setColorProvider((ColorProvider)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR:
setDecorator((Decorator)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR_PROPERTIES:
setDecoratorProperties((String)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__WIDTH:
setWidth((Integer)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__HEIGHT:
setHeight((Integer)newValue);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__PROJECTION:
setProjection((IMapProjection)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__USE_LOG_SCALING:
setUseLogScaling(USE_LOG_SCALING_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__GAIN:
setGain(GAIN_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__LOG_ALL_DECORATORS:
setLogAllDecorators(LOG_ALL_DECORATORS_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__COLOR_PROVIDER:
setColorProvider(COLOR_PROVIDER_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR:
setDecorator((Decorator)null);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR_PROPERTIES:
setDecoratorProperties(DECORATOR_PROPERTIES_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__WIDTH:
setWidth(WIDTH_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__HEIGHT:
setHeight(HEIGHT_EDEFAULT);
return;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__PROJECTION:
setProjection(PROJECTION_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__USE_LOG_SCALING:
return useLogScaling != USE_LOG_SCALING_EDEFAULT;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__GAIN:
return gain != GAIN_EDEFAULT;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__LOG_ALL_DECORATORS:
return logAllDecorators != LOG_ALL_DECORATORS_EDEFAULT;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__COLOR_PROVIDER:
return COLOR_PROVIDER_EDEFAULT == null ? colorProvider != null : !COLOR_PROVIDER_EDEFAULT.equals(colorProvider);
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR:
return decorator != null;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__DECORATOR_PROPERTIES:
return DECORATOR_PROPERTIES_EDEFAULT == null ? decoratorProperties != null : !DECORATOR_PROPERTIES_EDEFAULT.equals(decoratorProperties);
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__WIDTH:
return width != WIDTH_EDEFAULT;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__HEIGHT:
return height != HEIGHT_EDEFAULT;
case ImagewriterPackage.PROJECTED_MAP_IMAGE_LOGGER__PROJECTION:
return PROJECTION_EDEFAULT == null ? projection != null : !PROJECTION_EDEFAULT.equals(projection);
}
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(" (useLogScaling: ");
result.append(useLogScaling);
result.append(", gain: ");
result.append(gain);
result.append(", logAllDecorators: ");
result.append(logAllDecorators);
result.append(", colorProvider: ");
result.append(colorProvider);
result.append(", decoratorProperties: ");
result.append(decoratorProperties);
result.append(", width: ");
result.append(width);
result.append(", height: ");
result.append(height);
result.append(", projection: ");
result.append(projection);
result.append(')');
return result.toString();
}
DecoratorPropertyImageWriter writer;
@Override
public void simulationEvent(SimulationEvent event)
{
System.out.println("here");
if (SimulationState.COMPLETED_CYCLE.equals(event.getSimulationState())) {
writer.log();
}
}
@Override
public void loggerEvent(ISimulation simulation, LOGGER_EVENTS event)
{
if (LOGGER_EVENTS.LOGGER_STARTED.equals(event)) {
writer = new DecoratorPropertyImageWriter(simulation, this);
writer.start();
}
}
} //ProjectedMapImageLoggerImpl