Package com.dubture.symfony.ui.views

Source Code of com.dubture.symfony.ui.views.ServicesViewerActionGroup$SortAction

/*******************************************************************************
* This file is part of the Symfony eclipse plugin.
*
* (c) Robert Gruendler <r.gruendler@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
******************************************************************************/
package com.dubture.symfony.ui.views;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.core.runtime.Path;
import org.eclipse.dltk.internal.ui.actions.CompositeActionGroup;
import org.eclipse.dltk.internal.ui.scriptview.ScriptMessages;
import org.eclipse.dltk.ui.DLTKPluginImages;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuCreator;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.IActionBars;

import com.dubture.symfony.core.model.SymfonyModelAccess;
import com.dubture.symfony.ui.SymfonyPluginImages;

@SuppressWarnings("restriction")
public class ServicesViewerActionGroup extends CompositeActionGroup {

  private ServicePart part;
   
  private class CollapseAction extends Action {
   
    public CollapseAction() {
         
      super(ScriptMessages.CollapseAllAction_label);
      setDescription(ScriptMessages.CollapseAllAction_description);
      setToolTipText(ScriptMessages.CollapseAllAction_tooltip);
      DLTKPluginImages.setLocalImageDescriptors(this, "collapseall.gif"); //$NON-NLS-1$     
     
    }
    @Override
    public void run()
    {
      super.run();
    }
   
  }
 
  private class FlatViewAction extends Action {
   
    public FlatViewAction() {
   
      setText("Flat");
      DLTKPluginImages.setLocalImageDescriptors(this, "flatLayout.gif");
     
    }
   
    @Override
    public void run()
    {   
      part.switchFlatView();
    }
  }
 
  private class BundleViewAction extends Action {
   
    public BundleViewAction() {     
      setText("Bundles");
      DLTKPluginImages.setLocalImageDescriptors(this, "hierarchicalLayout.gif");           
    }
   
    @Override
    public void run()
    {   
      part.switchBundleView();   
    }   
  }
 
  private class PublicFilter extends Action {
   
    public PublicFilter() {
      super("Hide private services", IAction.AS_CHECK_BOX);     
      DLTKPluginImages.setLocalImageDescriptors(this, "public_co.gif");
    }
   
   
    @Override
    public void run()
    {
      part.setPublicFilter(isChecked());
     
    }   
  }
 
  private class SortAction extends Action  {
   
   
    public SortAction() {
      super("Sort order", IAction.AS_CHECK_BOX);
      DLTKPluginImages.setLocalImageDescriptors(this, "alphab_sort_co.gif");     
     
     
    }
   
    @Override
    public void run()
    {
         
      part.setSort(!isChecked());
   
    }

  }
 
  private class TagFilterAction extends Action implements IMenuCreator {
         
    public TagFilterAction() {     
      super("Filter by tags", IAction.AS_DROP_DOWN_MENU);
      setImageDescriptor(SymfonyPluginImages.DESC_OBJS_TAG);
      setMenuCreator(this);
    }
   
    @Override
    public void run()
    {
     
     
    }
   
    @Override
    public void dispose()
    {

     
    }

    @Override
    public Menu getMenu(Control parent)
    {

      Menu menu = new Menu(parent);
      final String remove = "Remove filter";

      List<String> tags = new ArrayList<String>();
      tags.add(remove);
     
      // get all workspace tags
      tags.addAll(SymfonyModelAccess.getDefault().findServiceTags(new Path("/")));
     
      int i = 0;
     
      for (String tag : tags) {
       
        if(tag == null || tag.length() == 0)
          continue;
       
        Action action = new Action(tag) {     
          @Override
          public void run()
          {         
           
            if (getText().equals(remove))
              part.filterByTag(null);
            else  part.filterByTag(getText());
          }
        };
       
        ActionContributionItem item = new ActionContributionItem(action);
        item.fill(menu, -1);
       
        if (i++ == 0) {
          new MenuItem(menu, SWT.SEPARATOR);         
        }       
      }
           
      return menu;
    }

    @Override
    public Menu getMenu(Menu parent)
    {

      return null;
    }
   
   
  }
 
  public ServicesViewerActionGroup(ServicePart servicePart) {

    part = servicePart;
  }
 
 
  @Override
  public void fillActionBars(IActionBars actionBars)
  {
 
    super.fillActionBars(actionBars);
    setGlobalActionHandlers(actionBars);
    fillToolBar(actionBars.getToolBarManager());
    fillViewMenu(actionBars.getMenuManager());       
   
  }


  private void fillViewMenu(IMenuManager menuManager)
  {
    final MenuManager subMenu = new MenuManager("Service Representation");
    subMenu.add(new FlatViewAction());
    subMenu.add(new BundleViewAction());
    menuManager.add(subMenu);
   
  }


  private void fillToolBar(IToolBarManager toolBarManager)
  {

    toolBarManager.add(new CollapseAction());
    toolBarManager.add(new SortAction());   
    toolBarManager.add(new PublicFilter());
    toolBarManager.add(new TagFilterAction());
   
  }


  private void setGlobalActionHandlers(IActionBars actionBars)
  {
   
  }

}
TOP

Related Classes of com.dubture.symfony.ui.views.ServicesViewerActionGroup$SortAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.