diff src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImagePropertySection.java @ 25:6e7bb3467531

new property view
author dwinter
date Mon, 10 Jan 2011 11:38:03 +0100
parents
children 183c3e96f6c3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImagePropertySection.java	Mon Jan 10 11:38:03 2011 +0100
@@ -0,0 +1,128 @@
+package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.jface.util.Assert;
+
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter;
+
+public class DigiImagePropertySection extends AbstractPropertySection {
+		  
+		private DigiImage digiImage;
+		private Map<String,Text> texts = new HashMap<String,Text>();
+		
+		
+		private Map<String,ModifyListener> listeners = new HashMap<String,ModifyListener>();
+		private Button button;
+		
+		
+		
+	        
+	      
+	        
+	        public void createControls(Composite parent,
+	                TabbedPropertySheetPage aTabbedPropertySheetPage) {
+	            super.createControls(parent, aTabbedPropertySheetPage);
+	     
+	            DigiImageParameter dp = new DigiImageParameter("");
+	            GridLayout gridLayout = new GridLayout(1,false);
+	            parent.setLayout(gridLayout);
+	            for (String key: dp.createMapFromParameters(null).keySet()){
+	            	
+	                Composite composite = getWidgetFactory()
+	                .createFlatFormComposite(parent);
+	            FormData data;
+	    
+	            Text t = getWidgetFactory().createText(composite, "");
+	            texts.put(key, t);
+	            data = new FormData();
+	            data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
+	            data.right = new FormAttachment(100, 0);
+	            data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+	            t.setLayoutData(data);
+	            
+	          
+	            CLabel labelLabel = getWidgetFactory()
+	                .createCLabel(composite, key); //$NON-NLS-1$
+	            data = new FormData();
+	            data.left = new FormAttachment(0, 0);
+	            data.right = new FormAttachment(t,
+	                -ITabbedPropertyConstants.HSPACE);
+	            data.top = new FormAttachment(t, 0, SWT.CENTER);
+	            labelLabel.setLayoutData(data);
+	        }
+	            Composite composite = getWidgetFactory()
+                .createFlatFormComposite(parent);
+	            button = getWidgetFactory().createButton(composite, "redraw", SWT.None);
+	            
+	        }
+	    
+	        public void setInput(IWorkbenchPart part, ISelection selection) {
+	            super.setInput(part, selection);
+	
+	            Assert.isTrue(selection instanceof IStructuredSelection);
+	            Object input = ((IStructuredSelection) selection).getFirstElement();
+	            Assert.isTrue(input instanceof DigiImage);
+	            this.digiImage = (DigiImage) input;
+	            
+	            Map<String, String> pms = digiImage.getParameter().createMapFromParameters(null);
+	            
+	            for(String key: digiImage.getParameter().createMapFromParameters(null).keySet()){
+	            	
+	            
+	            ModifyListener listener = new PropertyListener(key,digiImage); 
+	            
+	            texts.get(key).addModifyListener(listener);
+	            listeners.put(key, listener);
+	            }
+	            button.addMouseListener(new RedrawButtonListener(digiImage,texts));
+	    
+	        }
+	        
+	        public void refresh() {
+	        	
+	        	 DigiImageProperties properties = (DigiImageProperties) digiImage
+	                .getAdapter(IPropertySource.class);
+	        
+	        	for(String key: texts.keySet()){
+	        		
+	        	Text labelText=texts.get(key);
+	            labelText.removeModifyListener(listeners.get(key));
+	           
+	            labelText.setText((String)properties.getPropertyValue(key));
+	            labelText.addModifyListener(listeners.get(key));
+	           
+	        }
+	        	super.refresh();
+	        }
+
+	        @Override
+	        public void aboutToBeShown() {
+	        	System.out.println("about to be shown");
+	        
+	        	
+	        super.aboutToBeShown();
+	        }
+}