Search in sources :

Example 11 with ObeoDSMObject

use of org.obeonetwork.dsl.environment.ObeoDSMObject in project InformationSystem by ObeoNetwork.

the class StateMachineParentSelectionContentProvider method getChildren.

@Override
public Object[] getChildren(Object object) {
    List<Object> result = new ArrayList<Object>();
    Object[] children = super.getChildren(object);
    for (Object child : children) {
        if (child instanceof ObeoDSMObject && !(child instanceof Behaviour)) {
            result.add(child);
        }
    }
    return result.toArray();
}
Also used : Behaviour(org.obeonetwork.dsl.environment.Behaviour) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject) ArrayList(java.util.ArrayList) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject)

Example 12 with ObeoDSMObject

use of org.obeonetwork.dsl.environment.ObeoDSMObject in project InformationSystem by ObeoNetwork.

the class MetadataCptPropertiesEditionComponent method updateSemanticModel.

/**
 * {@inheritDoc}
 * @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#updateSemanticModel(org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent)
 * @generated NOT
 */
public void updateSemanticModel(final IPropertiesEditionEvent event) {
    ObeoDSMObject obeoDSMObject = (ObeoDSMObject) semanticObject;
    if (EnvironmentViewsRepository.Metadatas.Properties.metadata == event.getAffectedEditor()) {
        if (event.getKind() == PropertiesEditionEvent.ADD) {
            EReferencePropertiesEditionContext context = new TypedEReferencePropertiesEditingContext(editingContext, this, metadataSettings, EnvironmentPackage.Literals.ANNOTATION, editingContext.getAdapterFactory());
            /*
				 * Generated code below, but it leads to NPE when clicking on the add button
				 * 
				EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, metadataSettings, editingContext.getAdapterFactory());
				context.addInstanciableTypeFilter(new InstanciableTypeFilter() {
					public boolean select(EClass instanciableType) {
						return EnvironmentPackage.Literals.ANNOTATION == instanciableType;
					}
				});
				*/
            PropertiesEditingProvider provider = (PropertiesEditingProvider) editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class);
            if (provider != null) {
                PropertiesEditingPolicy policy = provider.getPolicy(context);
                if (policy instanceof CreateEditingPolicy) {
                    policy.execute();
                }
            }
        } else if (event.getKind() == PropertiesEditionEvent.EDIT) {
            EObjectPropertiesEditionContext context = new EObjectPropertiesEditionContext(editingContext, this, (EObject) event.getNewValue(), editingContext.getAdapterFactory());
            PropertiesEditingProvider provider = (PropertiesEditingProvider) editingContext.getAdapterFactory().adapt((EObject) event.getNewValue(), PropertiesEditingProvider.class);
            if (provider != null) {
                PropertiesEditingPolicy editionPolicy = provider.getPolicy(context);
                if (editionPolicy != null) {
                    editionPolicy.execute();
                }
            }
        } else if (event.getKind() == PropertiesEditionEvent.REMOVE) {
            metadataSettings.removeFromReference((EObject) event.getNewValue());
        } else if (event.getKind() == PropertiesEditionEvent.MOVE) {
            metadataSettings.move(event.getNewIndex(), (MetaData) event.getNewValue());
        }
    }
}
Also used : EObjectPropertiesEditionContext(org.eclipse.emf.eef.runtime.context.impl.EObjectPropertiesEditionContext) PropertiesEditingProvider(org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider) MetaData(org.obeonetwork.dsl.environment.MetaData) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject) TypedEReferencePropertiesEditingContext(org.eclipse.emf.eef.runtime.context.impl.TypedEReferencePropertiesEditingContext) EObject(org.eclipse.emf.ecore.EObject) PropertiesEditingPolicy(org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy) CreateEditingPolicy(org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy) EReferencePropertiesEditionContext(org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext)

Example 13 with ObeoDSMObject

use of org.obeonetwork.dsl.environment.ObeoDSMObject in project InformationSystem by ObeoNetwork.

the class MetadataCptPropertiesEditionComponent method initPart.

/**
 * {@inheritDoc}
 *
 * @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#initPart(java.lang.Object, int, org.eclipse.emf.ecore.EObject,
 *      org.eclipse.emf.ecore.resource.ResourceSet)
 */
