Search in sources :

Example 11 with Category

use of org.obeonetwork.dsl.requirement.Category in project InformationSystem by ObeoNetwork.

the class RequirementsServices method copyCategory.

/**
 * CopyCategory.
 *
 * @param category
 */
public void copyCategory(Category category) {
    Shell shell = getShell();
    CategorySelectionDialog dlg = new CategorySelectionDialog(shell, "Copy a category", "Select a container for the new category");
    dlg.setInput(SessionManager.INSTANCE.getSession(category));
    dlg.setInitialSelection(category.eContainer());
    if (dlg.open() == Window.OK) {
        Object selectedObject = dlg.getFirstResult();
        if (selectedObject instanceof CategoriesContainer) {
            CategoriesContainer newContainer = (CategoriesContainer) selectedObject;
            // Check if there are referenced objects
            boolean keepReferencedObject = false;
            if (!category.getReferencedObject().isEmpty()) {
                keepReferencedObject = MessageDialog.openQuestion(shell, "Referenced objects", "Do you want to keep the referenced objects ?");
            }
            // Copy object
            Category newCategory = EcoreUtil.copy(category);
            newCategory.setId(getNewIdForCopiedCategory(newContainer, newCategory));
            if (!keepReferencedObject) {
                newCategory.getReferencedObject().clear();
            }
            // Add to parent
            addToCategoriesContainer(newContainer, newCategory);
        }
    }
    ;
}
Also used : Shell(org.eclipse.swt.widgets.Shell) CategoriesContainer(org.obeonetwork.dsl.requirement.CategoriesContainer) Category(org.obeonetwork.dsl.requirement.Category) CategorySelectionDialog(org.obeonetwork.dsl.requirement.design.selection.CategorySelectionDialog) EObject(org.eclipse.emf.ecore.EObject)

Example 12 with Category

use of org.obeonetwork.dsl.requirement.Category in project InformationSystem by ObeoNetwork.

the class RequirementsServices method copyRequirement.

/**
 * Copy Requirement.
 *
 * @param requirement
 */
public void copyRequirement(Requirement requirement) {
    Shell shell = getShell();
    CategorySelectionDialog dlg = new CategorySelectionDialog(shell, "Copy a requirement", "Select a container for the new requirement");
    dlg.setInput(SessionManager.INSTANCE.getSession(requirement));
    dlg.setInitialSelection(requirement.eContainer());
    dlg.setValidator(new ISelectionStatusValidator() {

        public IStatus validate(Object[] selection) {
            if (selection.length > 0 && selection[0] instanceof Category) {
                return new Status(IStatus.OK, Activator.PLUGIN_ID, "");
            }
            return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Select a category");
        }
    });
    if (dlg.open() == Window.OK) {
        Object selectedObject = dlg.getFirstResult();
        if (selectedObject instanceof Category) {
            Category newContainer = (Category) selectedObject;
            // Check if there are referenced objects
            boolean keepReferencedObject = false;
            if (!requirement.getReferencedObject().isEmpty()) {
                keepReferencedObject = MessageDialog.openQuestion(shell, "Referenced objects", "Do you want to keep the referenced objects ?");
            }
            // Copy object
            Requirement newRequirement = EcoreUtil.copy(requirement);
            newRequirement.setId(getNewIdForCopiedRequirement(newContainer, newRequirement));
            if (!keepReferencedObject) {
                newRequirement.getReferencedObject().clear();
            }
            // Add to parent
            newContainer.getRequirements().add(newRequirement);
        }
    }
    ;
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) ObjectWithRequirement(org.obeonetwork.tools.requirement.ui.decorators.ObjectWithRequirement) Requirement(org.obeonetwork.dsl.requirement.Requirement) Shell(org.eclipse.swt.widgets.Shell) IStatus(org.eclipse.core.runtime.IStatus) Category(org.obeonetwork.dsl.requirement.Category) CategorySelectionDialog(org.obeonetwork.dsl.requirement.design.selection.CategorySelectionDialog) ISelectionStatusValidator(org.eclipse.ui.dialogs.ISelectionStatusValidator) EObject(org.eclipse.emf.ecore.EObject)

