view src/de/mpg/mpiwg/itgroup/textgrid/digilib/DigilibHandler.java @ 0:6c0a97ea21c7

first release
author dwinter
date Thu, 16 Jun 2011 16:53:24 +0200
parents
children
line wrap: on
line source

package de.mpg.mpiwg.itgroup.textgrid.digilib;

import java.net.URI;

import info.textgrid.lab.authn.RBACSession;
import info.textgrid.lab.core.model.TextGridObject;

import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.IHandlerListener;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.HandlerUtil;
import info.textgrid.lab.core.swtutils.AdapterUtils;

import de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorInput;
import de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorPart;


public class DigilibHandler implements IHandler {

	public void addHandlerListener(IHandlerListener handlerListener) {
		// TODO Auto-generated method stub

	}

	public void dispose() {
		// TODO Auto-generated method stub

	}

	public Object execute(ExecutionEvent event) throws ExecutionException {
		
		ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
		if (IStructuredSelection.class.isInstance(currentSelection)) {
			IStructuredSelection selection = (IStructuredSelection) currentSelection;
			TextGridObject object = AdapterUtils.getAdapter(selection.getFirstElement(), TextGridObject.class);
		
			
			IFile file = (IFile) object.getAdapter(IFile.class);
			URI textGridUri = object.getURI();
			String sid = RBACSession.getInstance().getSID(true);
			DigilibLinkEditorInput input = new DigilibLinkEditorInput(textGridUri,sid,DigilibLinkEditorInput.TEXTGRID);
			
		try {
			DigilibLinkEditorPart dp = (DigilibLinkEditorPart) HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().openEditor(input,"de.mpg.mpiwg.itgroup.digilib.plugin.digilibLinkEditor");
			return dp;
		} catch (PartInitException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}
		return null;
	}

	public boolean isEnabled() {
		
		return true;
	}

	public boolean isHandled() {
		// TODO Auto-generated method stub
		return false;
	}

	public void removeHandlerListener(IHandlerListener handlerListener) {
		// TODO Auto-generated method stub

	}

}