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

new property view
author dwinter
date Mon, 10 Jan 2011 11:38:03 +0100
parents 1a7940ac5169
children
line wrap: on
line source

package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;

import java.util.Map;

import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.TextPropertyDescriptor;

import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter;

public class DigiImageProperties implements IPropertySource {

	//private DigiImageParameter dp;
	private DigiImage digiImage;
	//private Map<String, String> pt;

	public DigiImageProperties(DigiImage digiImage) {
		//this.dp = digiImage.getParameter();
		this.digiImage = digiImage;
		//this.pt = digiImage.getParameter().createMapFromParameters(null);
	}

	public Object getEditableValue() {
		// TODO Auto-generated method stub
		return null;
	}

	public IPropertyDescriptor[] getPropertyDescriptors() {
		
		Map<String, String> pt = digiImage.getParameter().createMapFromParameters(null);
		
		IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[pt.keySet().size()];
		int i=0;
		for (String key: pt.keySet()) {				
			// Add each property supported.
			
			//PropertyDescriptor descriptor;

			TextPropertyDescriptor des = new TextPropertyDescriptor(key, key);
			
			propertyDescriptors[i] = des;

			des.setCategory("Image parameters");
			i++;
		}
				
		// Return it.
		return propertyDescriptors;

	
	}

	public Object getPropertyValue(Object id) {
		Map<String, String> pt = digiImage.getParameter().createMapFromParameters(null);
		return pt.get(id);
	}

	public boolean isPropertySet(Object id) {
		// TODO Auto-generated method stub
		return false;
	}

	public void resetPropertyValue(Object id) {
		// TODO Auto-generated method stub

	}

	public void setPropertyValue(Object id, Object value) {
		Map<String, String> pt = digiImage.getParameter().createMapFromParameters(null);
		String oldValue = pt.get(id);
		if(oldValue.equals(value)){
			return;
		}
		

		pt.put((String)id, (String)value);
		digiImage.setParameter(new DigiImageParameter(pt));
		digiImage.redraw();
		
	}
	
	public void setPropertyValueNoDraw(Object id, Object value) {
		
		Map<String, String> pt = digiImage.getParameter().createMapFromParameters(null);
		String oldValue = pt.get(id);
		if(oldValue.equals(value)){
			return;
		}
		

		pt.put((String)id, (String)value);
		digiImage.setParameter(new DigiImageParameter(pt));
	}

}