Example 13 with Category

use of org.obeonetwork.dsl.requirement.Category in project InformationSystem by ObeoNetwork.

the class RequirementsServices method moveRequirement.

/**
 * move Requirement.
 *
 * @param requirement
 */
public void moveRequirement(Requirement requirement) {
    Shell shell = getShell();
    CategorySelectionDialog dlg = new CategorySelectionDialog(shell, "Move a requirement", "Select a new container for the requirement");
    dlg.setInput(SessionManager.INSTANCE.getSession(requirement));
    dlg.setInitialSelection(requirement.eContainer());
    dlg.setValidator(new ISelectionStatusValidator() {

        public IStatus validate(Object[] selection) {
            if (selection.length > 0 && selection[0] instanceof Category) {
                return new Status(IStatus.OK, Activator.PLUGIN_ID, "");
            }
            return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Select a category");
        }
    });
    if (dlg.open() == Window.OK) {
        Object selectedObject = dlg.getFirstResult();
        if (selectedObject instanceof Category) {
            Category newContainer = (Category) selectedObject;
            // change parent
            newContainer.getRequirements().add(requirement);
        }
    }
    ;
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) Shell(org.eclipse.swt.widgets.Shell) IStatus(org.eclipse.core.runtime.IStatus) Category(org.obeonetwork.dsl.requirement.Category) CategorySelectionDialog(org.obeonetwork.dsl.requirement.design.selection.CategorySelectionDialog) ISelectionStatusValidator(org.eclipse.ui.dialogs.ISelectionStatusValidator) EObject(org.eclipse.emf.ecore.EObject)

Example 14 with Category

use of org.obeonetwork.dsl.requirement.Category in project InformationSystem by ObeoNetwork.

the class RepositoryPropertiesEditionComponent 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);
        final Repository repository = (Repository) elt;
        final RepositoryPropertiesEditionPart repositoryPart = (RepositoryPropertiesEditionPart) editingPart;
        // init values
        if (isAccessible(RequirementViewsRepository.Repository.Repository_.name))
            repositoryPart.setName(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, repository.getName()));
        if (isAccessible(RequirementViewsRepository.Repository.Repository_.mainCategories)) {
            mainCategoriesSettings = new ReferencesTableSettings(repository, RequirementPackage.eINSTANCE.getRepository_MainCategories());
            repositoryPart.initMainCategories(mainCategoriesSettings);
        }
        if (isAccessible(RequirementViewsRepository.Repository.Repository_.referencedObject)) {
            referencedObjectSettings = new ReferencesTableSettings(repository, RequirementPackage.eINSTANCE.getRepository_ReferencedObject());
            repositoryPart.initReferencedObject(referencedObjectSettings);
        }
        if (isAccessible(RequirementViewsRepository.Repository.Repository_.mainCategories)) {
            repositoryPart.addFilterToMainCategories(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) {
                    // $NON-NLS-1$
                    return (element instanceof String && element.equals("")) || (element instanceof Category);
                }
            });
        // Start of user code for additional businessfilters for mainCategories
        // End of user code
        }
        if (isAccessible(RequirementViewsRepository.Repository.Repository_.referencedObject)) {
            repositoryPart.addFilterToReferencedObject(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 EObject)
                        return (!repositoryPart.isContainedInReferencedObjectTable((EObject) element));
                    return element instanceof String && element.equals("");
                }
            });
            repositoryPart.addFilterToReferencedObject(new EObjectStrictFilter(EcorePackage.Literals.EOBJECT));
        // Start of user code for additional businessfilters for referencedObject
        // End of user code
        }
    // init values for referenced views
    // init filters for referenced views
    }
    setInitializing(false);
}
Also used : Repository(org.obeonetwork.dsl.requirement.Repository) RequirementViewsRepository(org.obeonetwork.dsl.requirement.parts.RequirementViewsRepository) RepositoryPropertiesEditionPart(org.obeonetwork.dsl.requirement.parts.RepositoryPropertiesEditionPart) EObjectStrictFilter(org.eclipse.emf.eef.runtime.impl.filters.EObjectStrictFilter) ReferencesTableSettings(org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings) Category(org.obeonetwork.dsl.requirement.Category) ViewerFilter(org.eclipse.jface.viewers.ViewerFilter) EObject(org.eclipse.emf.ecore.EObject) Viewer(org.eclipse.jface.viewers.Viewer) EObject(org.eclipse.emf.ecore.EObject)

