Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.plugin
view src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java @ 26:183c3e96f6c3
cleaned code
author | dwinter |
---|---|
date | Mon, 10 Jan 2011 12:01:25 +0100 |
parents | 6e7bb3467531 |
children |
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.PartInitException; import org.eclipse.ui.part.EditorPart; import org.eclipse.ui.views.properties.IPropertySheetPage; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; 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, ITabbedPropertySheetPageContributor{ private Composite mainComposite; private ScrolledComposite sc; private boolean isDirty; private TabbedPropertySheetPage tp=null; @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() { return isDirty; } @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); new DigiNav(mainComposite,SWT.NONE,digiImageController); getSite().setSelectionProvider(digiImage); //StructuredSelection strucSel = new StructuredSelection(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 } /* (non-Javadoc) * @see java.util.Observer#update(java.util.Observable, java.lang.Object) * Called from the observable */ public void update(Observable o, Object arg) { /* * If the argument ist digiImage then rerender the editor and update the properties */ if (DigiImage.class.isInstance(arg)){ mainComposite.pack(); sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); sc.layout(); isDirty=true; firePropertyChange(PROP_DIRTY); //Object[] ls = getListeners(); //System.out.println(ls); if (tp!=null) tp.refresh(); } else if (Integer.class.isInstance(arg)){ //if it is in integer then the argument is the status of the cursor int b = (Integer) arg; Cursor waitCursor = new Cursor(mainComposite.getDisplay(),b); mainComposite.setCursor(waitCursor); } } /* (non-Javadoc) * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId() */ public String getContributorId() { String contribId = getSite().getId(); return contribId; } /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class) */ @SuppressWarnings("rawtypes") public Object getAdapter(Class adapter) { if (adapter == IPropertySheetPage.class){ tp = new TabbedPropertySheetPage(this); return tp; } return super.getAdapter(adapter); } }