/*******************************************************************************
* Copyright (c) 2006, 2007 g-Eclipse Consortium
* 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
*
* Initial development of the original code was made for the g-Eclipse project
* funded by European Union project number: FP6-IST-034327
* http://www.geclipse.eu/
*
* Contributors:
* RUR (http://acet.rdg.ac.uk/)
* - Ashish Thandavan - initial API and implementation
******************************************************************************/
package eu.geclipse.workflow.ui.view.factories;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
import org.eclipse.gmf.runtime.diagram.ui.view.factories.AbstractShapeViewFactory;
import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
import org.eclipse.gmf.runtime.notation.NotationFactory;
import org.eclipse.gmf.runtime.notation.ShapeStyle;
import org.eclipse.gmf.runtime.notation.View;
import eu.geclipse.workflow.ui.edit.parts.WorkflowEditPart;
import eu.geclipse.workflow.ui.edit.parts.WorkflowJobDescriptionEditPart;
import eu.geclipse.workflow.ui.edit.parts.WorkflowJobEditPart;
import eu.geclipse.workflow.ui.edit.parts.WorkflowJobNameEditPart;
import eu.geclipse.workflow.ui.part.WorkflowVisualIDRegistry;
/**
* @generated
*/
public class WorkflowJobViewFactory extends AbstractShapeViewFactory {
/**
* @generated
*/
@Override
protected List<ShapeStyle> createStyles( View view ) {
List<ShapeStyle> styles = new ArrayList<ShapeStyle>();
styles.add( NotationFactory.eINSTANCE.createShapeStyle() );
return styles;
}
/**
* @generated
*/
@Override
protected void decorateView( View containerView,
View view,
IAdaptable semanticAdapter,
String semanticHint,
int index,
boolean persisted )
{
if( semanticHint == null ) {
semanticHint = WorkflowVisualIDRegistry.getType( WorkflowJobEditPart.VISUAL_ID );
view.setType( semanticHint );
}
super.decorateView( containerView,
view,
semanticAdapter,
semanticHint,
index,
persisted );
if( !WorkflowEditPart.MODEL_ID.equals( WorkflowVisualIDRegistry.getModelID( containerView ) ) )
{
EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
shortcutAnnotation.setSource( "Shortcut" ); //$NON-NLS-1$
shortcutAnnotation.getDetails()
.put( "modelID", WorkflowEditPart.MODEL_ID ); //$NON-NLS-1$
view.getEAnnotations().add( shortcutAnnotation );
}
IAdaptable eObjectAdapter = null;
EObject eObject = ( EObject )semanticAdapter.getAdapter( EObject.class );
if( eObject != null ) {
eObjectAdapter = new EObjectAdapter( eObject );
}
getViewService().createNode( eObjectAdapter,
view,
WorkflowVisualIDRegistry.getType( WorkflowJobNameEditPart.VISUAL_ID ),
ViewUtil.APPEND,
true,
getPreferencesHint() );
getViewService().createNode( eObjectAdapter,
view,
WorkflowVisualIDRegistry.getType( WorkflowJobDescriptionEditPart.VISUAL_ID ),
ViewUtil.APPEND,
true,
getPreferencesHint() );
}
}