Package org.springframework.ide.eclipse.roo.ui.internal.actions

Source Code of org.springframework.ide.eclipse.roo.ui.internal.actions.RooAddOnManagerAction

/*******************************************************************************
*  Copyright (c) 2012 - 2013 VMware, Inc.
*  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:
*      VMware, Inc. - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.roo.ui.internal.actions;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.progress.UIJob;
import org.springframework.ide.eclipse.roo.ui.RooUiActivator;
import org.springframework.ide.eclipse.roo.ui.internal.RooShellView;


/**
* An action to open a Roo Shell tab for a group of projects
* @author Christian Dupuis
* @author Leo Dos Santos
* @since 2.1.0
*/
public class RooAddOnManagerAction extends Action {

  private final RooShellView view;

  public RooAddOnManagerAction(RooShellView view) {
    super("Roo Add-on Manager", RooUiActivator.getImageDescriptor("icons/full/obj16/addon.gif"));
    this.view = view;
    setEnabled(false);
  }

  @Override
  public void run() {
    RooAddOnManagerActionDelegate delegate = new RooAddOnManagerActionDelegate();
    if (view.getActiveProject() != null) {
      delegate.selectionChanged(this, new StructuredSelection(view.getActiveProject()));
    }
    // Currently Felix doesn't allow us to support installing shared addons,
    // so active project must not be null.
    //
    // else {
    // delegate.selectionChanged(this, new
    // StructuredSelection(RooUiUtil.getAllRooProjects()));
    // }
    delegate.run(view);
  }
 
  public void update() {
    UIJob job = new UIJob("") { //$NON-NLS-1$
      public IStatus runInUIThread(IProgressMonitor monitor) {
        setEnabled(isEnabled());
        return Status.OK_STATUS;
      }
    };
    job.setSystem(true);
    job.setPriority(Job.INTERACTIVE);
    job.schedule();
  }

  @Override
  public boolean isEnabled() {
    return view.getActiveProject() != null;
  }
 
}
TOP

Related Classes of org.springframework.ide.eclipse.roo.ui.internal.actions.RooAddOnManagerAction

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.