blob: fcb22723827a9c3d415a80436c117754c3a08b06 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 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.demo.navigate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import org.eclipse.osee.ats.AtsPlugin;
import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions;
import org.eclipse.osee.ats.config.demo.config.PopulateDemoActions;
import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator;
import org.eclipse.osee.ats.config.demo.util.DemoTeams;
import org.eclipse.osee.ats.config.demo.util.DemoTeams.Team;
import org.eclipse.osee.ats.health.ValidateAtsDatabase;
import org.eclipse.osee.ats.navigate.CreateNewVersionItem;
import org.eclipse.osee.ats.navigate.IAtsNavigateItem;
import org.eclipse.osee.ats.navigate.ReleaseVersionItem;
import org.eclipse.osee.ats.navigate.SearchNavigateItem;
import org.eclipse.osee.ats.world.search.ArtifactTypeSearchItem;
import org.eclipse.osee.ats.world.search.ArtifactTypesSearchItem;
import org.eclipse.osee.ats.world.search.NextVersionSearchItem;
import org.eclipse.osee.ats.world.search.TeamWorldSearchItem;
import org.eclipse.osee.ats.world.search.VersionTargetedForTeamSearchItem;
import org.eclipse.osee.ats.world.search.TeamWorldSearchItem.ReleasedOption;
import org.eclipse.osee.ats.world.search.WorldSearchItem.LoadView;
import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItemFolder;
import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateUrlItem;
/**
* Provides the ATS Navigator items for the sample XYZ company's teams
*
* @author Donald G. Dunne
*/
public class DemoNavigateViewItems implements IAtsNavigateItem {
public DemoNavigateViewItems() {
super();
}
public List<XNavigateItem> getNavigateItems() throws OseeCoreException {
List<XNavigateItem> items = new ArrayList<XNavigateItem>();
if (AtsPlugin.areOSEEServicesAvailable().isFalse()) return items;
// If Demo Teams not configured, ignore these navigate items
try {
if (DemoTeams.getInstance().getTeamDef(Team.Process_Team) == null) return items;
} catch (Exception ex) {
OseeLog.log(OseeAtsConfigDemoActivator.class, Level.WARNING, "Demo Teams Not Cofigured", ex);
return items;
}
// If Demo Teams not configured, ignore these navigate items
try {
if (DemoTeams.getInstance().getTeamDef(Team.Process_Team) == null) return items;
} catch (Exception ex) {
OseeLog.log(OseeAtsConfigDemoActivator.class, Level.WARNING, "Demo Teams Not Cofigured", ex);
return items;
}
XNavigateItem jhuItem = new XNavigateItemFolder(null, "John Hopkins Univ (JHU)");
new XNavigateUrlItem(jhuItem, "Open JHU Website - Externally", "http://www.jhu.edu/", true);
new XNavigateUrlItem(jhuItem, "Open JHU Website - Internally", "http://www.jhu.edu/", false);
items.add(jhuItem);
for (Team team : Team.values()) {
try {
TeamDefinitionArtifact teamDef = DemoTeams.getInstance().getTeamDef(team);
XNavigateItem teamItems = new XNavigateItemFolder(jhuItem, "JHU " + team.name().replaceAll("_", " "));
new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Open " + teamDef + " Actions",
Arrays.asList(DemoTeams.getInstance().getTeamDef(team)), false, true, true, null, null,
ReleasedOption.Both));
new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Open " + teamDef + " Workflows",
Arrays.asList(DemoTeams.getInstance().getTeamDef(team)), false, false, true, null, null,
ReleasedOption.Both));
// Handle all children teams
for (TeamDefinitionArtifact childTeamDef : Artifacts.getChildrenOfTypeSet(
DemoTeams.getInstance().getTeamDef(team), TeamDefinitionArtifact.class, true)) {
new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Open " + childTeamDef + " Workflows",
Arrays.asList(childTeamDef), false, false, false, null, null, ReleasedOption.Both));
}
if (teamDef.isTeamUsesVersions()) {
if (team.name().contains("SAW"))
new XNavigateUrlItem(teamItems, "Open SAW Website", "http://www.cisst.org/cisst/saw/", false);
else if (team.name().contains("CIS")) new XNavigateUrlItem(teamItems, "Open CIS Website",
"http://www.cisst.org/cisst/cis/", false);
new SearchNavigateItem(teamItems, new NextVersionSearchItem(teamDef, LoadView.WorldEditor));
new SearchNavigateItem(teamItems, new VersionTargetedForTeamSearchItem(teamDef, null, false,
LoadView.WorldEditor));
new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Un-Released Team Workflows",
Arrays.asList(teamDef), true, false, true, null, null, ReleasedOption.UnReleased));
new ReleaseVersionItem(teamItems, teamDef);
new CreateNewVersionItem(teamItems, teamDef);
}
} catch (Exception ex) {
OseeLog.log(OseeAtsConfigDemoActivator.class, Level.SEVERE, ex);
}
}
XNavigateItem adminItems = new XNavigateItem(jhuItem, "JHU Admin", FrameworkImage.LASER);
new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Actions", "Actions"));
new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Decision Review", "Decision Review"));
new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all PeerToPeer Review", "PeerToPeer Review"));
new SearchNavigateItem(adminItems, new ArtifactTypesSearchItem("Show all Team Workflows",
TeamWorkflowExtensions.getInstance().getAllTeamWorkflowArtifactNames()));
new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Tasks", "Task"));
XNavigateItem healthItems = new XNavigateItem(adminItems, "Health", FrameworkImage.LASER);
new ValidateAtsDatabase(healthItems);
XNavigateItem demoItems = new XNavigateItem(adminItems, "Demo Data", FrameworkImage.ADMIN);
new PopulateDemoActions(demoItems);
return items;
}
}