public void initPart(Object key, int kind, EObject elt, ResourceSet allResource) {
    setInitializing(true);
    if (editingPart != null && key == partKey) {
        editingPart.setContext(elt, allResource);
        if (editingPart instanceof CompositePropertiesEditionPart) {
            ((CompositePropertiesEditionPart) editingPart).getSettings().add(metadataSettings);
        }
        final ObeoDSMObject obeoDSMObject = (ObeoDSMObject) elt;
        final MetadatasPropertiesEditionPart metadatasPart = (MetadatasPropertiesEditionPart) editingPart;
        // init values
        if (isAccessible(EnvironmentViewsRepository.Metadatas.Properties.metadata)) {
            metadataSettings = new ReferencesTableSettings(obeoDSMObject, EnvironmentPackage.eINSTANCE.getObeoDSMObject_Metadatas(), EnvironmentPackage.eINSTANCE.getMetaDataContainer_Metadatas());
            metadatasPart.initMetadata(metadataSettings);
        }
        // init filters
        if (isAccessible(EnvironmentViewsRepository.Metadatas.Properties.metadata)) {
            metadatasPart.addFilterToMetadata(new ViewerFilter() {

                /**
                 * {@inheritDoc}
                 *
                 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
                 */
                public boolean select(Viewer viewer, Object parentElement, Object element) {
                    if (element instanceof String)
                        // $NON-NLS-1$
                        return element.equals("");
                    if (element instanceof MetaData)
                        return true;
                    return element instanceof Resource;
                }
            });
        // Start of user code for additional businessfilters for metadata
        // End of user code
        }
    // init values for referenced views
    // init filters for referenced views
    }
    setInitializing(false);
}
Also used : ReferencesTableSettings(org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings) ViewerFilter(org.eclipse.jface.viewers.ViewerFilter) MetadatasPropertiesEditionPart(org.obeonetwork.dsl.environment.parts.MetadatasPropertiesEditionPart) CompositePropertiesEditionPart(org.eclipse.emf.eef.runtime.impl.parts.CompositePropertiesEditionPart) MetaData(org.obeonetwork.dsl.environment.MetaData) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject) Resource(org.eclipse.emf.ecore.resource.Resource) Viewer(org.eclipse.jface.viewers.Viewer) EObject(org.eclipse.emf.ecore.EObject) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject)

Example 14 with ObeoDSMObject

use of org.obeonetwork.dsl.environment.ObeoDSMObject in project InformationSystem by ObeoNetwork.

the class EnvironmentModelWizard method createInitialModel.

/**
 * Create a new model.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated NOT
 */
protected EObject createInitialModel() {
    EClass eClass = (EClass) environmentPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
    EObject rootObject = environmentFactory.create(eClass);
    if (rootObject instanceof ObeoDSMObject) {
        ((ObeoDSMObject) rootObject).setCreatedOn(new Date());
    }
    return rootObject;
}
Also used : EClass(org.eclipse.emf.ecore.EClass) EObject(org.eclipse.emf.ecore.EObject) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject) Date(java.util.Date)

Example 15 with ObeoDSMObject

use of org.obeonetwork.dsl.environment.ObeoDSMObject in project InformationSystem by ObeoNetwork.

the class StateMachineServices method changeParentForStateMachine.

/**
 * Change the parent of an interaction with the
 * @param stateMachine
 * @return
 */
