diff src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java @ 20:2f47c136b8a6

added property view
author dwinter
date Tue, 04 Jan 2011 16:35:41 +0100
parents e63a64652f4d
children 643fa1daa70c
line wrap: on
line diff
--- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Tue Jan 04 10:31:53 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java	Tue Jan 04 16:35:41 2011 +0100
@@ -5,13 +5,21 @@
 
 import java.io.IOException;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Observable;
 import java.util.Observer;
 
+import org.apache.axis2.databinding.types.soapencoding.Array;
 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.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.graphics.Cursor;
@@ -19,8 +27,15 @@
 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.IWorkbenchPartSite;
 import org.eclipse.ui.PartInitException;
 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.jdom.JDOMException;
 
 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
@@ -35,10 +50,13 @@
  * @author dwinter
  *
  */
-public class DigilibLinkEditorPart extends EditorPart implements IResourceChangeListener, Observer{
+public class DigilibLinkEditorPart extends EditorPart implements IResourceChangeListener,Observer{
 
 	private Composite mainComposite;
 	private ScrolledComposite sc;
+	//private ISelection selection;
+	//private List<ISelectionChangedListener> selectionChangeListener = new ArrayList<ISelectionChangedListener>();
+	private Object propertySheetPage;
 
 	public void resourceChanged(IResourceChangeEvent event) {
 		// TODO Auto-generated method stub
@@ -135,12 +153,16 @@
 		//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
@@ -154,8 +176,16 @@
 			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;
 			
@@ -165,7 +195,34 @@
 			
 		}
 		
+	
 	}
+    	
+//	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+//		selectionChangeListener.add(listener);
+//		
+//	}
+//
+//	public ISelection getSelection() {
+//		// TODO Auto-generated method stub
+//		return selection;
+//	}
+//
+//	public void removeSelectionChangedListener(
+//			ISelectionChangedListener listener) {
+//		selectionChangeListener.remove(listener);
+//		
+//	}
+//
+//	public void setSelection(ISelection selection) {
+//		this.selection=selection;
+//		for  (ISelectionChangedListener sl: selectionChangeListener){
+//		
+//			SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
+//			sl.selectionChanged(event);
+//		}
+//		
+//	}