summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkwilk2012-05-07 18:10:40 (EDT)
committer Roberto E. Escobar2012-05-07 18:10:40 (EDT)
commit07a9f6e7d60f0391a947fd4cd41958450b79d92f (patch)
treebbf2b9c69f6af3df57fe951e3400b17c38fb2fce
parent90e7f73deb3c4a125b9256695d041e329a9648a6 (diff)
downloadorg.eclipse.osee-07a9f6e7d60f0391a947fd4cd41958450b79d92f.zip
org.eclipse.osee-07a9f6e7d60f0391a947fd4cd41958450b79d92f.tar.gz
org.eclipse.osee-07a9f6e7d60f0391a947fd4cd41958450b79d92f.tar.bz2
feature: More storage changes
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/FilterVersionOperation.java57
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfiguration.java217
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfigurationQuery.java111
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java4
4 files changed, 232 insertions, 157 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/FilterVersionOperation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/FilterVersionOperation.java
new file mode 100644
index 0000000..7ff35a3
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/FilterVersionOperation.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.config;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.nebula.widgets.xviewer.Activator;
+import org.eclipse.osee.ats.core.client.config.TeamDefinitionArtifact;
+import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.operation.AbstractOperation;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+
+public class FilterVersionOperation extends AbstractOperation {
+
+ private final Artifact teamDefinition;
+ private final Artifact[] additional;
+
+ public FilterVersionOperation(String operationName, Set<Artifact> result, Artifact teamDefinition, Artifact... additionalToBeRemoved) {
+ super(operationName, Activator.PLUGIN_ID);
+ this.teamDefinition = teamDefinition;
+ this.additional = additionalToBeRemoved;
+ }
+
+ @Override
+ protected void doWork(IProgressMonitor monitor) throws Exception {
+ final Set<Artifact> filteredVersions = new HashSet<Artifact>(getVersions(TaskConfiguration.this.program));
+ try {
+ this.teamDefinition = (TeamDefinitionArtifact) iter.next();
+ for (Artifact taskConf : this.teamDefinition.getRelatedArtifacts(CoreRelationTypes.Universal_Grouping__Group)) {
+ List<Artifact> keys = taskConf.getRelatedArtifacts(CoreRelationTypes.Universal_Grouping__Members);
+ for (int i = 0; i < keys.size(); i++) {
+ if (keys.get(i).equals(this.teamDefinition)) {
+ filteredVersions.remove(keys.get(keys.size() - 1 - i));
+ break;
+ }
+ }
+ }
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, Level.SEVERE,
+ FilterVersionOperation.class.getSimpleName() + " unable to update versions. Ex: " + ex);
+ }
+ filteredVersions.remove(version);
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfiguration.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfiguration.java
index b41c96f..1ddcadf 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfiguration.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfiguration.java
@@ -11,13 +11,11 @@
package org.eclipse.osee.ats.config;
import java.rmi.activation.Activator;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
@@ -34,10 +32,13 @@ import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.exception.OseeStateException;
+import org.eclipse.osee.framework.core.operation.NullOperationLogger;
+import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
+import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
import org.eclipse.osee.framework.ui.skynet.widgets.XComboViewer;
@@ -66,6 +67,7 @@ public class TaskConfiguration extends AbstractBlam {
"Delete mode (selected Task Configuration artifact(s) will be deleted)";
private XListViewer taskConfigurationArtifacts;
+ private XComboViewer programWidget;
private XListViewer versionsWidget;
private XListViewer availableTeamDefinitionsWidget;
private XListViewer availableOtherVersionsWidget;
@@ -77,13 +79,6 @@ public class TaskConfiguration extends AbstractBlam {
private final Set<Artifact> selectedTaskConfigurationArtifacts;
- private static Set<Class<?>> keyTypes;
- static {
- keyTypes = new HashSet<Class<?>>(2);
- keyTypes.add(VersionArtifact.class);
- keyTypes.add(TeamDefinitionArtifact.class);
- }
-
public TaskConfiguration() {
super(null, String.format(
"Creates new %s artifact on selected Version artifacts, associates via Parent-Child relationship.",
@@ -98,23 +93,28 @@ public class TaskConfiguration extends AbstractBlam {
}
boolean deleteTaskConfiguration = map.getBoolean(DELETE_CHECKBOX);
+ boolean success = false;
if (version != null) {
String workStatement =
- String.format("%s \"%s\" artifact", deleteTaskConfiguration ? "Created" : "Deleted", TASK_CONFIGURATION);
+ String.format("%s \"%s\" artifact", deleteTaskConfiguration ? "Deleted" : "Created", TASK_CONFIGURATION);
monitor.beginTask(workStatement, deleteTaskConfiguration ? 1 : 3);
if (deleteTaskConfiguration) {
+ if (selectedTaskConfigurationArtifacts.isEmpty()) {
+ throw new IllegalArgumentException("You must select some task configuration artifacts to delete.");
+ }
for (Artifact taskConfiguration : selectedTaskConfigurationArtifacts) {
taskConfiguration.delete();
taskConfiguration.persist(String.format("[%s] removed Task configuration from [%s]",
getClass().getSimpleName(), version));
}
+ success = true;
} else {
if (selectedTeamDefinition == null || selectedVersion == null) {
monitor.setCanceled(true);
- throw new OseeStateException("Missing selections of selectedVersion and selectedTeamDefinition");
+ throw new IllegalArgumentException("Missing selections of Version and TeamDefinition");
}
Artifact taskConfiguration =
@@ -134,30 +134,37 @@ public class TaskConfiguration extends AbstractBlam {
taskConfiguration.addRelation(CoreRelationTypes.Universal_Grouping__Members, selectedVersion);
version.persist(String.format("[%s] added Task configuration to [%s]", getClass().getSimpleName(), version));
+ success = true;
}
//redraw available option widgets
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
- availableTeamDefinitionsWidget.setInput(null);
+ versionsWidget.setInput(null);
+ version = null;
availableOtherVersionsWidget.setInput(null);
selectedVersion = null;
+ availableTeamDefinitionsWidget.setInput(null);
selectedTeamDefinition = null;
+ taskConfigurationArtifacts.setInput(null);
+ selectedTaskConfigurationArtifacts.clear();
}
});
} else {
throw new OseeStateException("Version artifact not selected");
}
monitor.done();
+
+ AWorkbench.popup("Result", success ? "Added Task Configuration" : "Failed adding Task Configuration");
}
@Override
public void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) {
String label = xWidget.getLabel();
if (PROGRAM.equalsIgnoreCase(label)) {
- XComboViewer viewer = (XComboViewer) xWidget;
- viewer.addSelectionChangedListener(new ProgramChangedListener());
+ programWidget = (XComboViewer) xWidget;
+ programWidget.addSelectionChangedListener(new ProgramChangedListener());
} else if (VERSION_ARTIFACTS.equalsIgnoreCase(label)) {
versionsWidget = (XListViewer) xWidget;
versionsWidget.addSelectionChangedListener(new VersionChangedListener());
@@ -196,28 +203,18 @@ public class TaskConfiguration extends AbstractBlam {
if (iter.hasNext()) {
program = (IAtsProgram) iter.next();
- final Collection<VersionArtifact> versionArtifacts = new ArrayList<VersionArtifact>();
-
- try {
- TeamDefinitionArtifact holdingTeamDef = program.getTeamDefHoldingVersions();
- if (holdingTeamDef != null) {
- versionArtifacts.addAll(holdingTeamDef.getVersionsArtifacts());
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(
-
- Activator.class,
- Level.INFO,
- String.format("Unable to retrieve artifacts in %s",
- ProgramChangedListener.class.getSimpleName()));
- }
-
+ final Set<Artifact> versionArtifacts = getVersions(program);
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
version = null;
versionsWidget.setInput(versionArtifacts);
taskConfigurationArtifacts.setInput(null);
+
+ availableTeamDefinitionsWidget.setInput(null);
+ selectedTeamDefinition = null;
+ availableOtherVersionsWidget.setInput(null);
+ selectedVersion = null;
}
});
}
@@ -237,63 +234,9 @@ public class TaskConfiguration extends AbstractBlam {
if (iter.hasNext()) {
version = (VersionArtifact) iter.next();
- //filter out from avail versions to assign once selected -- same as avail team definitions
- final Collection<VersionArtifact> versionArtifacts = new ArrayList<VersionArtifact>();
- try {
- TeamDefinitionArtifact holdingTeamDef = program.getTeamDefHoldingVersions();
- if (holdingTeamDef != null) {
- versionArtifacts.addAll(holdingTeamDef.getVersionsArtifacts());
- }
- versionArtifacts.remove(version);
- } catch (OseeCoreException ex) {
- OseeLog.log(
- Activator.class,
- Level.INFO,
- String.format("Unable to retrieve artifacts in %s",
- VersionChangedListener.class.getSimpleName()));
- }
-
- //insert all team definitions -- same as versions
- final List<Artifact> teamDefs = new ArrayList<Artifact>();
- try {
- TeamDefinitionArtifact holdingTeamDef = program.getTeamDefHoldingVersions();
- if (holdingTeamDef != null) {
- teamDefs.addAll(holdingTeamDef.getDescendants());
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(
- Activator.class,
- Level.INFO,
- String.format("Unable to retrieve artifacts in %s",
- ProgramChangedListener.class.getSimpleName()));
- }
-
- //show currently stored task configuration artifacts - show their keys
final Map<String, Artifact> stringTotaskCreationMap = new HashMap<String, Artifact>();
- try {
- for (Artifact taskCreationNode : version.getChildren()) {
- if (taskCreationNode.isOfType(CoreArtifactTypes.UniversalGroup)) {
- List<Artifact> allKeyNodes =
- taskCreationNode.getRelatedArtifacts(CoreRelationTypes.Universal_Grouping__Members);
-
- Set<Artifact> result = getKeys(allKeyNodes.iterator(), new HashSet<Artifact>(2));
- Artifact[] nodes = result.toArray(new Artifact[result.size()]);
- if (nodes.length == 2) {
- Artifact key1 = nodes[0];
- Artifact key2 = nodes[1];
-
- String guiName =
- String.format("[%s]:[%s] --- [%s]:[%s]", key1.getArtifactTypeName(), key1.getName(),
- key2.getArtifactTypeName(), key2.getName());
-
- stringTotaskCreationMap.put(guiName, taskCreationNode);
- }
- }
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.INFO,
- String.format("Unable to retrieve %s artifacts", TASK_CONFIGURATION));
- }
+ Operations.executeAsJob(new TaskConfigurationQuery("Search for task configuration setup...",
+ NullOperationLogger.getSingleton(), version, stringTotaskCreationMap), true);
final ISelectionChangedListener taskCreationListener = new ISelectionChangedListener() {
private final Map<String, Artifact> map = stringTotaskCreationMap;
@@ -313,11 +256,15 @@ public class TaskConfiguration extends AbstractBlam {
}
};
+ final Set<Artifact> versionArtifacts = getVersions(TaskConfiguration.this.program);
+ versionArtifacts.remove(version);
+ final Set<Artifact> teamDefinitons = getTeamDefinitions(TaskConfiguration.this.program);
+
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
taskConfigurationArtifacts.setInput(stringTotaskCreationMap.keySet());
- availableTeamDefinitionsWidget.setInput(teamDefs);
+ availableTeamDefinitionsWidget.setInput(teamDefinitons);
availableOtherVersionsWidget.setInput(versionArtifacts);
taskConfigurationArtifacts.addSelectionChangedListener(taskCreationListener);
}
@@ -333,93 +280,55 @@ public class TaskConfiguration extends AbstractBlam {
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event.getSelectionProvider().getSelection();
final Iterator<?> iter = selection.iterator();
- new Thread(new Runnable() {
- @Override
- public void run() {
- if (iter.hasNext()) {
- final Set<Artifact> filteredVersions =
- new HashSet<Artifact>(getVersionsSet(TaskConfiguration.this.program));
- try {
- selectedTeamDefinition = (TeamDefinitionArtifact) iter.next();
- for (Artifact taskConf : selectedTeamDefinition.getRelatedArtifacts(CoreRelationTypes.Universal_Grouping__Group)) {
- List<Artifact> keys =
- taskConf.getRelatedArtifacts(CoreRelationTypes.Universal_Grouping__Members);
- for (int i = 0; i < keys.size(); i++) {
- if (keys.get(i).equals(selectedTeamDefinition)) {
- filteredVersions.remove(keys.get(keys.size() - 1 - i));
- break;
- }
- }
- }
- } catch (Exception ex) {
- OseeLog.log(
- Activator.class,
- Level.SEVERE,
- AvailTeamDefinitionSelectedListener.class.getSimpleName() + " unable to update versions. Ex: " + ex);
- }
- filteredVersions.remove(version);
+ if (iter.hasNext()) {
+ final Set<Artifact> result = new HashSet<Artifact>();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ selectedTeamDefinition = (TeamDefinitionArtifact) iter.next();
+
+ Operations.executeAsJob(new FilterVersionOperation("Filtering Version Artifacts", result,
+ selectedTeamDefinition, version), true);
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
- availableOtherVersionsWidget.setInput(filteredVersions);
+ availableOtherVersionsWidget.setInput(result);
+ selectedVersion = null;
}
});
}
- }
- }).start();
+ });
+ }
}
- };
+ }
private class AvailableVersionArtifacts implements ISelectionChangedListener {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event.getSelectionProvider().getSelection();
final Iterator<?> iter = selection.iterator();
- new Thread(new Runnable() {
- @Override
- public void run() {
- if (iter.hasNext()) {
- selectedVersion = (VersionArtifact) iter.next();
- }
- }
- }).start();
- }
- };
-
- /**
- * Pulls first found keys from child node and returns it as a set. <br/>
- * Will loop till it finds first 2 or runs out of member nodes.
- *
- * <pre>
- * (Key 1) Version Artifact
- * /
- * (Task Creation) child ---.`
- * \ \
- * | (Key 2) Team Definition
- * |
- * \
- * (Key n) Artifact
- * </pre>
- *
- * TODO protect against loops & seen elements
- *
- * @throws OseeCoreException
- */
- private Set<Artifact> getKeys(Iterator<Artifact> nodeIter, Set<Artifact> foundNodes) {
- if (nodeIter.hasNext()) {
- handleNode(nodeIter.next(), foundNodes);
+ if (iter.hasNext()) {
+ selectedVersion = (VersionArtifact) iter.next();
+ }
}
- return nodeIter.hasNext() && foundNodes.size() < 3 ? getKeys(nodeIter, foundNodes) : foundNodes;
}
- private void handleNode(Artifact artifact, Set<Artifact> storage) {
- if (keyTypes.contains(artifact.getClass())) {
- storage.add(artifact);
+ private Set<Artifact> getTeamDefinitions(IAtsProgram program) {
+ final Set<Artifact> teamDefs = new HashSet<Artifact>();
+ try {
+ TeamDefinitionArtifact holdingTeamDef = program.getTeamDefHoldingVersions();
+ if (holdingTeamDef != null) {
+ teamDefs.addAll(holdingTeamDef.getDescendants());
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.INFO,
+ String.format("Unable to retrieve artifacts in %s", ProgramChangedListener.class.getSimpleName()));
}
+ return teamDefs;
}
- private Set<Artifact> getVersionsSet(IAtsProgram program) {
+ private Set<Artifact> getVersions(IAtsProgram program) {
Set<Artifact> versions = new HashSet<Artifact>();
try {
Collection<VersionArtifact> pulled = program.getTeamDefHoldingVersions().getVersionsArtifacts();
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfigurationQuery.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfigurationQuery.java
new file mode 100644
index 0000000..46ffc8b
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/TaskConfigurationQuery.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.config;
+
+import java.rmi.activation.Activator;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.logging.Level;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.osee.ats.core.client.config.TeamDefinitionArtifact;
+import org.eclipse.osee.ats.core.client.version.VersionArtifact;
+import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
+import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.operation.AbstractOperation;
+import org.eclipse.osee.framework.core.operation.OperationLogger;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+
+public class TaskConfigurationQuery extends AbstractOperation {
+ private final Class<?>[] KEYS = {VersionArtifact.class, TeamDefinitionArtifact.class};
+
+ private final Set<Class<?>> keyTypes;
+ private final Artifact version;
+ private final Map<String, Artifact> taskConfigurationStorage;
+
+ public TaskConfigurationQuery(String operationName, OperationLogger logger, Artifact versionArtifact, Map<String, Artifact> storage) {
+ super(operationName, "org.eclipse.osee.ats.config.TaskConfigurationQuery", logger);
+ this.version = versionArtifact;
+ this.keyTypes = new HashSet<Class<?>>(Arrays.asList(KEYS));
+ this.taskConfigurationStorage = storage;
+ }
+
+ @Override
+ protected void doWork(IProgressMonitor monitor) throws Exception {
+ if (monitor == null) {
+ monitor = new NullProgressMonitor();
+ }
+
+ try {
+ for (Artifact taskCreationNode : version.getChildren()) {
+ if (CoreArtifactTypes.UniversalGroup.equals(taskCreationNode.getArtifactType())) {
+ List<Artifact> allKeyNodes =
+ taskCreationNode.getRelatedArtifacts(CoreRelationTypes.Universal_Grouping__Members);
+
+ Set<Artifact> firstFoundPair = getKeys(allKeyNodes.iterator(), new HashSet<Artifact>(2));
+ if (firstFoundPair.size() == 2) {
+ Artifact[] nodes = firstFoundPair.toArray(new Artifact[firstFoundPair.size()]);
+ Artifact key1 = nodes[0];
+ Artifact key2 = nodes[1];
+
+ String guiName =
+ String.format("[%s]:[%s] --- [%s]:[%s]", key1.getArtifactTypeName(), key1.getName(),
+ key2.getArtifactTypeName(), key2.getName());
+
+ taskConfigurationStorage.put(guiName, taskCreationNode);
+ }
+ }
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.INFO, "Unable to retrieve TASK_CONFIGURATION artifacts");
+ }
+
+ monitor.done();
+ }
+
+ /**
+ * Pulls first found keys from child node and returns it as a set. <br/>
+ * Will loop till it finds first 2 or runs out of member nodes.
+ *
+ * <pre>
+ * (Key 1) Version Artifact
+ * /
+ * (Task Creation) child ---.`
+ * \ \
+ * | (Key 2) Team Definition
+ * |
+ * \
+ * (Key n) Artifact
+ * </pre>
+ *
+ * TODO protect against loops & seen elements
+ *
+ * @throws OseeCoreException
+ */
+ private Set<Artifact> getKeys(Iterator<Artifact> nodeIter, Set<Artifact> foundNodes) {
+ if (nodeIter.hasNext()) {
+ handleNode(nodeIter.next(), foundNodes);
+ }
+ return nodeIter.hasNext() && foundNodes.size() < 3 ? getKeys(nodeIter, foundNodes) : foundNodes;
+ }
+
+ private void handleNode(Artifact artifact, Set<Artifact> storage) {
+ if (keyTypes.contains(artifact.getClass())) {
+ storage.add(artifact);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java
index e17a94b..744ac45 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java
@@ -125,9 +125,7 @@ public class XListViewer extends GenericXWidget {
}
public void setInputArtifacts(Collection<? extends Artifact> arts) {
- ArrayList<Object> objs = new ArrayList<Object>();
- objs.addAll(arts);
- setInput(objs);
+ setInput(new ArrayList<Object>(arts));
}
public void addSelectionChangedListener(ISelectionChangedListener listener) {