Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.core
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); + + + } + + } + + + +}