Example 15 with Category

use of org.obeonetwork.dsl.requirement.Category in project InformationSystem by ObeoNetwork.

the class RepositoryPropertiesEditionComponent method updateSemanticModel.

/**
 * {@inheritDoc}
 * @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#updateSemanticModel(org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent)
 */
public void updateSemanticModel(final IPropertiesEditionEvent event) {
    Repository repository = (Repository) semanticObject;
    if (RequirementViewsRepository.Repository.Repository_.name == event.getAffectedEditor()) {
        repository.setName((java.lang.String) EEFConverterUtil.createFromString(EcorePackage.Literals.ESTRING, (String) event.getNewValue()));
    }
    if (RequirementViewsRepository.Repository.Repository_.mainCategories == event.getAffectedEditor()) {
        if (event.getKind() == PropertiesEditionEvent.ADD) {
            EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, mainCategoriesSettings, editingContext.getAdapterFactory());
            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) {
            mainCategoriesSettings.removeFromReference((EObject) event.getNewValue());
        } else if (event.getKind() == PropertiesEditionEvent.MOVE) {
            mainCategoriesSettings.move(event.getNewIndex(), (Category) event.getNewValue());
        }
    }
    if (RequirementViewsRepository.Repository.Repository_.referencedObject == event.getAffectedEditor()) {
        if (event.getKind() == PropertiesEditionEvent.SET)
            referencedObjectSettings.setToReference((List<EObject>) event.getNewValue());
    }
}
Also used : Repository(org.obeonetwork.dsl.requirement.Repository) RequirementViewsRepository(org.obeonetwork.dsl.requirement.parts.RequirementViewsRepository) EObjectPropertiesEditionContext(org.eclipse.emf.eef.runtime.context.impl.EObjectPropertiesEditionContext) Category(org.obeonetwork.dsl.requirement.Category) PropertiesEditingProvider(org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider) EObject(org.eclipse.emf.ecore.EObject) List(java.util.List) 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)

Aggregations

Category (org.obeonetwork.dsl.requirement.Category)15 EObject (org.eclipse.emf.ecore.EObject)12 Repository (org.obeonetwork.dsl.requirement.Repository)7 Requirement (org.obeonetwork.dsl.requirement.Requirement)6 Resource (org.eclipse.emf.ecore.resource.Resource)4 ArrayList (java.util.ArrayList)3 Shell (org.eclipse.swt.widgets.Shell)3 CategorySelectionDialog (org.obeonetwork.dsl.requirement.design.selection.CategorySelectionDialog)3 List (java.util.List)2 IStatus (org.eclipse.core.runtime.IStatus)2 Status (org.eclipse.core.runtime.Status)2 EObjectPropertiesEditionContext (org.eclipse.emf.eef.runtime.context.impl.EObjectPropertiesEditionContext)2 EReferencePropertiesEditionContext (org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext)2 PropertiesEditingPolicy (org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy)2 CreateEditingPolicy (org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy)2 PropertiesEditingProvider (org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider)2 ReferencesTableSettings (org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings)2 Viewer (org.eclipse.jface.viewers.Viewer)2 ViewerFilter (org.eclipse.jface.viewers.ViewerFilter)2 ISelectionStatusValidator (org.eclipse.ui.dialogs.ISelectionStatusValidator)2