package eu.jucy.connectiondebugger; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; import eu.jucy.gui.texteditor.hub.HubEditor; import uc.IHasUser; import uc.IHub; import uc.IUser; public class OpenDebuggerViewHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { IStructuredSelection sel = (IStructuredSelection)HandlerUtil.getCurrentSelectionChecked(event); if (sel.size() == 1 && sel.getFirstElement() instanceof IHasUser) { IUser usr =((IHasUser)sel.getFirstElement()).getUser(); openDebugger(usr,usr.getUserid().toString(), HandlerUtil.getActiveWorkbenchWindowChecked(event)); } return null; } public static class OpenDebuggerViewHubHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { IEditorPart part = HandlerUtil.getActiveEditor(event); if (part instanceof HubEditor) { IHub hub = ((HubEditor)part).getHub(); openDebugger(hub,hub.getFavHub().getHubaddy(),part.getSite().getWorkbenchWindow()); } return null; } } public static void openDebugger(Object o,String id,IWorkbenchWindow window) { IWorkbenchPage page = window.getActivePage(); id = id.replace(':', '|'); boolean exists = page.findViewReference(DebuggerView.ID,id) != null; try { if (!exists) { DebuggerView.addInput(id, o); page.showView(DebuggerView.ID,id, IWorkbenchPage.VIEW_CREATE ); } page.showView(DebuggerView.ID,id, IWorkbenchPage.VIEW_ACTIVATE); } catch (PartInitException e){ MessageDialog.openError(window.getShell(),"Error" ,e.toString()); } } }