Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/internal/setup/core/SetupTaskPerformer.java')
-rw-r--r--plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/internal/setup/core/SetupTaskPerformer.java144
1 files changed, 131 insertions, 13 deletions
diff --git a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/internal/setup/core/SetupTaskPerformer.java b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/internal/setup/core/SetupTaskPerformer.java
index f4164b0d6..6d0938865 100644
--- a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/internal/setup/core/SetupTaskPerformer.java
+++ b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/internal/setup/core/SetupTaskPerformer.java
@@ -32,6 +32,7 @@ import org.eclipse.oomph.setup.Project;
import org.eclipse.oomph.setup.ProjectCatalog;
import org.eclipse.oomph.setup.ResourceCopyTask;
import org.eclipse.oomph.setup.Scope;
+import org.eclipse.oomph.setup.ScopeType;
import org.eclipse.oomph.setup.SetupFactory;
import org.eclipse.oomph.setup.SetupPackage;
import org.eclipse.oomph.setup.SetupTask;
@@ -983,18 +984,18 @@ public class SetupTaskPerformer extends AbstractSetupTaskContext
if (!productVersion.eIsProxy())
{
List<Scope> configurableItems = new ArrayList<Scope>();
- List<SetupTaskContainer> setupTaskContainers = new ArrayList<SetupTaskContainer>();
+ List<Scope> scopes = new ArrayList<Scope>();
Product product = productVersion.getProduct();
configurableItems.add(product);
- setupTaskContainers.add(product);
+ scopes.add(product);
ProductCatalog productCatalog = product.getProductCatalog();
configurableItems.add(productCatalog);
- setupTaskContainers.add(0, productCatalog);
+ scopes.add(0, productCatalog);
configurableItems.add(productVersion);
- setupTaskContainers.add(productVersion);
+ scopes.add(productVersion);
if (stream != null)
{
@@ -1004,39 +1005,132 @@ public class SetupTaskPerformer extends AbstractSetupTaskContext
for (; project != null; project = project.getParentProject())
{
configurableItems.add(project);
- setupTaskContainers.add(3, project);
+ scopes.add(3, project);
}
if (projectCatalog != null)
{
configurableItems.add(projectCatalog);
- setupTaskContainers.add(3, projectCatalog);
+ scopes.add(3, projectCatalog);
}
configurableItems.add(stream);
- setupTaskContainers.add(stream);
+ scopes.add(stream);
}
configurableItems.add(installation);
- setupTaskContainers.add(installation);
+ scopes.add(installation);
if (workspace != null)
{
configurableItems.add(workspace);
- setupTaskContainers.add(workspace);
+ scopes.add(workspace);
}
- setupTaskContainers.add(user);
+ scopes.add(user);
- for (SetupTaskContainer setupTaskContainer : setupTaskContainers)
+ String qualifier = null;
+
+ for (Scope scope : scopes)
{
- getSetupTasks(trigger, result, configurableItems, setupTaskContainer);
+ ScopeType type = scope.getType();
+ String name = scope.getName();
+ String label = scope.getLabel();
+ if (label == null)
+ {
+ label = name;
+ }
+
+ String description = scope.getDescription();
+ if (description == null)
+ {
+ description = label;
+ }
+
+ switch (type)
+ {
+ case PRODUCT_CATALOG:
+ {
+ generateScopeVariables(result, "product.catalog", qualifier, name, label, description);
+ qualifier = name;
+ break;
+ }
+ case PRODUCT:
+ {
+ generateScopeVariables(result, "product", qualifier, name, label, description);
+ qualifier += "." + name;
+ break;
+ }
+ case PRODUCT_VERSION:
+ {
+ generateScopeVariables(result, "product.version", qualifier, name, label, description);
+ qualifier = null;
+ break;
+ }
+ case PROJECT_CATALOG:
+ {
+ generateScopeVariables(result, "project.catalog", qualifier, name, label, description);
+ qualifier = name;
+ break;
+ }
+ case PROJECT:
+ {
+ generateScopeVariables(result, "project", qualifier, name, label, description);
+ qualifier += "." + name;
+ break;
+ }
+ case STREAM:
+ {
+ generateScopeVariables(result, "project.stream", qualifier, name, label, description);
+ qualifier = null;
+ break;
+ }
+ case INSTALLATION:
+ {
+ generateScopeVariables(result, "installation", qualifier, name, label, description);
+ break;
+ }
+ case WORKSPACE:
+ {
+ generateScopeVariables(result, "workspace", qualifier, name, label, description);
+ break;
+ }
+ case USER:
+ {
+ generateScopeVariables(result, "user", qualifier, name, label, description);
+ break;
+ }
+ }
+
+ getSetupTasks(trigger, result, configurableItems, scope);
}
}
return result;
}
+ private void generateScopeVariables(EList<SetupTask> setupTasks, String type, String qualifier, String name, String label, String description)
+ {
+ setupTasks.add(createVariable(setupTasks, "scope." + type + ".name", name, null));
+
+ if (qualifier != null)
+ {
+ setupTasks.add(createVariable(setupTasks, "scope." + type + ".name.qualified", qualifier + "." + name, null));
+ }
+
+ setupTasks.add(createVariable(setupTasks, "scope." + type + ".label", label, null));
+ setupTasks.add(createVariable(setupTasks, "scope." + type + ".description", description, null));
+ }
+
+ private VariableTask createVariable(EList<SetupTask> setupTasks, String name, String value, String description)
+ {
+ VariableTask variable = SetupFactory.eINSTANCE.createVariableTask();
+ variable.setName(name);
+ variable.setValue(value);
+ variable.setDescription(description);
+ return variable;
+ }
+
private void getSetupTasks(Trigger trigger, EList<SetupTask> setupTasks, List<Scope> configurableItems, SetupTaskContainer setupTaskContainer)
{
for (SetupTask setupTask : setupTaskContainer.getSetupTasks())
@@ -1698,7 +1792,31 @@ public class SetupTaskPerformer extends AbstractSetupTaskContext
{
recordRules(user.getAttributeRules(), true);
- AdapterFactoryItemDelegator itemDelegator = new AdapterFactoryItemDelegator(adapterFactory);
+ AdapterFactoryItemDelegator itemDelegator = new AdapterFactoryItemDelegator(adapterFactory)
+ {
+ @Override
+ public String getText(Object object)
+ {
+ String result = super.getText(object);
+ if (object instanceof ProjectCatalog)
+ {
+ if (!result.endsWith("Projects"))
+ {
+ result += " Projects";
+ }
+ }
+ else if (object instanceof ProductCatalog)
+ {
+ if (!result.endsWith("Products"))
+ {
+ result += " Products";
+ }
+ }
+
+ return result;
+ }
+ };
+
EList<SetupTask> userSetupTasks = user.getSetupTasks();
if (!unresolvedVariables.isEmpty())
{

Back to the top