/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.editor.blocks; import org.eclipse.jface.action.IAction; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IPersistableElement; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PartInitException; import org.eclipse.ui.ide.IDE; import com.hundsun.ares.studio.core.IARESElement; import com.hundsun.ares.studio.core.IARESModule; import com.hundsun.ares.studio.core.IARESModuleRoot; /** * * @author yanwj06282 */ public class OpenResourceAction implements IObjectActionDelegate { private IWorkbenchPart part; private IARESElement element; @Override public void run(IAction action) { if(element != null) { try { IDE.openEditor(part.getSite().getPage(), new EditorInput(element) , OpenResourceEditor.EDITOR_ID); } catch (PartInitException e) { e.printStackTrace(); } } } @Override public void selectionChanged(IAction action, ISelection selection) { if(selection instanceof IStructuredSelection) { IStructuredSelection ss = (IStructuredSelection)selection; Object obj = ss.getFirstElement(); if(obj instanceof IARESModuleRoot) { IARESModuleRoot root = (IARESModuleRoot)obj; element = root; action.setEnabled(true); return; } else if(obj instanceof IARESModule) { element = (IARESModule)obj; action.setEnabled(true); return; } } element = null; action.setEnabled(false); } @Override public void setActivePart(IAction action, IWorkbenchPart targetPart) { this.part = targetPart; } public class EditorInput implements IEditorInput{ private IARESElement element; public EditorInput(IARESElement elements) { this.element = elements; } public IARESElement getElement() { return element; } @Override public Object getAdapter(Class adapter) { return null; } @Override public boolean exists() { return false; } @Override public ImageDescriptor getImageDescriptor() { return null; } @Override public String getName() { return element.getElementName(); } @Override public IPersistableElement getPersistable() { return null; } @Override public String getToolTipText() { return element.getElementName(); } } }