use of org.whole.lang.ui.actions.ReplaceWithResourceAndPersistenceAction in project whole by wholeplatform.
the class WorkflowsIDEContentAssistVisitor method chooseResource.
protected boolean chooseResource(IEntity entity) {
Object customAction = null;
if (WorkflowsUtils.isResourceInPersistenceActivity(entity)) {
PersistenceActivity parent = (PersistenceActivity) entity.wGetParent();
Expression expression = parent.getPersistence();
IPersistenceKit persistenceKit = Matcher.match(WorkflowsEntityDescriptorEnum.StringLiteral, expression) ? (ReflectionFactory.hasPersistenceKit(expression.wStringValue()) ? ReflectionFactory.getPersistenceKit(expression.wStringValue()) : null) : ReflectionFactory.getDefaultPersistenceKit();
customAction = new ReplaceWithResourceAndPersistenceAction((IEclipseContext) getBindings().wGetValue("eclipse#eclipseContext"), WorkflowsEntityDescriptorEnum.StringLiteral, entity.wStringValue(), persistenceKit, "Select resource...") {
protected boolean isLoading(IEntity entity) {
return Matcher.match(WorkflowsEntityDescriptorEnum.LoadModel, entity.wGetParent());
}
protected ResourceKind getResourceKind(IEntity selectedEntity) {
switch(selectedEntity.wGetParent().wGet(WorkflowsFeatureDescriptorEnum.resourceKind).wEnumValue().getOrdinal()) {
default:
case ResourceKindEnum.WORKSPACE_ord:
return ResourceKind.WORKSPACE;
case ResourceKindEnum.FILE_SYSTEM_ord:
return ResourceKind.FILE_SYSTEM;
case ResourceKindEnum.CLASSPATH_ord:
return ResourceKind.CLASSPATH;
case ResourceKindEnum.URL_ord:
return ResourceKind.URL;
}
}
protected void performReplacePersistence(IEntity parent) {
((PersistenceActivity) parent).setPersistence(WorkflowsEntityFactory.instance.createStringLiteral(persistenceKit.getId()));
}
};
} else if (WorkflowsUtils.isResourceInArtifactsActivity(entity)) {
customAction = new ReplaceWithResourceAction((IEclipseContext) getBindings().wGetValue("eclipse#eclipseContext"), WorkflowsEntityDescriptorEnum.StringLiteral, entity.wStringValue(), "Select resource...") {
protected boolean isLoading(IEntity entity) {
return Matcher.match(WorkflowsEntityDescriptorEnum.LoadArtifacts, entity.wGetParent());
}
protected ResourceKind getResourceKind(IEntity selectedEntity) {
switch(selectedEntity.wGetParent().wGet(WorkflowsFeatureDescriptorEnum.rootResourceKind).wEnumValue().getOrdinal()) {
default:
case ResourceKindEnum.WORKSPACE_ord:
return ResourceKind.WORKSPACE;
case ResourceKindEnum.FILE_SYSTEM_ord:
return ResourceKind.FILE_SYSTEM;
case ResourceKindEnum.CLASSPATH_ord:
return ResourceKind.CLASSPATH;
case ResourceKindEnum.URL_ord:
return ResourceKind.URL;
}
}
};
} else
return false;
ActionsEntityFactory aef = ActionsEntityFactory.instance;
GroupAction customGroup = aef.createGroupAction();
customGroup.setFillStrategy(aef.createFlat());
customGroup.getText().setValue("workflows.custom");
customGroup.setActions(aef.createActions(aef.createCustomAction(customAction)));
return EntityUtils.isResolver(entity) ? mergeResult(StringLiteral, customGroup) : mergeResult(customGroup);
}
Aggregations