changeset 27:ee955cf6c9c5

first commit
author dwinter
date Fri, 17 Jun 2011 14:24:34 +0200
parents 183c3e96f6c3
children f2e1827b97d7
files .classpath .project .settings/org.eclipse.jdt.core.prefs META-INF/MANIFEST.MF build.properties libs/digilibservice-client-1.0-SNAPSHOT.jar plugin.xml src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.java src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java src/de/mpg/mpiwg/itgroup/digilib/digiImage/IDigiImage.java src/de/mpg/mpiwg/itgroup/digilib/digiImage/TextGridDigiImage.java src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorInput.java src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorObservable.java src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java
diffstat 16 files changed, 300 insertions(+), 98 deletions(-) [+]
line wrap: on
line diff
--- a/.classpath	Mon Jan 10 12:01:25 2011 +0100
+++ b/.classpath	Fri Jun 17 14:24:34 2011 +0200
@@ -6,5 +6,6 @@
 	<classpathentry kind="lib" path="libs/commons-lang-2.3.jar"/>
 	<classpathentry kind="lib" path="libs/jdom-1.0.jar"/>
 	<classpathentry kind="lib" path="libs/jaxen-1.1.1.jar"/>
+	<classpathentry kind="lib" path="libs/digilibservice-client-1.0-SNAPSHOT.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
--- a/.project	Mon Jan 10 12:01:25 2011 +0100
+++ b/.project	Fri Jun 17 14:24:34 2011 +0200
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>de.mpg.mpiwg.itgroup.digilib.plugin</name>
+	<name>de.mpg.mpiwg.itgroup.digilib.core</name>
 	<comment></comment>
 	<projects>
 	</projects>
--- a/.settings/org.eclipse.jdt.core.prefs	Mon Jan 10 12:01:25 2011 +0100
+++ b/.settings/org.eclipse.jdt.core.prefs	Fri Jun 17 14:24:34 2011 +0200
@@ -1,8 +1,12 @@
-#Mon Dec 27 10:56:13 CET 2010
+#Thu Jun 16 17:58:54 CEST 2011
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.source=1.5
--- a/META-INF/MANIFEST.MF	Mon Jan 10 12:01:25 2011 +0100
+++ b/META-INF/MANIFEST.MF	Fri Jun 17 14:24:34 2011 +0200
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: digilibClient
-Bundle-SymbolicName: de.mpg.mpiwg.itgroup.digilib.plugin;singleton:=true
+Bundle-Name: digilibClient-core
+Bundle-SymbolicName: de.mpg.mpiwg.itgroup.digilib.core;singleton:=true
 Bundle-Version: 0.0.1
 Bundle-Activator: de.mpg.mpiwg.itgroup.digilib.plugin.Activator
 Require-Bundle: org.eclipse.ui,
@@ -10,11 +10,13 @@
  org.eclipse.core.resources,
  org.eclipse.ui.editors,
  org.eclipse.ui.ide,
- org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100"
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100",
+ org.apache.axis2.full;bundle-version="1.4.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ClassPath: libs/commons-lang-2.3.jar,
  .,
  libs/jdom-1.0.jar,
- libs/jaxen-1.1.1.jar
+ libs/jaxen-1.1.1.jar,
+ libs/digilibservice-client-1.0-SNAPSHOT.jar
 Export-Package: de.mpg.mpiwg.itgroup.digilib.plugin.editors
--- a/build.properties	Mon Jan 10 12:01:25 2011 +0100
+++ b/build.properties	Fri Jun 17 14:24:34 2011 +0200
@@ -6,5 +6,6 @@
                libs/commons-lang-2.3.jar,\
                libs/jdom-1.0.jar,\
                libs/jaxen-1.1.1.jar,\
+               libs/digilibservice-client-1.0-SNAPSHOT.jar,\
                plugin_customization.ini
 source.. = src/
