Skip to main content
summaryrefslogblamecommitdiffstats
blob: 5a709c4af49d80e5db05742e5dbc44881f13731b (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                                 
                                                  

                           
                        
                      
                               
                                                      
                                                        
                                                 

                                                            
                                                                  
                                                            
                                                        
                                                       
                                                      
                                                        

                                                         
                                                                
                                                                               
                                                               
                                                             
                                                                            
                                                                          
                                                                  
                                                                   
                                                                  
                                                  



                                                                          
                                                           
                                                                     











                                                                      
                                                                                         
                                        
                                                                                                  

                                                          
                     
                                                                                                 
                                            


                                                           
       
                     

    
            
                                                                                                   

                                                                 
                                                                     

                      


                                                                  
                                                         

                         
                              
                                                                                  

                      
                                                                                             




                                                                                                   
                                               
              
                                                          
                                                                                                                  
                                                                                                          
                                                                                                         
                                                                                                            
                                                                                                          
                                        
                                                                                                
                                                                                                                    
                                                                                                                   

                                               
                                                 
                                                                                                                


                                                                                                                
 
                                                                                                           
                                                                                                           
                                         
                                                                                                           
                                                                                                                 



                                                            
                                                           


          
                                                                                               
 




                                                                                                                  
                                                                                                             
                                         
                                                                                                              
 
                                                                                                
                                           
                                                
                                                   
 
                                                                                                




                                         
/*******************************************************************************
 * 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.client.demo.navigate;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.client.demo.DemoTeam;
import org.eclipse.osee.ats.client.demo.PopulateDemoActions;
import org.eclipse.osee.ats.client.demo.internal.Activator;
import org.eclipse.osee.ats.client.demo.internal.AtsClientService;
import org.eclipse.osee.ats.config.ValidateAtsConfiguration;
import org.eclipse.osee.ats.core.config.TeamDefinitions;
import org.eclipse.osee.ats.health.ValidateAtsDatabase;
import org.eclipse.osee.ats.navigate.IAtsNavigateItem;
import org.eclipse.osee.ats.navigate.SearchNavigateItem;
import org.eclipse.osee.ats.version.CreateNewVersionItem;
import org.eclipse.osee.ats.version.ReleaseVersionItem;
import org.eclipse.osee.ats.world.search.ArtifactTypeSearchItem;
import org.eclipse.osee.ats.world.search.ArtifactTypeWithInheritenceSearchItem;
import org.eclipse.osee.ats.world.search.NextVersionSearchItem;
import org.eclipse.osee.ats.world.search.TeamWorldSearchItem;
import org.eclipse.osee.ats.world.search.TeamWorldSearchItem.ReleasedOption;
import org.eclipse.osee.ats.world.search.VersionTargetedForTeamSearchItem;
import org.eclipse.osee.ats.world.search.WorldSearchItem.LoadView;
import org.eclipse.osee.framework.core.client.ClientSessionManager;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemFolder;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateUrlItem;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.util.DbConnectionUtility;

/**
 * Provides the ATS Navigator items for the sample XYZ company's teams
 * 
 * @author Donald G. Dunne
 */
public class DemoNavigateViewItems implements IAtsNavigateItem {

   public DemoNavigateViewItems() {
      super();
   }

   private static IAtsTeamDefinition getTeamDef(DemoTeam team) throws OseeCoreException {
      IAtsTeamDefinition results = null;
      // Add check to keep exception from occurring for OSEE developers running against production
      if (!ClientSessionManager.isProductionDataStore()) {
         try {
            results =
               AtsClientService.get().getConfig().getSoleByGuid(team.getTeamDefToken().getGuid(),
                  IAtsTeamDefinition.class);
         } catch (Exception ex) {
            OseeLog.log(Activator.class, Level.SEVERE, ex);
         }
      }
      return results;
   }

   @Override
   public List<XNavigateItem> getNavigateItems(XNavigateItem parentItem) throws OseeCoreException {
      List<XNavigateItem> items = new ArrayList<XNavigateItem>();

      if (DbConnectionUtility.areOSEEServicesAvailable().isFalse()) {
         return items;
      }

      // If Demo Teams not configured, ignore these navigate items
      try {
         if (getTeamDef(DemoTeam.Process_Team) == null) {
            return items;
         }
      } catch (Exception ex) {
         OseeLog.log(Activator.class, Level.INFO, "Demo Teams Not Cofigured", ex);
         return items;
      }
      XNavigateItem jhuItem = new XNavigateItemFolder(parentItem, "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 (DemoTeam team : DemoTeam.values()) {
         try {
            IAtsTeamDefinition teamDef = getTeamDef(team);
            XNavigateItem teamItems = new XNavigateItemFolder(jhuItem, "JHU " + team.name().replaceAll("_", " "));
            new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Open " + teamDef + " Actions",
               Arrays.asList(teamDef), false, false, true, true, null, null, ReleasedOption.Both, null));
            new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Open " + teamDef + " Workflows",
               Arrays.asList(teamDef), false, false, false, true, null, null, ReleasedOption.Both, null));
            // Handle all children teams
            for (IAtsTeamDefinition childTeamDef : TeamDefinitions.getChildren(teamDef, true)) {
               new SearchNavigateItem(teamItems, new TeamWorldSearchItem("Show Open " + childTeamDef + " Workflows",
                  Arrays.asList(childTeamDef), false, false, false, false, null, null, ReleasedOption.Both, null));
            }
            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, true, false, true, null, null, ReleasedOption.UnReleased, null));
               new ReleaseVersionItem(teamItems, teamDef);
               new CreateNewVersionItem(teamItems, teamDef);
            }
         } catch (Exception ex) {
            OseeLog.log(Activator.class, Level.SEVERE, ex);
         }
      }

      XNavigateItem adminItems = new XNavigateItem(jhuItem, "JHU Admin", FrameworkImage.LASER);

      new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Actions", AtsArtifactTypes.Action));
      new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Decision Review",
         AtsArtifactTypes.DecisionReview));
      new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all PeerToPeer Review",
         AtsArtifactTypes.PeerToPeerReview));
      new SearchNavigateItem(adminItems, new ArtifactTypeWithInheritenceSearchItem("Show all Team Workflows",
         AtsArtifactTypes.TeamWorkflow));
      new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Tasks", AtsArtifactTypes.Task));

      XNavigateItem healthItems = new XNavigateItem(adminItems, "Health", FrameworkImage.LASER);
      new ValidateAtsDatabase(healthItems);
      new ValidateAtsConfiguration(healthItems);
      new CreateGoalTestDemoArtifacts(healthItems);

      XNavigateItem demoItems = new XNavigateItem(adminItems, "Demo Data", PluginUiImage.ADMIN);
      new PopulateDemoActions(demoItems);

      return items;
   }
}

Back to the top