diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/textgrid/digilib/DigilibHandler.java	Thu Jun 16 16:53:24 2011 +0200
@@ -0,0 +1,74 @@
+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
+
+	}
+
+}