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











                                                                                 

                                                  
                                                   

                                                                       


                                               



                           
                                                      
 

                                                

    





                                                                    

    














                                                                                                                         
             


                                                                                                     
          
       























                                                                               

 
/*******************************************************************************
 * 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.framework.ui.skynet;

import java.util.logging.Level;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.ui.plugin.OseeStatusContributionItem;
import org.eclipse.ui.part.IPageSite;
import org.eclipse.ui.part.MultiPageEditorPart;
import org.eclipse.ui.part.ViewPart;

/**
 * @author Jeff C. Phillips
 */
public final class OseeStatusContributionItemFactory {

   private OseeStatusContributionItemFactory() {
      // Static Factory Class
   }

   public static void addTo(IStatusLineManager manager) {
      createItem(manager, OseeBuildTypeContributionItem.class);
      createItem(manager, ResServiceContributionItem.class);
      createItem(manager, AdminContributionItem.class);
      createItem(manager, OseeServicesStatusContributionItem.class);
      createItem(manager, SessionContributionItem.class);
   }

   private static void createItem(IStatusLineManager manager, Class<? extends OseeStatusContributionItem> contribClazz) {
      boolean wasFound = false;
      for (IContributionItem item : manager.getItems()) {
         if (contribClazz.isAssignableFrom(item.getClass())) {
            wasFound = true;
            break;
         }
      }
      if (!wasFound) {
         try {
            OseeStatusContributionItem object = contribClazz.newInstance();
            if (object.isCreationAllowed()) {
               manager.add(object);
            } else {
               object.dispose();
            }
         } catch (Exception ex) {
            OseeLog.log(SkynetGuiPlugin.class, Level.SEVERE,
               String.format("Error creating status line contribution item [%s]", contribClazz), ex);
         }
      }
   }

   public static void addTo(IPageSite pageSite, boolean update) {
      addTo(pageSite.getActionBars().getStatusLineManager());

      if (update) {
         pageSite.getActionBars().updateActionBars();
      }
   }

   public static void addTo(ViewPart view, boolean update) {
      addTo(view.getViewSite().getActionBars().getStatusLineManager());

      if (update) {
         view.getViewSite().getActionBars().updateActionBars();
      }
   }

   public static void addTo(MultiPageEditorPart editorPart, boolean update) {
      addTo(editorPart.getEditorSite().getActionBars().getStatusLineManager());
      if (update) {
         editorPart.getEditorSite().getActionBars().updateActionBars();
      }
   }

}

Back to the top