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);
}
}
;
}
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);
}
}
;
}
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);
}
}
;
}
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);
}
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());
}
}
Aggregations