/**
Khalid
*/
package org.sikuli.slides.core;

import java.io.File;
import org.sikuli.slides.media.Sound;
import org.sikuli.slides.screenshots.Screenshot;
import org.sikuli.slides.screenshots.SlideTargetRegion;
import org.sikuli.slides.shapes.SlideShape;

/**
 * A slide component is an object having the necessary components of the
 *  slide such as media files and shapes.
 * @author Khalid
 *
 */
public class SlideComponent {
	private File imageTargetFile;
	private SlideShape slideShape;
	private Screenshot screenshot;
	private SlideTargetRegion slideTargetRegion;
	private Sound sound;
	private String slideNote;
	
	public SlideComponent(){
		
	}
	
	public SlideComponent(File imageTargetFile, SlideShape slideShape, Screenshot screenshot, 
			SlideTargetRegion slideTargetRegion, Sound sound,String slideNote){
		this.setTargetFile(imageTargetFile);
		this.setSlideShape(slideShape);
		this.setScreenshot(screenshot);
		this.setSlideTargetRegion(slideTargetRegion);
		this.setSound(sound);
		this.setSlideNote(slideNote);
	}
	
	public File getTargetFile() {
		return imageTargetFile;
	}
	
	public void setTargetFile(File imageTargetFile) {
		this.imageTargetFile = imageTargetFile;
	}
	
	public SlideShape getSlideShape() {
		return slideShape;
	}

	public void setSlideShape(SlideShape slideShape) {
		this.slideShape = slideShape;
	}

	public Screenshot getScreenshot() {
		return screenshot;
	}

	public void setScreenshot(Screenshot screenshot) {
		this.screenshot = screenshot;
	}

	public SlideTargetRegion getSlideTargetRegion() {
		return slideTargetRegion;
	}

	public void setSlideTargetRegion(SlideTargetRegion slideTargetRegion) {
		this.slideTargetRegion = slideTargetRegion;
	}

	public Sound getSound() {
		return sound;
	}

	public void setSound(Sound sound) {
		this.sound = sound;
	}
	
	public String getSlideNote() {
		return slideNote;
	}

	public void setSlideNote(String slideNote) {
		this.slideNote = slideNote;
	}
	
	@Override
	public String toString(){
		return "Slide Component: "+slideShape+"\n"+screenshot+"\n"+
				slideTargetRegion+"\n"+sound;
	}
}

@@ -596,31 +596,36 @@
 rivate S
-tring
+lideShape
  slide
-Note
+Label
 ;%0A%09%0A%09pub
@@ -799,31 +799,36 @@
  sound,S
-tring
+lideShape
  slide
-Note
+Label
 )%7B%0A%09%09thi
@@ -1020,22 +1020,24 @@
 lide
-Note
+Label
 (slide
-Note
+Label
 );%0A%09
@@ -1826,21 +1826,25 @@
 public S
-tring
+lideShape
  getSlid
@@ -1844,20 +1844,21 @@
 getSlide
-Note
+Label
 () %7B%0A%09%09r
@@ -1864,28 +1864,29 @@
 return slide
-Note
+Label
 ;%0A%09%7D%0A%0A%09publi
@@ -1904,29 +1904,35 @@
 lide
-Note(String
+Label(SlideShape
  slide
-Note
+Label
 ) %7B%0A
@@ -1947,20 +1947,21 @@
 lide
-Note
+Label
  = slide
 Note
@@ -1960,12 +1960,13 @@
 lide
-Note
+Label
 ;%0A%09%7D
@@ -2096,19 +2096,45 @@
 n+%22%5Cn%22+sound
++%22%5Cn%22+%22label: %22+slideLabel
 ;%0A%09%7D%0A%7D%0A

use textBox shape to display label on the screen instead of using the slide note.