view src/de/mpg/mpiwg/itgroup/digilib/manipulator/extensions/Rotate.java @ 24:1a7940ac5169

minor
author dwinter
date Wed, 05 Jan 2011 14:04:58 +0100
parents 643fa1daa70c
children
line wrap: on
line source

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



import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Widget;

import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageController;
import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.dialogs.RotateDialog;

/**
 * Open  an dialog for entering the ration angle.
 * @author dwinter
 *
 */
public class Rotate extends ManipulatorExtension {

	public String iconOff="/de/mpg/mpiwg/itgroup/digilib/icons/greyskin/rotate.png";
	public String iconOn="/de/mpg/mpiwg/itgroup/digilib/icons/greyskin/rotate-on.png";
	
	
	public Rotate() {
		setIconPaths(iconOff,iconOn);
		setOffIcon();
		setKeyword("rotateHorizontal");
	}
	
	public void run(final DigiImageController dc) {
		
		//digiImage.hmir();
		//toggleIcon();
		
		Listener buttonListener = new Listener() {
			int rotateValue=0;
		      public void handleEvent(Event event) {
		        Widget wg = event.widget;
		        if (Button.class.isInstance(wg)){
		        	dc.rotate(rotateValue);
		        	Shell sh = ((Button)wg).getShell();
		        	//DigilibLinkEditorObservable.INSTANCE.imageHasChanged(dc.digiImage);
		        	setOffIcon();
		        	sh.close();
		        } else if (Text.class.isInstance(wg)) {
		        	Text txt = (Text)wg;
		        	if (txt.getText()!=null){
		        		String t = txt.getText();
		        		try{
		        		rotateValue=Integer.valueOf(t);
		        		} catch (NumberFormatException e) {
							// TODO: handle exception
						}
		        	}
		        }
		      }
		    };
		    
		RotateDialog rd = new RotateDialog(buttonListener,dc);
		rd.open();
	}
}