Binary file libs/digilibservice-client-1.0-SNAPSHOT.jar has changed
--- a/plugin.xml	Mon Jan 10 12:01:25 2011 +0100
+++ b/plugin.xml	Fri Jun 17 14:24:34 2011 +0200
@@ -3,121 +3,67 @@
 <plugin>
    <extension-point id="DigilibImageManipulation" name="DigilibImageManipulation" schema="schema/DigilibImageManipulation.exsd"/>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
             class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.MirrorHorizontal"
             priority="1">
       </DigilibImageManipulation>
    </extension>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
             class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.MirrorVertical"
             priority="2">
       </DigilibImageManipulation>
    </extension>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
             class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.Rotate"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation3">
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation3">
       </DigilibImageManipulation>
    </extension>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
             class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ZoomArea"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation4">
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation4">
       </DigilibImageManipulation>
    </extension>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
             class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ZoomFull"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation5">
-      </DigilibImageManipulation>
-   </extension>
-   <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
-      <DigilibImageManipulation
-            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ScaleUp"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation6">
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation5">
       </DigilibImageManipulation>
    </extension>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
-            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ScaleDown"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation7">
-      </DigilibImageManipulation>
-   </extension>
-<extension
-         id="de.mpiwg.itgroup.textgrid.digilib.Viewer"
-         name="digilib viewer"
-         point="org.eclipse.ui.commands">
-      <command
-            description="ShowImage in Digilib"
-            id="de.mpg.mpiwg.itgroup.digilib.plugin.showImage"
-            name="ShowImage (digilib)">
-      </command>
-   </extension>
-   <extension
-         name="show Images"
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            allPopups="true"
-            locationURI="popup:org.eclipse.ui.popup.any?after=additions">
-         <command
-               commandId="de.mpg.mpiwg.itgroup.digilib.plugin.showImage"
-               style="push">
-         </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibHandler"
-            commandId="de.mpg.mpiwg.itgroup.digilib.plugin.showImage">
-      </handler>
-   </extension>
-   <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
-      <DigilibImageManipulation
-            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.NextPage"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation1">
+            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ScaleUp"
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation6">
       </DigilibImageManipulation>
    </extension>
    <extension
-         point="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation">
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
       <DigilibImageManipulation
-            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.PrevPage"
-            priority="de.mpg.mpiwg.itgroup.digilib.plugin.DigilibImageManipulation2">
+            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ScaleDown"
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation7">
       </DigilibImageManipulation>
    </extension>
    <extension
-         id="de.mpg.mpiwg.itgroup.digilib.plugin.digilibLinkEditor"
-         point="org.eclipse.ui.editors">
-      <editor
-            class="de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorPart"
-            contributorClass="de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorContributor"
-            default="false"
-            id="de.mpg.mpiwg.itgroup.digilib.plugin.digilibLinkEditor"
-            name="Digilib Link Editor">
-      </editor>
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
+      <DigilibImageManipulation
+            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.NextPage"
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation1">
+      </DigilibImageManipulation>
    </extension>
    <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="de.mpg.mpiwg.itgroup.digilib.plugin.preferences.PluginPreferencePage"
-            id="de.mpg.mpiwg.itgroup.digilib.plugin.page1"
-            name="Digilib viewer">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="de.mpg.mpiwg.itgroup.digilib.plugin.preferences.PluginPreferenceInitializer">
-      </initializer>
+         point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation">
+      <DigilibImageManipulation
+            class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.PrevPage"
+            priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation2">
+      </DigilibImageManipulation>
    </extension>
    <extension
          point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
@@ -152,5 +98,15 @@
          </propertySection>
       </propertySections>
    </extension>
+   <extension
+         point="org.eclipse.ui.editors">
+      <editor
+            class="de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorPart"
+            contributorClass="de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorContributor"
+            default="false"
+            id="de.mpg.mpiwg.itgroup.digilib.plugin.digilibLinkEditor"
+            name="diglib link editor">
+      </editor>
+   </extension>
 
 </plugin>
--- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java	Fri Jun 17 14:24:34 2011 +0200
@@ -35,7 +35,7 @@
  * @author dwinter
  *
  */
-public class DigiImage implements IDigiImage, IAdaptable, ISelectionProvider{
+public class DigiImage implements IDigiImage, IAdaptable{
 	
 	/** 
 	 * Implemens a connection to Digilib.
--- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.java	Fri Jun 17 14:24:34 2011 +0200
@@ -17,7 +17,7 @@
 	public static String VMIR="vmir"; // vertical mirroring
 	public static String HMIR="hmir"; // horizontal mirroring
 
-	public DigiImage digiImage; // the image to be controlled.
+	public IDigiImage digiImage; // the image to be controlled.
 	//private DigiImageParameter parameter;
 	
 	
@@ -27,7 +27,7 @@
 	 * 
 	 * @param di
 	 */
-	public DigiImageController(DigiImage di){
+	public DigiImageController(IDigiImage di){
 		this.digiImage=di;
 	}
 	
--- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java	Fri Jun 17 14:24:34 2011 +0200
@@ -275,6 +275,11 @@
 	}
 	
 }
+
+public void setType(int type) {
+	// TODO Auto-generated method stub
+	
+}
 	
 	
 	
--- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/IDigiImage.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/IDigiImage.java	Fri Jun 17 14:24:34 2011 +0200
@@ -1,5 +1,6 @@
 package de.mpg.mpiwg.itgroup.digilib.digiImage;
 
+import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 
@@ -11,7 +12,7 @@
  * @author dwinter
  *
  */
-public interface IDigiImage {
+public interface IDigiImage extends ISelectionProvider {
 	
 	/**
 	 * Gets the current set of parameters.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/TextGridDigiImage.java	Fri Jun 17 14:24:34 2011 +0200
@@ -0,0 +1,179 @@
+package de.mpg.mpiwg.itgroup.digilib.digiImage;
+
+import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService;
+import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibServicePortType;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.ws.Holder;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ZoomAreaRectangleListener;
+import de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorObservable;
+
+public class TextGridDigiImage implements IDigiImage {
+	//private URL url;
+	private Composite parent;
+	
+	private DigiImageParameter dp;
+
+	private String baseUrl;
+	
+	private Label label;
+	
+	private ZoomAreaRectangleListener rectangleListener=null;
+	
+	private List<ISelectionChangedListener> selectionChangeListener = new ArrayList<ISelectionChangedListener>();
+
+	private DigilibService service;
+
+	private DigilibServicePortType port;
+
+	/* some parameters should not occur in the URL constructed by {@link #createUrlFromParameter(DigiImageParameter)} if set to negative values.
+	 * 
+	 */
+	private static String[] omitIfNegativeArray = {"dw","dh","ddpi","ddpix","ddpiy"}; 
+	private static List<String> omitIfNegative = Arrays.asList(omitIfNegativeArray);
+	
+	 String logParam = null;
+     // Holder for return data 
+     Holder<String> mimeType = new Holder<String>();
+     Holder<byte[]> imageData = new Holder<byte[]>();
+     Holder<Integer> width = new Holder<Integer>();
+     Holder<Integer> height = new Holder<Integer>();
+
+	private String sid;
+     
+	public TextGridDigiImage(Composite parent, int style,
+			DigiImageParameter dp, String sid)  {
+			label = new Label(parent, style);
+			this.parent = parent;
+			this.dp=dp;
+			try {
+				service = new DigilibService(new URL("http://localhost:8080/digilibservice-service/service?wsdl"));
+			} catch (MalformedURLException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+	        port = service.getDigilibServicePort();
+	        this.sid=sid;
+	        this.dp=dp;
+	        try {
+				createNewImage(createQueryFromParameter(dp));
+			} catch (MalformedURLException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		// TODO Auto-generated constructor stub
+	}
+
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		selectionChangeListener.add(listener);
+
+	}
+
+	public ISelection getSelection() {
+		return new StructuredSelection(this);
+	}
+
+	public void removeSelectionChangedListener(
+			ISelectionChangedListener listener) {
+		selectionChangeListener.remove(listener);
+		
+	}
+	
+	public void setSelection(ISelection selection) {
+		for  (ISelectionChangedListener sl: selectionChangeListener){
+			SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
+			sl.selectionChanged(event);
+		
+		}
+		}
+
+	public DigiImageParameter getParameter() {
+		
+		return dp;
+	}
+
+	public void setParameter(DigiImageParameter dp) {
+	this.dp=dp;
+		
+	}
+
+	public void redraw() {
+		try {
+			createNewImage(createQueryFromParameter(dp));
+			setSelection(new StructuredSelection(this));
+			DigilibLinkEditorObservable.INSTANCE.imageHasChanged(this);
+			
+		} catch (MalformedURLException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}	
+	private void createNewImage(String query) {
+
+		port.getScaledImage(sid,dp.fn, query, logParam, mimeType, imageData, width, height);
+		
+		Image img = new Image(parent.getDisplay(),new ByteArrayInputStream(imageData.value))
+		;
+		//Label label = new Label(parent, SWT.None);
+		label.setImage(img);
+		
+		label.setVisible(true);
+		
+	}
+
+	private String createQueryFromParameter(DigiImageParameter dp) throws MalformedURLException {
+	Map<String, String> qa = dp.createMapFromParameters(omitIfNegative);
+		
+		List<String> queryArray = new ArrayList<String>();
+		for(String key:qa.keySet()){
+			queryArray.add(key+"="+qa.get(key));
+		}
+		String queryString = StringUtils.join(queryArray,"&");
+		
+		String stringUrl=queryString;
+	
+		return stringUrl;
+	}
+
+	public Label getLabel() {
+		return label;
+		
+	}
+
+	public void setLabel(Label label) {
+		this.label = label;
+
+	}
+
+	public ZoomAreaRectangleListener getRectangleListener() {
+		return rectangleListener;
+	}
+
+	public void setRectangleListener(ZoomAreaRectangleListener rectangleListener) {
+		this.rectangleListener = rectangleListener;
+	}
+
+	public Composite getParent() {
+		return parent;
+	}
+
+}
--- a/src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java	Fri Jun 17 14:24:34 2011 +0200
@@ -30,7 +30,7 @@
     	propertyExtensions = new ArrayList<IDigilibImageManipulator>();
     	propertyExtensionsMap = new HashMap<String,IDigilibImageManipulator>();
         
-        IConfigurationElement[] configs = Platform.getExtensionRegistry().getConfigurationElementsFor("de.mpg.mpiwg.itgroup.digilib.plugin","DigilibImageManipulation");
+        IConfigurationElement[] configs = Platform.getExtensionRegistry().getConfigurationElementsFor("de.mpg.mpiwg.itgroup.digilib.core","DigilibImageManipulation");
         for (IConfigurationElement e : configs)
         {
             Object o = null;
--- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorInput.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorInput.java	Fri Jun 17 14:24:34 2011 +0200
@@ -1,5 +1,7 @@
 package de.mpg.mpiwg.itgroup.digilib.plugin.editors;
 
+import java.net.URI;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
@@ -14,7 +16,20 @@
 
 	private IFile file;
 	public static int INDEX_META=0;
+	public static int TEXTGRID=1;
 	private int type;
+	private URI uri;
+	private String sid;
+	private String name;
+	private String toolTipText;
+
+	public URI getUri() {
+		return uri;
+	}
+
+	public void setUri(URI uri) {
+		this.uri = uri;
+	}
 
 	/**
 	 * @return
@@ -44,6 +59,18 @@
 	 */
 	public DigilibLinkEditorInput(IFile file, int type) {
 		this.file = file;
+		this.name=file.getName();
+		this.toolTipText=file.getFullPath().toOSString();
+		setType(type);
+	}
+
+	public DigilibLinkEditorInput(URI textGridUri, String sid,int type) {
+		this.file= null;
+		this.name=textGridUri.toASCIIString(); //TODO: get real name from Metadata
+		this.toolTipText=textGridUri.toASCIIString(); //TODO: get real name from Metadata
+		this.uri = textGridUri;
+		this.setSid(sid);
+		
 		setType(type);
 	}
 
@@ -64,8 +91,7 @@
 	}
 
 	public String getName() {
-		
-		String name = file.getName();
+	
 		return name;
 	}
 
@@ -76,7 +102,15 @@
 
 	public String getToolTipText() {
 		
-		return file.getFullPath().toOSString();
+		return toolTipText;
+	}
+
+	public void setSid(String sid) {
+		this.sid = sid;
+	}
+
+	public String getSid() {
+		return sid;
 	}
 
 }
--- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorObservable.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorObservable.java	Fri Jun 17 14:24:34 2011 +0200
@@ -3,6 +3,7 @@
 import java.util.Observable;
 
 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
+import de.mpg.mpiwg.itgroup.digilib.digiImage.IDigiImage;
 
 public class DigilibLinkEditorObservable extends Observable {
 
@@ -10,7 +11,7 @@
 	
 	protected DigilibLinkEditorObservable(){};
 	
-	public void imageHasChanged(DigiImage di){
+	public void imageHasChanged(IDigiImage di){
 		setChanged();
 		notifyObservers(di);
 	}
--- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Mon Jan 10 12:01:25 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Fri Jun 17 14:24:34 2011 +0200
@@ -5,6 +5,7 @@
 import java.util.Observable;
 import java.util.Observer;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.viewers.StructuredSelection;
@@ -26,6 +27,8 @@
 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageController;
 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter;
 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiNav;
+import de.mpg.mpiwg.itgroup.digilib.digiImage.IDigiImage;
+import de.mpg.mpiwg.itgroup.digilib.digiImage.TextGridDigiImage;
 import de.mpg.mpiwg.itgroup.indexMeta.Utils.ParseIndexMeta;
 
 /**
@@ -86,6 +89,10 @@
 
 		DigilibLinkEditorInput input= (DigilibLinkEditorInput) getEditorInput();
 		String path="";
+		
+		
+		IDigiImage digiImage;
+		
 		if (input.getType()==DigilibLinkEditorInput.INDEX_META){
 			ParseIndexMeta im;
 			try {
@@ -105,6 +112,12 @@
 			}
 			try {
 				path=im.getImagePath();
+				path=path.replace("/mpiwg/online", "");
+				DigiImageParameter dp = new DigiImageParameter(path);
+				dp.setType(input.getType());
+				dp.setDh(500);
+				dp.setDw(500);
+				digiImage = new DigiImage(mainComposite, SWT.BORDER, dp);
 			} catch (JDOMException e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
@@ -112,19 +125,24 @@
 			}
 			if (path==null)
 				return;
+		} else if (input.getType()==DigilibLinkEditorInput.TEXTGRID){
+			path = input.getUri().toASCIIString();
+			DigiImageParameter dp = new DigiImageParameter(path);
+			dp.setType(input.getType());
+			dp.setDh(500);
+			dp.setDw(500);
+			digiImage = new TextGridDigiImage(mainComposite, SWT.BORDER, dp,input.getSid());
+			
 		} else {
 			//TODO: issue warning that type cannot be solved.
 			return;
 		}
 		
 		
-		path=path.replace("/mpiwg/online", "");
-		DigiImageParameter dp = new DigiImageParameter(path);
-		dp.setDh(500);
-		dp.setDw(500);
+	
 		
 		
-		DigiImage digiImage = new DigiImage(mainComposite, SWT.BORDER, dp);
+		
 		DigiImageController digiImageController = new DigiImageController(digiImage);
 		//imageComp.setBackgroundImage(img);		
 		new DigiNav(mainComposite,SWT.NONE,digiImageController);