view src/de/mpg/mpiwg/itgroup/digilib/manipulator/extensions/ManipulatorExtension.java @ 9:e63a64652f4d

added comments
author dwinter
date Mon, 03 Jan 2011 16:53:48 +0100
parents 83c58ea33792
children
line wrap: on
line source

package de.mpg.mpiwg.itgroup.digilib.manipulator.extensions;

import java.io.InputStream;

import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;

import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageController;
import de.mpg.mpiwg.itgroup.digilib.manipulator.IDigilibImageManipulator;

/**
 * Abstract class where all Digilib Manipulator extensions shoud be derived from
 * 
 * @author dwinter
 *
 */
public abstract class ManipulatorExtension implements IDigilibImageManipulator {
	
	private String iconOff;
	private String iconOn;
	
	private String imagePath;
	private String keyword;
	

	/* (non-Javadoc)
	 * @see de.mpg.mpiwg.itgroup.digilib.manipulator.IDigilibImageManipulator#getKeyword()
	 */
	public String getKeyword() {
		return keyword;
	}

	
	/* (non-Javadoc)
	 * @see de.mpg.mpiwg.itgroup.digilib.manipulator.IDigilibImageManipulator#run(de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageController)
	 */
	public void run(DigiImageController dc) {};
	
	
	/**
	 * Set path to icon. path is path with in classpath
	 * @param ip
	 */
	public void setImagePath(String ip) {
		imagePath=ip;
		
	}
	
	/**
	 * @return path to the current icon within the class path
	 */
	public String getImagePath() {
		return imagePath;
		
	}

	/**
	 * @param keyword keyword which identifies the extension, used by 
	 *  @see {@link de.mpg.mpiwg.itgroup.digilib.manipulator.DigilibImageManipulatorProvider}.
	 *  
	 */
	public void setKeyword(String keyword) {
		this.keyword = keyword;
	}

	/* (non-Javadoc)
	 * @see de.mpg.mpiwg.itgroup.digilib.manipulator.IDigilibImageManipulator#createImage(org.eclipse.swt.widgets.Composite)
	 */
	public Image createImage(Composite parent) {
		InputStream is = getClass().getResourceAsStream(getImagePath());
		Image img = new Image(parent.getDisplay(),is);
		return img;
	}

	/**
	 *  Toggle selection state of the navigation icon
	 */
	public void toggleIcon(){
		if(imagePath.equals(iconOff)){
			setImagePath(iconOn);
		} else {
			setImagePath(iconOff);
		}
	}
	
	/**
	 * Set icon to off state.
	 */
	public void setOffIcon(){
		setImagePath(iconOff);
	}
	
	/**
	 * Setze die Pfade zu den Icons innerhalb des class path.
	 * @param iconOff
	 * @param iconOn
	 */
	public void setIconPaths(String iconOff, String iconOn) {
		this.iconOff=iconOff;
		this.iconOn=iconOn;
		
	}

}