blob: e4722ce17b499b539c4b6654557579913c2696c3 [file] [log] [blame]
/**
*
*/
package org.eclipse.wst.jsdt.web.ui.views.provisional.contentoutline;
import java.awt.Composite;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.ActionContext;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.internal.InternalHandlerUtil;
import org.eclipse.ui.part.Page;
import org.eclipse.wst.jsdt.core.IJavaElement;
import org.eclipse.wst.jsdt.internal.ui.JavaPlugin;
import org.eclipse.wst.jsdt.internal.ui.actions.CompositeActionGroup;
import org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitEditorActionContributor;
import org.eclipse.wst.jsdt.ui.actions.CCPActionGroup;
import org.eclipse.wst.jsdt.ui.actions.GenerateActionGroup;
import org.eclipse.wst.jsdt.ui.actions.JavaSearchActionGroup;
import org.eclipse.wst.jsdt.ui.actions.OpenViewActionGroup;
import org.eclipse.wst.jsdt.ui.actions.RefactorActionGroup;
import org.eclipse.wst.jsdt.web.ui.actions.JSDTActionSetUtil;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.ui.internal.IReleasable;
import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
/**
* @author childsb
*
*/
public class JsMenuListener extends XMLNodeActionManager implements IMenuListener, IReleasable {
private XMLNodeActionManager fActionManager;
private TreeViewer fTreeViewer;
private CompositeActionGroup fActionGroups;
CompilationUnitEditorActionContributor contrib;
ISelectionProvider selectionProvider;
public JsMenuListener(TreeViewer viewer) {
super((IStructuredModel) viewer.getInput(), viewer);
contrib = new CompilationUnitEditorActionContributor();
fTreeViewer = viewer;
//
// fActionGroups= new CompositeActionGroup(new ActionGroup[] {
// new OpenViewActionGroup(getWorkbenchSite(), getSelectionProvider()),
// new CCPActionGroup(getWorkbenchSite()),
// new GenerateActionGroup(getWorkbenchSite()),
// new RefactorActionGroup(getWorkbenchSite()),
// new JavaSearchActionGroup(getWorkbenchSite())});
}
private IWorkbenchSite getWorkbenchSite() {
return InternalHandlerUtil.getActiveSite(fTreeViewer);
}
private ISelectionProvider getSelectionProvider() {
return getWorkbenchSite().getSelectionProvider();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
*/
public void menuAboutToShow(IMenuManager manager) {
ISelection selection = fTreeViewer.getSelection();
if(selection instanceof TreeSelection) {
TreeSelection tselect = (TreeSelection)selection;
Object[] elements = tselect.toArray();
int javaCount=0;
for(int i=0;i<elements.length;i++) {
if(elements[i] instanceof IJavaElement) {
javaCount++;
}
}
if(javaCount==elements.length && javaCount!=0) {
org.eclipse.swt.widgets.Composite parent = fTreeViewer.getTree().getParent();
System.out.println("wait......");
/* all Java Elements */
//
//
//
// JavaPlugin.createStandardGroups(manager);
// String[] actionSets = JSDTActionSetUtil.getAllActionSets();
//
// IAction[] actions = JSDTActionSetUtil.getActionsFromSet(actionSets);
// for(int i = 0;i<actions.length;i++) {
// manager.add(actions[i]);
// }
// fActionGroups.setContext(new ActionContext(selection));
// fActionGroups.fillContextMenu(manager);
//
}else if(javaCount==0){
fillContextMenu(manager, selection);
}
}
}
public IAction[] getAllJsActions() {
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.wst.sse.ui.internal.IReleasable#release()
*/
public void release() {
fTreeViewer = null;
if (fActionManager != null) {
fActionManager.setModel(null);
}
}
}