diff src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java @ 1:83c58ea33792

first release (continued)
author dwinter
date Mon, 03 Jan 2011 09:11:25 +0100
parents
children e63a64652f4d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Mon Jan 03 09:11:25 2011 +0100
@@ -0,0 +1,179 @@
+package de.mpg.mpiwg.itgroup.digilib.plugin.editors;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Observable;
+import java.util.Observer;
+
+import info.textgrid.lab.linkeditor.mip.gui.ImagePanel;
+
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Scale;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.jdom.JDOMException;
+
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
+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.exceptions.DigilibInputTypeException;
+import de.mpg.mpiwg.itgroup.indexMeta.Utils.ParseIndexMeta;
+
+/**
+ * 
+ * @author dwinter
+ *
+ */
+public class DigilibLinkEditorPart extends EditorPart implements IResourceChangeListener, Observer{
+
+	private ImagePanel imagePanel;
+	private Composite mainComposite;
+	private ScrolledComposite sc;
+
+	public void resourceChanged(IResourceChangeEvent event) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setInput(input);
+		setSite(site);
+		
+	}
+
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void createPartControl(Composite frame) {
+	
+		sc = new ScrolledComposite(frame, SWT.H_SCROLL | SWT.V_SCROLL);
+		mainComposite = new Composite(sc,SWT.None);
+		
+		GridLayout imageLayout = new GridLayout(2,false);
+		mainComposite.setLayout(imageLayout);
+		sc.setContent(mainComposite);
+		//sc.setMinSize(400, 400);
+		
+		URL url;
+
+		DigilibLinkEditorInput input= (DigilibLinkEditorInput) getEditorInput();
+		String path="";
+		if (input.getType()==DigilibLinkEditorInput.INDEX_META){
+			ParseIndexMeta im;
+			try {
+				im = new ParseIndexMeta(input.getIndexMetaFile());
+			} catch (JDOMException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+				return;
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+				return;
+			} catch (CoreException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+				return;
+			}
+			try {
+				path=im.getImagePath();
+			} catch (JDOMException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+				return;
+			}
+			if (path==null)
+				return;
+		} 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);		
+		DigiNav digiNav = new DigiNav(mainComposite,SWT.BORDER,digiImageController);
+		
+		sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+		sc.setExpandHorizontal(true);
+	    sc.setExpandVertical(true);
+	    sc.layout();
+		DigilibLinkEditorObservable.INSTANCE.addObserver(this);
+		
+	}
+
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void update(Observable o, Object arg) {
+		if (DigiImage.class.isInstance(arg)){
+			mainComposite.pack();
+			sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			sc.layout();
+			//sc.pack();
+			
+		} else if (Integer.class.isInstance(arg)){
+			int b = (Integer) arg;
+			
+			Cursor waitCursor = new Cursor(mainComposite.getDisplay(),b);
+			mainComposite.setCursor(waitCursor);
+		
+			
+		}
+		
+	}
+
+
+	
+}