diff src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java @ 25:6e7bb3467531

new property view
author dwinter
date Mon, 10 Jan 2011 11:38:03 +0100
parents 1a7940ac5169
children 183c3e96f6c3
line wrap: on
line diff
--- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Wed Jan 05 14:04:58 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Mon Jan 10 11:38:03 2011 +0100
@@ -16,18 +16,24 @@
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPartService;
 import org.eclipse.ui.IViewPart;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.internal.WWinPartService;
 import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.PropertySheet;
 import org.eclipse.ui.views.properties.PropertySheetPage;
+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.digilib.plugin.Activator;
 import de.mpg.mpiwg.itgroup.indexMeta.Utils.ParseIndexMeta;
 
 /**
@@ -36,10 +42,12 @@
  * @author dwinter
  *
  */
-public class DigilibLinkEditorPart extends EditorPart implements Observer{
+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
@@ -62,8 +70,7 @@
 
 	@Override
 	public boolean isDirty() {
-		// TODO Auto-generated method stub
-		return false;
+		return isDirty;
 	}
 
 	@Override
@@ -131,6 +138,7 @@
 		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));
@@ -153,15 +161,15 @@
 			mainComposite.pack();
 			sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 			sc.layout();
-			
-			
-			//refresh the property view.
-			IWorkbenchPage page = getSite().getPage();
+			isDirty=true;
+			firePropertyChange(PROP_DIRTY);
 	
-			IViewPart view = page.findView(IPageLayout.ID_PROP_SHEET);
+			//Object[] ls = getListeners();
+			//System.out.println(ls);
 			
-			((PropertySheetPage)((PropertySheet)view).getCurrentPage()).refresh();
-			//sc.pack();
+			if  (tp!=null)
+				tp.refresh();
+			
 		
 		} else if (Integer.class.isInstance(arg)){
 			int b = (Integer) arg;
@@ -173,7 +181,19 @@
 		
 	
 	}
+
+	public String getContributorId() {
+		String contribId = getSite().getId();
+		return contribId;
+	}
     	
-
+	 public Object getAdapter(Class adapter) {
+	        if (adapter == IPropertySheetPage.class){
+	           
+	            tp =  new TabbedPropertySheetPage(this);
+	            return tp;
+	        }
+	        return super.getAdapter(adapter);
+	    }
 	
 }