public StateMachine changeParentForStateMachine(EObject context) {
    StateMachine stateMachine = null;
    if (context instanceof StateMachine) {
        stateMachine = (StateMachine) context;
    } else {
        EObject container = context.eContainer();
        while (!(container instanceof StateMachine) && container.eContainer() != null) {
            container = container.eContainer();
        }
        stateMachine = (StateMachine) container;
    }
    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
    AdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
    StateMachineParentSelectionLabelProvider labelProvider = new StateMachineParentSelectionLabelProvider(adapterFactory);
    StateMachineParentSelectionContentProvider contentProvider = new StateMachineParentSelectionContentProvider(adapterFactory);
    ElementTreeSelectionDialog dlg = new ElementTreeSelectionDialog(shell, labelProvider, contentProvider);
    dlg.setHelpAvailable(false);
    dlg.setValidator(new ISelectionStatusValidator() {

        public IStatus validate(Object[] selection) {
            if (selection.length > 0) {
                Object selectedObject = selection[0];
                if (selectedObject instanceof EObject) {
                    IPermissionAuthority authority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority((EObject) selectedObject);
                    if (authority != null) {
                        LockStatus lockStatus = authority.getLockStatus((EObject) selectedObject);
                        if (LockStatus.LOCKED_BY_OTHER.equals(lockStatus)) {
                            return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "This element is locked by another user");
                        }
                    }
                }
            }
            return new Status(IStatus.OK, Activator.PLUGIN_ID, "");
        }
    });
    dlg.setTitle("Change statemachine's parent");
    dlg.setMessage("Select the new parent for the statemachine");
    Session session = SessionManager.INSTANCE.getSession(stateMachine);
    if (session == null) {
        return stateMachine;
    }
    dlg.setInput(session.getSemanticResources().toArray());
    dlg.setInitialSelection(stateMachine.eContainer());
    int btn = dlg.open();
    if (btn == Dialog.OK) {
        Object selectedElement = dlg.getFirstResult();
        if (selectedElement instanceof ObeoDSMObject && selectedElement != stateMachine.eContainer()) {
            // Change the parent
            ((ObeoDSMObject) selectedElement).getBehaviours().add(stateMachine);
        }
    }
    return stateMachine;
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) LockStatus(org.eclipse.sirius.ecore.extender.business.api.permission.LockStatus) IPermissionAuthority(org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionAuthority) IStatus(org.eclipse.core.runtime.IStatus) StateMachineParentSelectionLabelProvider(org.obeonetwork.dsl.statemachine.design.ui.extension.providers.StateMachineParentSelectionLabelProvider) StateMachine(org.obeonetwork.dsl.statemachine.StateMachine) LockStatus(org.eclipse.sirius.ecore.extender.business.api.permission.LockStatus) ComposedAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory) ElementTreeSelectionDialog(org.eclipse.ui.dialogs.ElementTreeSelectionDialog) Shell(org.eclipse.swt.widgets.Shell) AdapterFactory(org.eclipse.emf.common.notify.AdapterFactory) ComposedAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory) EObject(org.eclipse.emf.ecore.EObject) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject) ISelectionStatusValidator(org.eclipse.ui.dialogs.ISelectionStatusValidator) EObject(org.eclipse.emf.ecore.EObject) ObeoDSMObject(org.obeonetwork.dsl.environment.ObeoDSMObject) StateMachineParentSelectionContentProvider(org.obeonetwork.dsl.statemachine.design.ui.extension.providers.StateMachineParentSelectionContentProvider) Session(org.eclipse.sirius.business.api.session.Session)

Aggregations

ObeoDSMObject (org.obeonetwork.dsl.environment.ObeoDSMObject)20 EObject (org.eclipse.emf.ecore.EObject)10 ArrayList (java.util.ArrayList)7 Behaviour (org.obeonetwork.dsl.environment.Behaviour)4 Risk (fr.gouv.mindef.safran.graalextensions.Risk)3 Date (java.util.Date)3 EClass (org.eclipse.emf.ecore.EClass)3 MetaData (org.obeonetwork.dsl.environment.MetaData)3 MetaDataContainer (org.obeonetwork.dsl.environment.MetaDataContainer)3 IStatus (org.eclipse.core.runtime.IStatus)2 Status (org.eclipse.core.runtime.Status)2 AdapterFactory (org.eclipse.emf.common.notify.AdapterFactory)2 Resource (org.eclipse.emf.ecore.resource.Resource)2 ComposedAdapterFactory (org.eclipse.emf.edit.provider.ComposedAdapterFactory)2 Viewer (org.eclipse.jface.viewers.Viewer)2 ViewerFilter (org.eclipse.jface.viewers.ViewerFilter)2 Session (org.eclipse.sirius.business.api.session.Session)2 IPermissionAuthority (org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionAuthority)2 LockStatus (org.eclipse.sirius.ecore.extender.business.api.permission.LockStatus)2 Shell (org.eclipse.swt.widgets.Shell)2