Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.core
view src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java @ 22:7153018334a1
preference hinzugefuegt
author | dwinter |
---|---|
date | Wed, 05 Jan 2011 12:29:11 +0100 |
parents | 643fa1daa70c |
children | 1a7940ac5169 |
line wrap: on
line source
package de.mpg.mpiwg.itgroup.digilib.plugin.editors; import java.io.IOException; import java.util.Observable; import java.util.Observer; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ScrolledComposite; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IPageLayout; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; import org.eclipse.ui.views.properties.PropertySheet; import org.eclipse.ui.views.properties.PropertySheetPage; 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.indexMeta.Utils.ParseIndexMeta; /** * Displays an image with digilib an allows image manipulation on the image. * * @author dwinter * */ public class DigilibLinkEditorPart extends EditorPart implements Observer{ private Composite mainComposite; private ScrolledComposite sc; //private ISelection selection; //private List<ISelectionChangedListener> selectionChangeListener = new ArrayList<ISelectionChangedListener>(); private Object propertySheetPage; /* (non-Javadoc) * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent) */ //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); DigilibLinkEditorInput input= (DigilibLinkEditorInput) getEditorInput(); String path=""; if (input.getType()==DigilibLinkEditorInput.INDEX_META){ ParseIndexMeta im; try { im = new ParseIndexMeta(input.getFile()); } 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.NONE,digiImageController); getSite().setSelectionProvider(digiImage); digiImage.setSelection(new StructuredSelection(digiImage)); sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); sc.setExpandHorizontal(true); sc.setExpandVertical(true); sc.layout(); DigilibLinkEditorObservable.INSTANCE.addObserver(this); //setSelection( digiImage); } @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(); //refresh the property view. IWorkbenchPage page = getSite().getPage(); IViewPart view = page.findView(IPageLayout.ID_PROP_SHEET); ((PropertySheetPage)((PropertySheet)view).getCurrentPage()).refresh(); //sc.pack(); } else if (Integer.class.isInstance(arg)){ int b = (Integer) arg; Cursor waitCursor = new Cursor(mainComposite.getDisplay(),b); mainComposite.setCursor(waitCursor); } } }