[309606] Develop Script Editor (cleanup events)
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/AudioComposite.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/AudioComposite.java
index d4932d7..9bd8393 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/AudioComposite.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/AudioComposite.java
@@ -21,11 +21,9 @@
 import org.eclipse.actf.ai.scripteditor.data.DataUtil;
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEventListener;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEventListener;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEvent;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEventListener;
+import org.eclipse.actf.ai.scripteditor.util.WebBrowserFactory;
 import org.eclipse.actf.ai.ui.scripteditor.views.IUNIT;
 import org.eclipse.actf.ai.ui.scripteditor.views.TimeLineView;
 import org.eclipse.actf.examples.scripteditor.Activator;
@@ -49,7 +47,7 @@
 import org.eclipse.swt.widgets.Label;
 
 public class AudioComposite extends Composite implements IUNIT,
-		SyncTimeEventListener, LabelEventListener, ScriptEventListener {
+		SyncTimeEventListener, ScriptDataEventListener {
 
 	static private AudioComposite ownInst = null;
 
@@ -85,8 +83,6 @@
 
 	protected static EventManager eventManager = EventManager.getInstance();
 	protected ScriptDataManager scriptManager = ScriptDataManager.getInstance();
-	protected DataEventManager dataEventManager = DataEventManager
-			.getInstance();
 
 	protected Label selectLabel = null;
 
@@ -113,12 +109,11 @@
 		instParentView = TimeLineView.getInstance();
 
 		eventManager.addSyncTimeEventListener(ownInst);
-		dataEventManager.addLabelEventListener(ownInst);
+		scriptManager.addScriptDataEventListener(ownInst);
 		parent.addDisposeListener(new DisposeListener() {
 			public void widgetDisposed(DisposeEvent e) {
-				// TODO other components
 				eventManager.removeSyncTimeEventListener(ownInst);
-				dataEventManager.removeLabelEventListener(ownInst);
+				scriptManager.removeScriptDataEventListener(ownInst);
 			}
 		});
 
@@ -360,10 +355,11 @@
 		newAudio.setImage(button1d.createImage());
 		newAudio.setForeground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
 		guideMarkMap.put(data, newAudio);
-		final IScriptData labelData = data;
 		newAudio.addMouseListener(new MouseAdapter() {
 			public void mouseUp(MouseEvent e) {
-				scriptManager.fireSelectDataEvent(labelData, this);
+				IScriptData data = (IScriptData) e.widget.getData();
+				WebBrowserFactory.getInstance().setCurrentPosition(data.getStartTime());
+				scriptManager.fireDataSelectionEvent(data, ownInst);
 			}
 		});
 		// for TEST
@@ -383,7 +379,7 @@
 		// for TEST
 
 	}
-
+	
 	private void createLabel(IScriptData data, Color col, int lineNo) {
 		// Calculate target Label position & size
 		int eX = 0;
@@ -922,7 +918,10 @@
 					&& (e.button == 1) && currentDragStatus) {
 				if (e.widget instanceof Label) {
 					selectLabel = (Label) e.widget;
-					scriptManager.fireSelectDataEvent(data, this);
+					
+					WebBrowserFactory.getInstance().setCurrentPosition(data.getStartTime());
+					
+					scriptManager.fireDataSelectionEvent(data, ownInst);
 				}
 				currentDragStatus = false;
 			} else if (!execDataConvMouseDragged && statusMouseDragged
@@ -977,27 +976,6 @@
 		}
 	}
 
-	public void handleLabelEvent(LabelEvent e) {
-		switch (e.getEventType()) {
-		case LabelEvent.PUT_ALL_LABEL:
-			clearLabel();
-			createAllLabel(IScriptData.TYPE_AUDIO);
-			break;
-		case LabelEvent.PUT_LABEL:
-			if (e.getData().getType() != IScriptData.TYPE_AUDIO) {
-				return;
-			}
-			putLabel(e.getData(), MODE_PUT);
-			break;
-		case LabelEvent.DELETE_LABEL:
-			if (e.getData().getType() != IScriptData.TYPE_AUDIO) {
-				return;
-			}
-			deleteAudioLabel(e.getData());
-			break;
-		}
-	}
-
 	public void handleSyncTimeEvent(SyncTimeEvent e) {
 		// Synchronize TimeLine view
 		switch (e.getEventType()) {
@@ -1012,20 +990,38 @@
 	}
 
 	@Override
-	public void handleScriptEvent(ScriptEvent e) {
+	public void handleScriptEvent(ScriptDataEvent e) {
 		switch (e.getEventType()) {
-		case ScriptEvent.CLEAR_DATA:
+		case ScriptDataEvent.CLEAR:
 			clearLabel();
 			break;
-		case ScriptEvent.ADD_DATA:
+		case ScriptDataEvent.ADD:
+			if (e.getData().getType() != IScriptData.TYPE_AUDIO) {
+				return;
+			}
+			putLabel(e.getData(), MODE_PUT);
 			break;
-		case ScriptEvent.ADD_MULTIPUL_DATA:
+		case ScriptDataEvent.MULTIPLE_ADD:
+			// TODO check size of e.getDataCollection()
+			clearLabel();
+			createAllLabel(IScriptData.TYPE_AUDIO);
 			break;
-		case ScriptEvent.DELETE_DATA:
+		case ScriptDataEvent.DELETE:
+			if (e.getData().getType() != IScriptData.TYPE_AUDIO) {
+				return;
+			}
+			deleteAudioLabel(e.getData());
 			break;
-		case ScriptEvent.UPDATE_DATA:
+		case ScriptDataEvent.UPDATE:
+			if (e.getData().getType() != IScriptData.TYPE_AUDIO) {
+				return;
+			}
+			putLabel(e.getData(), MODE_PUT); // TODO updatemode
 			break;
-		case ScriptEvent.UPDATE_MULTIPUL_DATA:
+		case ScriptDataEvent.MULTIPLE_UPDATE:
+			// TODO check size of e.getDataCollection()
+			clearLabel();
+			createAllLabel(IScriptData.TYPE_AUDIO);
 			break;
 		}
 	}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/CaptionComposite.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/CaptionComposite.java
index 023edcf..46a721c 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/CaptionComposite.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/CaptionComposite.java
@@ -21,11 +21,8 @@
 import org.eclipse.actf.ai.scripteditor.data.DataUtil;
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEventListener;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEventListener;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEvent;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEventListener;
 import org.eclipse.actf.ai.ui.scripteditor.views.IUNIT;
 import org.eclipse.actf.ai.ui.scripteditor.views.TimeLineView;
 import org.eclipse.actf.examples.scripteditor.Activator;
@@ -49,7 +46,7 @@
 import org.eclipse.swt.widgets.Label;
 
 public class CaptionComposite extends Composite implements IUNIT,
-		SyncTimeEventListener, LabelEventListener, ScriptEventListener {
+		SyncTimeEventListener, ScriptDataEventListener {
 
 	// instance of own class
 	static private CaptionComposite ownInst = null;
@@ -81,7 +78,6 @@
 	private boolean currentDragStatus = false;
 
 	private static EventManager eventManager = null;
-	private static DataEventManager dataEventManager = null;
 	protected ScriptDataManager scriptManager = null;
 
 	protected Label selectLabel = null;
@@ -110,12 +106,11 @@
 		scriptManager = ScriptDataManager.getInstance();
 		eventManager = EventManager.getInstance();
 		eventManager.addSyncTimeEventListener(ownInst);
-		dataEventManager = DataEventManager.getInstance();
-		dataEventManager.addLabelEventListener(ownInst);
+		scriptManager.addScriptDataEventListener(ownInst);
 		parent.addDisposeListener(new DisposeListener() {
 			public void widgetDisposed(DisposeEvent e) {
 				eventManager.removeSyncTimeEventListener(ownInst);
-				dataEventManager.removeLabelEventListener(ownInst);
+				scriptManager.removeScriptDataEventListener(ownInst);
 			}
 		});
 
@@ -882,7 +877,7 @@
 
 				if (e.widget instanceof Label) {
 					selectLabel = (Label) e.widget;
-					scriptManager.fireSelectDataEvent(data, this);
+					scriptManager.fireDataSelectionEvent(data, this);
 				}
 				currentDragStatus = false;
 			} else if (!execDataConvMouseDragged && statusMouseDragged
@@ -992,42 +987,39 @@
 		}
 	}
 
-	public void handleLabelEvent(LabelEvent e) {
+	@Override
+	public void handleScriptEvent(ScriptDataEvent e) {
 		switch (e.getEventType()) {
-		case LabelEvent.PUT_ALL_LABEL:
+		case ScriptDataEvent.CLEAR:
 			clearLabel();
-			createAllLabel(IScriptData.TYPE_CAPTION);
 			break;
-		case LabelEvent.PUT_LABEL:
+		case ScriptDataEvent.ADD:
 			if (e.getData().getType() != IScriptData.TYPE_CAPTION) {
 				return;
 			}
 			putLabel(e.getData());
 			break;
-		case LabelEvent.DELETE_LABEL:
+		case ScriptDataEvent.MULTIPLE_ADD:
+			//TODO check size of e.getDataCollection()			
+			clearLabel();
+			createAllLabel(IScriptData.TYPE_CAPTION);
+			break;
+		case ScriptDataEvent.DELETE:
 			if (e.getData().getType() != IScriptData.TYPE_CAPTION) {
 				return;
 			}
 			deleteLabel(e.getData());
 			break;
-		}
-	}
-
-	@Override
-	public void handleScriptEvent(ScriptEvent e) {
-		switch (e.getEventType()) {
-		case ScriptEvent.CLEAR_DATA:
+		case ScriptDataEvent.UPDATE:
+			if (e.getData().getType() != IScriptData.TYPE_CAPTION) {
+				return;
+			}
+			putLabel(e.getData()); //TODO update mode
+			break;
+		case ScriptDataEvent.MULTIPLE_UPDATE:
+			//TODO check size of e.getDataCollection()			
 			clearLabel();
-			break;
-		case ScriptEvent.ADD_DATA:
-			break;
-		case ScriptEvent.ADD_MULTIPUL_DATA:
-			break;
-		case ScriptEvent.DELETE_DATA:
-			break;
-		case ScriptEvent.UPDATE_DATA:
-			break;
-		case ScriptEvent.UPDATE_MULTIPUL_DATA:
+			createAllLabel(IScriptData.TYPE_CAPTION);
 			break;
 		}
 	}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java
index de014f3..a11eb14 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/EditPanelTab.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.actf.ai.internal.ui.scripteditor;
 
-import java.util.List;
+import java.util.Collection;
 import java.util.Locale;
 
 import org.eclipse.actf.ai.internal.ui.scripteditor.event.EventManager;
@@ -20,8 +20,6 @@
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataFactory;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
 import org.eclipse.actf.ai.scripteditor.util.TimeFormatUtil;
 import org.eclipse.actf.ai.scripteditor.util.VoicePlayerFactory;
 import org.eclipse.actf.ai.scripteditor.util.XMLFileMessageBox;
@@ -59,7 +57,6 @@
 	private static EditPanelTab ownInst = null;
 
 	private static EventManager eventManager = null;
-	private static DataEventManager dataEventManager = null;
 
 	private VoicePlayerFactory voice = VoicePlayerFactory.getInstance();
 
@@ -134,9 +131,9 @@
 	private Text textStartTimeMS;
 
 	private IScriptData currentData = null;
-	private List<IScriptData> currentListData = null;
+	private Collection<IScriptData> currentListData = null;
 
-	public void setCurrentListData(List<IScriptData> currentListData) {
+	public void setCurrentListData(Collection<IScriptData> currentListData) {
 		this.currentListData = currentListData;
 	}
 
@@ -149,7 +146,6 @@
 	public EditPanelTab(CTabFolder parent) {
 		ownInst = this;
 		eventManager = EventManager.getInstance();
-		dataEventManager = DataEventManager.getInstance();
 		initTab(parent);
 
 		scriptManager = ScriptDataManager.getInstance();
@@ -157,10 +153,6 @@
 		// TODO check SyncTimeEventListener
 	}
 
-	static public EditPanelTab getInstance() {
-		return (ownInst);
-	}
-
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -982,8 +974,6 @@
 
 				if (update_mode_flg) {
 					// for change order, delete and add data.
-					dataEventManager.fireLabelEvent(new LabelEvent(
-							LabelEvent.DELETE_LABEL, currentData, this));
 					scriptManager.remove(currentData);
 				}
 
@@ -1006,8 +996,6 @@
 				currentData.setMark(NO_MARK);
 				currentData.setDataCommit(true);
 
-				dataEventManager.fireLabelEvent(new LabelEvent(
-						LabelEvent.PUT_LABEL, currentData, this));
 				scriptManager.add(currentData);
 
 				DataUtil.debug();
@@ -1032,22 +1020,14 @@
 		 */
 		private void updateMultiScripts() {
 			for (IScriptData data : currentListData) {
-				dataEventManager.fireLabelEvent(new LabelEvent(
-						LabelEvent.DELETE_LABEL, data, this));
-
 				data.setExtended(chkBoxExtended.getSelection());
 				data.setVgGender(rButtonMale.getSelection() ? true : false);
 				data.setLang(currentDescLang);
 				data.setVgPlaySpeed(scaleVoiceSpeed.getSelection());
 				data.setVgPitch(scaleVoicePitch.getSelection());
 				data.setVgVolume(scaleVoiceVolume.getSelection());
-
-				// scriptManager.fireGuideListEvent(new ScriptEvent(
-				// ScriptEvent.UPDATE_DATA, data, this));
-				dataEventManager.fireLabelEvent(new LabelEvent(
-						LabelEvent.PUT_LABEL, data, this));
 			}
-			scriptManager.fireUpdateMultipleDataEvent(currentListData, this);
+			scriptManager.fireMultipleDataUpdateEvent(currentListData, this);
 
 			endSelectMultiItems();
 			initDispEditPanel();
@@ -1144,8 +1124,6 @@
 		 */
 		private void deleteSingleScript() {
 
-			dataEventManager.fireLabelEvent(new LabelEvent(
-					LabelEvent.DELETE_LABEL, currentData, this));
 			scriptManager.remove(currentData);
 
 			initDispEditPanel();
@@ -1163,10 +1141,8 @@
 		private void deleteMultiScripts() {
 			for (IScriptData data : currentListData) {
 				scriptManager.remove(data);
-				dataEventManager.fireLabelEvent(new LabelEvent(
-						LabelEvent.DELETE_LABEL, data, this));
 			}
-			scriptManager.fireDeselectDataEvent(this);
+			scriptManager.fireDataDeselectionEvent(this);
 
 			initDispEditPanel();
 
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/SelectWAVFileTab.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/SelectWAVFileTab.java
index 3086487..5967143 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/SelectWAVFileTab.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/SelectWAVFileTab.java
@@ -16,8 +16,6 @@
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataFactory;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
 import org.eclipse.actf.ai.scripteditor.util.SoundMixer;
 import org.eclipse.actf.ai.scripteditor.util.TempFileUtil;
 import org.eclipse.actf.ai.scripteditor.util.TimeFormatUtil;
@@ -82,7 +80,6 @@
 	// Parameter for multiple selection mode
 	private boolean current_tab_mode = true;
 
-	private DataEventManager dataEventManager = null;
 	private ScriptDataManager scriptManager = ScriptDataManager.getInstance();
 
 	private Button buttonWavOpen;
@@ -93,7 +90,6 @@
 	 * Constructor
 	 */
 	public SelectWAVFileTab(CTabFolder parent) {
-		dataEventManager = DataEventManager.getInstance();
 		// Create own instance of Composite
 		ownComposite = new Composite(parent, SWT.NONE);
 
@@ -566,14 +562,8 @@
 				if (currentData != null) {
 
 					scriptManager.remove(currentData);
-					dataEventManager.fireLabelEvent(new LabelEvent(
-							LabelEvent.DELETE_LABEL, currentData, this));
-
 					currentData = appendScriptData(currentData);
-
 					scriptManager.add(currentData);
-					dataEventManager.fireLabelEvent(new LabelEvent(
-							LabelEvent.PUT_LABEL, currentData, this));
 
 					// TODO ???
 					// SetUP status to Edit start mode
@@ -622,21 +612,12 @@
 
 				if (!deleteAll) {
 					scriptManager.remove(currentData);
-					dataEventManager.fireLabelEvent(new LabelEvent(
-							LabelEvent.DELETE_LABEL, currentData, this));
-
 					currentData.setWavURI(null);
 					currentData.setWavEnabled(false);
 
 					scriptManager.add(currentData);
-
-					dataEventManager.fireLabelEvent(new LabelEvent(
-							LabelEvent.PUT_LABEL, currentData, this));
-
 				} else {
 					scriptManager.remove(currentData);
-					dataEventManager.fireLabelEvent(new LabelEvent(
-							LabelEvent.DELETE_LABEL, currentData, this));
 				}
 
 				initDescriptionData();
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/guidelist/GuideListTree.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/guidelist/GuideListTree.java
index 4e79a35..01412af 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/guidelist/GuideListTree.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/internal/ui/scripteditor/guidelist/GuideListTree.java
@@ -18,16 +18,12 @@
 import org.eclipse.actf.ai.internal.ui.scripteditor.Validator;
 import org.eclipse.actf.ai.internal.ui.scripteditor.VolumeLevelCanvas;
 import org.eclipse.actf.ai.internal.ui.scripteditor.WavInputDialog;
-import org.eclipse.actf.ai.internal.ui.scripteditor.event.EventManager;
-import org.eclipse.actf.ai.internal.ui.scripteditor.event.SyncTimeEvent;
 import org.eclipse.actf.ai.scripteditor.data.DataUtil;
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataFactory;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEventListener;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEvent;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEventListener;
 import org.eclipse.actf.ai.scripteditor.util.VoicePlayerFactory;
 import org.eclipse.actf.ai.scripteditor.util.WebBrowserFactory;
 import org.eclipse.actf.ai.scripteditor.util.XMLFileMessageBox;
@@ -70,7 +66,7 @@
 /**
  * 
  */
-public class GuideListTree implements IUNIT, ScriptEventListener {
+public class GuideListTree implements IUNIT, ScriptDataEventListener {
 
 	private static GuideListTree ownInst = null;
 
@@ -99,26 +95,25 @@
 
 	boolean headerSelectFlag = false;
 
-	private EventManager eventManager = EventManager.getInstance();
-	private DataEventManager dataEventManager = DataEventManager.getInstance();
+	// private EventManager eventManager = EventManager.getInstance();
 
 	private ScriptSorter sorter = new ScriptSorter();
 
-	private class ColumnSelectionAdapter extends SelectionAdapter {
-		private int column;
-
-		public ColumnSelectionAdapter(int column) {
-			this.column = column;
-		}
-
-		public void widgetSelected(SelectionEvent arg0) {
-			treeViewer.setSelection(null);
-			if (sorter instanceof ScriptSorter) {
-				((ScriptSorter) sorter).setCurColumn(column);
-			}
-			treeViewer.refresh();
-		}
-	}
+	// private class ColumnSelectionAdapter extends SelectionAdapter {
+	// private int column;
+	//
+	// public ColumnSelectionAdapter(int column) {
+	// this.column = column;
+	// }
+	//
+	// public void widgetSelected(SelectionEvent arg0) {
+	// treeViewer.setSelection(null);
+	// if (sorter instanceof ScriptSorter) {
+	// ((ScriptSorter) sorter).setCurColumn(column);
+	// }
+	// treeViewer.refresh();
+	// }
+	// }
 
 	/**
 	 * Constructor
@@ -134,11 +129,10 @@
 		treeViewer.setComparator(new GuildListComparator());
 		treeViewer.setSorter(sorter);
 
-		scriptManager.addGuideListEventListener(ownInst);
+		scriptManager.addScriptDataEventListener(ownInst);
 		parentComposite.addDisposeListener(new DisposeListener() {
 			public void widgetDisposed(DisposeEvent e) {
-				// TODO other components
-				scriptManager.removeGuideListEventListener(ownInst);
+				scriptManager.removeScriptDataEventListener(ownInst);
 			}
 		});
 		initTable();
@@ -149,22 +143,6 @@
 		instTree.setSortDirection(style);
 	}
 
-	private void selectGuideLineItemProcess(IScriptData paramData) {
-		IScriptData data = paramData;
-
-		TimeLineView timeLineView = TimeLineView.getInstance();
-		if (timeLineView != null
-				&& timeLineView.getStatusTimeLine() == TL_STAT_PAUSE) {
-			// Synchronize all TimeLine
-			eventManager.fireSyncTimeEvent(new SyncTimeEvent(
-					SyncTimeEvent.ADJUST_TIME_LINE, data.getStartTime(), this));
-		}
-		scriptManager.fireSelectDataEvent(data, this);
-
-		// Initialize sampling duration.
-		VolumeLevelCanvas.getInstance().clearSamplingLengthVolumeLevel();
-	}
-
 	private void initTable() {
 
 		FormData scriptTreeData = new FormData();
@@ -259,255 +237,232 @@
 		// Speaker
 		characterComboCell = new ComboBoxCellEditorEx(instTree, scriptManager
 				.getCharacterList().toArray(new String[0]));
-		((CCombo) characterComboCell.getControl())
-				.addFocusListener(new FocusAdapter() {
-					String beforeCharacter = "";
-					IScriptData data = null;
+		characterComboCell.getControl().addFocusListener(new FocusAdapter() {
+			String beforeCharacter = "";
+			IScriptData data = null;
 
-					public void focusGained(FocusEvent e) {
-						TreeSelection selection = (TreeSelection) treeViewer
-								.getSelection();
-						data = (IScriptData) selection.getFirstElement();
+			public void focusGained(FocusEvent e) {
+				TreeSelection selection = (TreeSelection) treeViewer
+						.getSelection();
+				data = (IScriptData) selection.getFirstElement();
 
-						beforeCharacter = ((CCombo) (e.widget)).getText();
-						selectGuideLineItemProcess(data);
-						if (data.getType() == IScriptData.TYPE_AUDIO) {
-							Display.getCurrent().asyncExec(new Runnable() {
-								public void run() {
-									characterComboCell.deactivate();
-								}
-							});
-							return;
+				beforeCharacter = ((CCombo) (e.widget)).getText();
+				if (data.getType() == IScriptData.TYPE_AUDIO) {
+					Display.getCurrent().asyncExec(new Runnable() {
+						public void run() {
+							characterComboCell.deactivate();
 						}
-					}
+					});
+					return;
+				}
+			}
 
-					public void focusLost(FocusEvent e) {
-						String character = ((CCombo) (e.widget)).getText();
+			public void focusLost(FocusEvent e) {
+				String character = ((CCombo) (e.widget)).getText();
 
-						if (beforeCharacter.equals(character)) {
-							return;
-						}
-
-						data.setCharacter(character);
-						data.setDataCommit(true);
-						scriptManager.fireUpdateDataEvent(data, this);
-					}
-				});
+				if (beforeCharacter.equals(character)) {
+					return;
+				}
+				data.setCharacter(character);
+				data.setDataCommit(true);
+				scriptManager.fireDataUpdateEvent(data, this);
+			}
+		});
 
 		// Scenario
 		final TextCellEditorEx scenarioTextCell = new TextCellEditorEx(instTree);
-		((Text) scenarioTextCell.getControl())
-				.addFocusListener(new FocusAdapter() {
-					String beforeScenario = "";
-					IScriptData data = null;
+		scenarioTextCell.getControl().addFocusListener(new FocusAdapter() {
+			String beforeScenario = "";
+			IScriptData data = null;
 
-					public void focusGained(FocusEvent e) {
-						TreeSelection selection = (TreeSelection) treeViewer
-								.getSelection();
-						data = (IScriptData) selection.getFirstElement();
-						selectGuideLineItemProcess(data);
+			public void focusGained(FocusEvent e) {
+				TreeSelection selection = (TreeSelection) treeViewer
+						.getSelection();
+				data = (IScriptData) selection.getFirstElement();
 
-						if (data.getType() != IScriptData.TYPE_SCENARIO) {
-							Display.getCurrent().asyncExec(new Runnable() {
-								public void run() {
-									scenarioTextCell.deactivate();
-								}
-							});
-							return;
+				if (data.getType() != IScriptData.TYPE_SCENARIO) {
+					Display.getCurrent().asyncExec(new Runnable() {
+						public void run() {
+							scenarioTextCell.deactivate();
 						}
-						beforeScenario = ((Text) (e.widget)).getText();
-					}
+					});
+					return;
+				}
+				beforeScenario = ((Text) (e.widget)).getText();
+			}
 
-					public void focusLost(FocusEvent e) {
-						String scenario = ((Text) (e.widget)).getText();
-						if (beforeScenario.equals(scenario)) {
-							return;
-						}
-						data.setScenario(scenario);
-						data.setDataCommit(true);
-						scriptManager.fireUpdateDataEvent(data, this);
+			public void focusLost(FocusEvent e) {
+				String scenario = ((Text) (e.widget)).getText();
+				if (beforeScenario.equals(scenario)) {
+					return;
+				}
+				data.setScenario(scenario);
+				data.setDataCommit(true);
+				scriptManager.fireDataUpdateEvent(data, this);
 
-					}
-				});
+			}
+		});
 
 		// Description
 		final TextCellEditorEx descriptionTextCell = new TextCellEditorEx(
 				instTree);
-		((Text) descriptionTextCell.getControl())
-				.addFocusListener(new FocusAdapter() {
-					String beforeDescription = "";
-					IScriptData data = null;
+		descriptionTextCell.getControl().addFocusListener(new FocusAdapter() {
+			String beforeDescription = "";
+			IScriptData data = null;
 
-					public void focusGained(FocusEvent e) {
-						Display.getCurrent().asyncExec(new Runnable() {
-							public void run() {
-								descriptionTextCell.activate();
-							}
-						});
-						TreeSelection selection = (TreeSelection) treeViewer
-								.getSelection();
-						data = (IScriptData) selection.getFirstElement();
-						beforeDescription = ((Text) (e.widget)).getText();
-
-						selectGuideLineItemProcess(data);
-
-						if (data.getType() != IScriptData.TYPE_AUDIO
-								&& !(data.getType() == IScriptData.TYPE_SCENARIO && data
-										.isDataCommit() == false)) {
-							Display.getCurrent().asyncExec(new Runnable() {
-								public void run() {
-									descriptionTextCell.deactivate();
-								}
-							});
-							return;
-						}
-					}
-
-					public void focusLost(FocusEvent e) {
-						String description = ((Text) (e.widget)).getText();
-						if (beforeDescription.equals(description)) {
-							return;
-						}
-						dataEventManager.fireLabelEvent(new LabelEvent(
-								LabelEvent.DELETE_LABEL, data, this));
-						scriptManager.remove(data);
-
-						data.setType(IScriptData.TYPE_AUDIO);
-						data.setMark(NO_MARK);
-						data.setDescription(description);
-
-						int newEndTime;
-						int length = VoicePlayerFactory.getInstance()
-								.getSpeakLength(data);
-						if (length > 0) {
-							newEndTime = data.getStartTime() + length;
-							data.setEndTimeAccurate(true);
-						} else {
-							newEndTime = data.getStartTime()
-									+ DataUtil.sumMoraCount(
-											data.getDescription(),
-											data.getLang());
-							data.setEndTimeAccurate(false);
-						}
-
-						data.setEndTime(newEndTime);
-						data.setDataCommit(true);
-
-						scriptManager.add(data);
-						dataEventManager.fireLabelEvent(new LabelEvent(
-								LabelEvent.PUT_LABEL, data, this));
-
+			public void focusGained(FocusEvent e) {
+				Display.getCurrent().asyncExec(new Runnable() {
+					public void run() {
+						descriptionTextCell.activate();
 					}
 				});
+				TreeSelection selection = (TreeSelection) treeViewer
+						.getSelection();
+				data = (IScriptData) selection.getFirstElement();
+				beforeDescription = ((Text) (e.widget)).getText();
+
+				if (data.getType() != IScriptData.TYPE_AUDIO
+						&& !(data.getType() == IScriptData.TYPE_SCENARIO && data
+								.isDataCommit() == false)) {
+					Display.getCurrent().asyncExec(new Runnable() {
+						public void run() {
+							descriptionTextCell.deactivate();
+						}
+					});
+					return;
+				}
+			}
+
+			public void focusLost(FocusEvent e) {
+				String description = ((Text) (e.widget)).getText();
+				if (beforeDescription.equals(description)) {
+					return;
+				}
+				scriptManager.remove(data);
+
+				data.setType(IScriptData.TYPE_AUDIO);
+				data.setMark(NO_MARK);
+				data.setDescription(description);
+
+				int newEndTime;
+				int length = VoicePlayerFactory.getInstance().getSpeakLength(
+						data);
+				if (length > 0) {
+					newEndTime = data.getStartTime() + length;
+					data.setEndTimeAccurate(true);
+				} else {
+					newEndTime = data.getStartTime()
+							+ DataUtil.sumMoraCount(data.getDescription(),
+									data.getLang());
+					data.setEndTimeAccurate(false);
+				}
+
+				data.setEndTime(newEndTime);
+				data.setDataCommit(true);
+
+				scriptManager.add(data);
+			}
+		});
 
 		//
 		// Caption
 		// -------------------------------------------------------------------------------
 		//
 		final TextCellEditorEx captionTextCell = new TextCellEditorEx(instTree);
-		((Text) captionTextCell.getControl())
-				.addFocusListener(new FocusAdapter() {
-					String beforeCaption = "";
-					IScriptData data = null;
-					TreeItem[] item;
+		captionTextCell.getControl().addFocusListener(new FocusAdapter() {
+			String beforeCaption = "";
+			IScriptData data = null;
 
-					public void focusGained(FocusEvent e) {
-						TreeSelection selection = (TreeSelection) treeViewer
-								.getSelection();
-						data = (IScriptData) selection.getFirstElement();
-						item = instTree.getSelection();
-						beforeCaption = ((Text) (e.widget)).getText();
+			// TreeItem[] item;
 
-						selectGuideLineItemProcess(data);
+			public void focusGained(FocusEvent e) {
+				TreeSelection selection = (TreeSelection) treeViewer
+						.getSelection();
+				data = (IScriptData) selection.getFirstElement();
+				// item = instTree.getSelection();
+				beforeCaption = ((Text) (e.widget)).getText();
 
-						if (data.getType() != IScriptData.TYPE_CAPTION
-								&& !(data.getType() == IScriptData.TYPE_SCENARIO && data
-										.isDataCommit() == false)) {
-							Display.getCurrent().asyncExec(new Runnable() {
-								public void run() {
-									captionTextCell.deactivate();
-								}
-							});
-							return;
+				if (data.getType() != IScriptData.TYPE_CAPTION
+						&& !(data.getType() == IScriptData.TYPE_SCENARIO && data
+								.isDataCommit() == false)) {
+					Display.getCurrent().asyncExec(new Runnable() {
+						public void run() {
+							captionTextCell.deactivate();
 						}
-					}
+					});
+					return;
+				}
+			}
 
-					public void focusLost(FocusEvent e) {
-						String caption = ((Text) (e.widget)).getText();
-						if (beforeCaption.equals(caption)) {
-							return;
-						}
+			public void focusLost(FocusEvent e) {
+				String caption = ((Text) (e.widget)).getText();
+				if (beforeCaption.equals(caption)) {
+					return;
+				}
 
-						dataEventManager.fireLabelEvent(new LabelEvent(
-								LabelEvent.DELETE_LABEL, data, this));
-						scriptManager.remove(data);
+				scriptManager.remove(data);
 
-						data.setType(IScriptData.TYPE_CAPTION);
-						data.setMark(NO_MARK);
-						data.setCaption(caption);
-						if (data.getEndTime() <= data.getStartTime()) {
-							// TODO need input from user
-							int endTime = DataUtil.sumMoraCount(
-									data.getCaption(), data.getLang());
-							data.setEndTime(data.getStartTime() + endTime);
-						}
+				data.setType(IScriptData.TYPE_CAPTION);
+				data.setMark(NO_MARK);
+				data.setCaption(caption);
+				if (data.getEndTime() <= data.getStartTime()) {
+					// TODO need input from user
+					int endTime = DataUtil.sumMoraCount(data.getCaption(),
+							data.getLang());
+					data.setEndTime(data.getStartTime() + endTime);
+				}
 
-						data.setDataCommit(true);
+				data.setDataCommit(true);
 
-						scriptManager.add(data);
-						dataEventManager.fireLabelEvent(new LabelEvent(
-								LabelEvent.PUT_LABEL, data, this));
+				scriptManager.add(data);
 
-					}
-				});
+			}
+		});
 		//
 		// Extended
 		// -------------------------------------------------------------------------------
 		//
 		final ComboBoxCellEditor extendsComboCell = new ComboBoxCellEditor(
 				instTree, new String[] { "Extended", "Normal" });
-		((CCombo) extendsComboCell.getControl())
-				.addFocusListener(new FocusAdapter() {
-					String beforeExtends = "";
-					IScriptData data = null;
+		extendsComboCell.getControl().addFocusListener(new FocusAdapter() {
+			String beforeExtends = "";
+			IScriptData data = null;
 
-					public void focusGained(FocusEvent e) {
-						TreeSelection selection = (TreeSelection) treeViewer
-								.getSelection();
-						data = (IScriptData) selection.getFirstElement();
+			public void focusGained(FocusEvent e) {
+				TreeSelection selection = (TreeSelection) treeViewer
+						.getSelection();
+				data = (IScriptData) selection.getFirstElement();
 
-						beforeExtends = ((CCombo) (e.widget)).getText();
-						selectGuideLineItemProcess(data);
-						if (data.getType() != IScriptData.TYPE_AUDIO) {
-							Display.getCurrent().asyncExec(new Runnable() {
-								public void run() {
-									extendsComboCell.deactivate();
-								}
-							});
-							return;
+				beforeExtends = ((CCombo) (e.widget)).getText();
+				if (data.getType() != IScriptData.TYPE_AUDIO) {
+					Display.getCurrent().asyncExec(new Runnable() {
+						public void run() {
+							extendsComboCell.deactivate();
 						}
-					}
+					});
+					return;
+				}
+			}
 
-					public void focusLost(FocusEvent e) {
-						String extended = ((CCombo) (e.widget)).getText();
-						if (beforeExtends.equals(extended)) {
-							return;
-						}
+			public void focusLost(FocusEvent e) {
+				String extended = ((CCombo) (e.widget)).getText();
+				if (beforeExtends.equals(extended)) {
+					return;
+				}
 
-						if (data.getType() == IScriptData.TYPE_AUDIO) {
-							data.setExtended("Extended".equals(extended));
-							dataEventManager.fireLabelEvent(new LabelEvent(
-									LabelEvent.PUT_LABEL, data, this));
-						}
-					}
-				});
+				if (data.getType() == IScriptData.TYPE_AUDIO) {
+					data.setExtended("Extended".equals(extended));
+					scriptManager.fireDataUpdateEvent(data, this);
+				}
+			}
+		});
 
 		//
 		// Wav
 		// -------------------------------------------------------------------------------
 		//
 		final TextCellEditorEx wavTextCell = new TextCellEditorEx(instTree);
-		((Text) wavTextCell.getControl()).addFocusListener(new FocusAdapter() {
+		wavTextCell.getControl().addFocusListener(new FocusAdapter() {
 			public void focusGained(FocusEvent e) {
 				Display.getCurrent().asyncExec(new Runnable() {
 					public void run() {
@@ -521,7 +476,6 @@
 							.getSelection();
 					final IScriptData data = (IScriptData) selection
 							.getFirstElement();
-					selectGuideLineItemProcess(data);
 					if (data.getType() != IScriptData.TYPE_AUDIO) {
 						return;
 					}
@@ -545,33 +499,13 @@
 										.getStartTimeString())) {
 
 									scriptManager.remove(data);
-
-									dataEventManager
-											.fireLabelEvent(new LabelEvent(
-													LabelEvent.DELETE_LABEL,
-													data, this));
 									data.setDataCommit(true);
-
 									scriptManager.add(data);
-
-									dataEventManager
-											.fireLabelEvent(new LabelEvent(
-													LabelEvent.PUT_LABEL, data,
-													this));
-
 								}
 
 							} else if (dialog.getReturnCode() == WavInputDialog.DELETE) {
 								scriptManager.remove(data);
-
-								dataEventManager.fireLabelEvent(new LabelEvent(
-										LabelEvent.DELETE_LABEL, data, this));
-
 								scriptManager.add(data);
-
-								dataEventManager.fireLabelEvent(new LabelEvent(
-										LabelEvent.PUT_LABEL, data, this));
-
 							}
 						}
 					});
@@ -592,30 +526,28 @@
 		// -------------------------------------------------------------------------------
 		//
 		TextCellEditorEx commentTextCell = new TextCellEditorEx(instTree);
-		((Text) commentTextCell.getControl())
-				.addFocusListener(new FocusAdapter() {
-					String beforeComment = "";
-					IScriptData data = null;
+		commentTextCell.getControl().addFocusListener(new FocusAdapter() {
+			String beforeComment = "";
+			IScriptData data = null;
 
-					public void focusGained(FocusEvent e) {
-						TreeSelection selection = (TreeSelection) treeViewer
-								.getSelection();
-						data = (IScriptData) selection.getFirstElement();
+			public void focusGained(FocusEvent e) {
+				TreeSelection selection = (TreeSelection) treeViewer
+						.getSelection();
+				data = (IScriptData) selection.getFirstElement();
 
-						beforeComment = ((Text) (e.widget)).getText();
-						selectGuideLineItemProcess(data);
-					}
+				beforeComment = ((Text) (e.widget)).getText();
+			}
 
-					public void focusLost(FocusEvent e) {
-						String comment = ((Text) (e.widget)).getText();
-						if (beforeComment.equals(comment)) {
-							return;
-						}
-						data.setScriptComment(comment);
-						scriptManager.fireUpdateDataEvent(data, this);
-						DataUtil.debug();
-					}
-				});
+			public void focusLost(FocusEvent e) {
+				String comment = ((Text) (e.widget)).getText();
+				if (beforeComment.equals(comment)) {
+					return;
+				}
+				data.setScriptComment(comment);
+				scriptManager.fireDataUpdateEvent(data, this);
+				DataUtil.debug();
+			}
+		});
 
 		CellEditor[] editors = new CellEditor[] { new TextCellEditor(instTree),
 				new TextCellEditor(instTree), startTimeTextCell,
@@ -778,8 +710,6 @@
 			}
 		}
 		scriptManager.addAll(list);
-		dataEventManager.fireLabelEvent(new LabelEvent(
-				LabelEvent.PUT_ALL_LABEL, null, this));
 	}
 
 	class DeleteAction extends Action implements IUNIT {
@@ -801,9 +731,6 @@
 
 						IScriptData data = (IScriptData) items[i].getData();
 						scriptManager.remove(data);
-						dataEventManager.fireLabelEvent(new LabelEvent(
-								LabelEvent.DELETE_LABEL, data, this));
-
 					}
 				}
 			});
@@ -885,48 +812,51 @@
 			List<IScriptData> list = sel.toList();
 
 			// Exist ScriptData?
-			if (list.size() == 1) {
+			if (list.size() > 0) {
 				selectAllColumn(column2, SWT.NONE);
-			} else if (list.size() > 1) {
-				selectAllColumn(column2, SWT.NONE);
-				if (EditPanelTab.getInstance() != null) {
-					EditPanelTab.getInstance().setMultiSelectMode(true);
-					EditPanelTab.getInstance().setCurrentListData(list);
-				}
 			} else {
 				return;
 			}
-			if (isUser && e.getSource() != this) {
-				int newPosition = list.iterator().next().getStartTime() - 10;
-				if (newPosition < 0) {
-					newPosition = 0;
+			if (isUser) {
+
+				IScriptData data = list.get(0);
+
+				// TODO use event
+				WebBrowserFactory.getInstance().setCurrentPosition(
+						data.getStartTime());
+
+				if (list.size() == 1) {
+					scriptManager.fireDataSelectionEvent(data, ownInst);
+				} else {
+					scriptManager.fireMultipleDataSelectionEvent(list, ownInst);
 				}
-				WebBrowserFactory.getInstance().pauseMedia();
-				WebBrowserFactory.getInstance().setCurrentPosition(newPosition);
 			}
 		}
 	}
 
-	public void handleScriptEvent(ScriptEvent e) {
+	public void handleScriptEvent(ScriptDataEvent e) {
 		switch (e.getEventType()) {
-		case ScriptEvent.SELECT_DATA:
-		case ScriptEvent.PLAY_DATA:
+		case ScriptDataEvent.SELECT:
+			if (e.getSource() == ownInst) {
+				break;
+			}
+		case ScriptDataEvent.PLAY:
 			isUser = false;
 			IScriptData data = e.getData();
 			treeViewer.setSelection(new StructuredSelection(data), true);
 			isUser = true;
 			break;
-		case ScriptEvent.DESELECT_DATA:
+		case ScriptDataEvent.DESELECT:
 			treeViewer.setSelection(null, false);
 			break;
-		case ScriptEvent.ADD_DATA:
-		case ScriptEvent.ADD_MULTIPUL_DATA:
-		case ScriptEvent.UPDATE_DATA:
-		case ScriptEvent.UPDATE_MULTIPUL_DATA:
-		case ScriptEvent.DELETE_DATA:
+		case ScriptDataEvent.ADD:
+		case ScriptDataEvent.MULTIPLE_ADD:
+		case ScriptDataEvent.UPDATE:
+		case ScriptDataEvent.MULTIPLE_UPDATE:
+		case ScriptDataEvent.DELETE:
 			updateLine();
 			break;
-		case ScriptEvent.CLEAR_DATA:
+		case ScriptDataEvent.CLEAR:
 			treeViewer.getTree().removeAll();
 			break;
 		}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/ScriptDataManager.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/ScriptDataManager.java
index 512b339..8e07818 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/ScriptDataManager.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/ScriptDataManager.java
@@ -17,8 +17,8 @@
 import java.util.List;
 import java.util.TreeSet;
 
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEventListener;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEvent;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEventListener;
 import org.eclipse.actf.ai.scripteditor.util.TimeFormatUtil;
 import org.eclipse.actf.ai.scripteditor.util.XMLFileMessageBox;
 import org.eclipse.actf.util.FileUtils;
@@ -29,7 +29,7 @@
  */
 public class ScriptDataManager {
 
-	private static List<ScriptEventListener> SCRIPT_EVENT_LISTENERS = new ArrayList<ScriptEventListener>();
+	private static List<ScriptDataEventListener> SCRIPT_EVENT_LISTENERS = new ArrayList<ScriptDataEventListener>();
 
 	public class scriptDataComparator implements Comparator<IScriptData> {
 
@@ -94,10 +94,10 @@
 		return (ownInst);
 	}
 
-	public synchronized void clearData() {
+	public synchronized void clear() {
 		iData.clear();
 		cData.clear();
-		fireScriptEvent(new ScriptEvent(ScriptEvent.CLEAR_DATA, this));
+		fireScriptEvent(new ScriptDataEvent(ScriptDataEvent.CLEAR, this));
 	}
 
 	@Deprecated
@@ -152,7 +152,7 @@
 			cData.add(tmpCharacter);
 		}
 		if (iData.add(data)) {
-			fireScriptEvent(ScriptEvent.ADD_DATA, data, this);
+			fireScriptEvent(ScriptDataEvent.ADD, data, this);
 			return true;
 		}
 		return false;
@@ -166,7 +166,7 @@
 			}
 		}
 		if (iData.addAll(data)) {
-			fireScriptEvent(new ScriptEvent(ScriptEvent.ADD_MULTIPUL_DATA,
+			fireScriptEvent(new ScriptDataEvent(ScriptDataEvent.MULTIPLE_ADD,
 					data, this));
 			return true;
 		}
@@ -179,7 +179,7 @@
 
 	public synchronized boolean remove(IScriptData data) {
 		if (iData.remove(data)) {
-			fireScriptEvent(ScriptEvent.DELETE_DATA, data, this);
+			fireScriptEvent(ScriptDataEvent.DELETE, data, this);
 			return true;
 		}
 		return false;
@@ -501,7 +501,7 @@
 	 * 
 	 * @param listener
 	 */
-	public void addGuideListEventListener(ScriptEventListener listener) {
+	public void addScriptDataEventListener(ScriptDataEventListener listener) {
 		SCRIPT_EVENT_LISTENERS.add(listener);
 	}
 
@@ -510,37 +510,43 @@
 	 * 
 	 * @param listener
 	 */
-	public void removeGuideListEventListener(ScriptEventListener listener) {
+	public void removeScriptDataEventListener(ScriptDataEventListener listener) {
 		SCRIPT_EVENT_LISTENERS.remove(listener);
 	}
 
-	public void fireSelectDataEvent(IScriptData selectedData, Object source) {
-		fireScriptEvent(ScriptEvent.SELECT_DATA, selectedData, source);
+	public void fireDataSelectionEvent(IScriptData selectedData, Object source) {
+		fireScriptEvent(ScriptDataEvent.SELECT, selectedData, source);
 	}
 
-	public void fireDeselectDataEvent(Object source) {
-		fireScriptEvent(new ScriptEvent(ScriptEvent.DESELECT_DATA, source));
+	public void fireMultipleDataSelectionEvent(
+			Collection<IScriptData> selection, Object source) {
+		fireScriptEvent(new ScriptDataEvent(ScriptDataEvent.MULTIPLE_SELECT,
+				selection, source));
 	}
 
-	public void fireUpdateDataEvent(IScriptData updatedData, Object source) {
-		fireScriptEvent(ScriptEvent.UPDATE_DATA, updatedData, source);
+	public void fireDataDeselectionEvent(Object source) {
+		fireScriptEvent(new ScriptDataEvent(ScriptDataEvent.DESELECT, source));
 	}
 
-	public void fireUpdateMultipleDataEvent(
+	public void fireDataUpdateEvent(IScriptData updatedData, Object source) {
+		fireScriptEvent(ScriptDataEvent.UPDATE, updatedData, source);
+	}
+
+	public void fireMultipleDataUpdateEvent(
 			Collection<IScriptData> updatedData, Object source) {
 		if (updatedData != null) {
-			fireScriptEvent(new ScriptEvent(ScriptEvent.UPDATE_MULTIPUL_DATA,
-					updatedData, source));
+			fireScriptEvent(new ScriptDataEvent(
+					ScriptDataEvent.MULTIPLE_UPDATE, updatedData, source));
 		}
 	}
 
 	public void firePlayEvent(IScriptData playingData, Object source) {
-		fireScriptEvent(ScriptEvent.PLAY_DATA, playingData, source);
+		fireScriptEvent(ScriptDataEvent.PLAY, playingData, source);
 	}
 
 	private void fireScriptEvent(int type, IScriptData data, Object source) {
 		if (data != null) {
-			fireScriptEvent(new ScriptEvent(type, data, source));
+			fireScriptEvent(new ScriptDataEvent(type, data, source));
 		}
 	}
 
@@ -549,8 +555,8 @@
 	 * 
 	 * @param event
 	 */
-	private void fireScriptEvent(ScriptEvent event) {
-		for (ScriptEventListener listener : SCRIPT_EVENT_LISTENERS) {
+	private void fireScriptEvent(ScriptDataEvent event) {
+		for (ScriptDataEventListener listener : SCRIPT_EVENT_LISTENERS) {
 			listener.handleScriptEvent(event);
 		}
 	}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/DataEventManager.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/DataEventManager.java
deleted file mode 100644
index 3bd63e2..0000000
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/DataEventManager.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2012 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.ai.scripteditor.data.event;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class DataEventManager {
-	private static DataEventManager ownInst = null;
-
-	/**
-	 * Get instance of EventManager
-	 * 
-	 * @return instance
-	 */
-	public static DataEventManager getInstance() {
-		if (ownInst == null) {
-			ownInst = new DataEventManager();
-		}
-		return ownInst;
-	}
-
-	// ----------------- AUDIO Event -----------------------
-	/**
-	 * Play Mark Event Listeners
-	 */
-	private static List<LabelEventListener> labelEventListeners = new ArrayList<LabelEventListener>();
-
-	/**
-	 * Add Play Mark Event Listener
-	 * 
-	 * @param listener
-	 */
-	public synchronized void addLabelEventListener(LabelEventListener listener) {
-		labelEventListeners.add(listener);
-	}
-
-	/**
-	 * Remove Play Mark Event Listener
-	 * 
-	 * @param listener
-	 */
-	public synchronized void removeLabelEventListener(
-			LabelEventListener listener) {
-		labelEventListeners.remove(listener);
-	}
-
-	/**
-	 * fire Play Mark Event
-	 * 
-	 * @param event
-	 */
-	public synchronized void fireLabelEvent(LabelEvent event) {
-		for (LabelEventListener listener : labelEventListeners) {
-			listener.handleLabelEvent(event);
-			// System.out.println(listener);
-		}
-		// System.out.println("----------");
-	}
-
-}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/LabelEvent.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/LabelEvent.java
deleted file mode 100644
index 28eb76e..0000000
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/LabelEvent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2012 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.ai.scripteditor.data.event;
-
-import java.util.EventObject;
-
-import org.eclipse.actf.ai.scripteditor.data.IScriptData;
-
-public class LabelEvent extends EventObject {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -8216230604599825989L;
-
-	public static final int PUT_ALL_LABEL = 1; // create or
-	public static final int PUT_LABEL = 2; // create or update label
-	public static final int DELETE_LABEL = 3;
-
-	private int eventType;
-	private IScriptData data;
-
-	public LabelEvent(int eventType, IScriptData data, Object source) {
-		super(source);
-		this.eventType = eventType;
-		this.data = data;
-	}
-
-	public int getEventType() {
-		return eventType;
-	}
-
-	public IScriptData getData() {
-		return data;
-	}
-
-}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptEvent.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptDataEvent.java
similarity index 65%
rename from plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptEvent.java
rename to plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptDataEvent.java
index 870201a..e51e645 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptEvent.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptDataEvent.java
@@ -15,44 +15,46 @@
 
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 
-public class ScriptEvent extends EventObject {
+public class ScriptDataEvent extends EventObject {
 
 	/**
 	 * 
 	 */
 	private static final long serialVersionUID = 1860351762555451972L;
 
-	public static final int CLEAR_DATA = 0;
-	public static final int SELECT_DATA = 1;
-	public static final int DESELECT_DATA = 2;
-	public static final int PLAY_DATA = 3;
-	// TODO play fin
+	public static final int CLEAR = 0;
+	public static final int ADD = 1;
+	public static final int MULTIPLE_ADD = 2;
+	public static final int DELETE = 3;
+	// multiple remove?
 
-	// Migrate from AudioEvent
-	public static final int ADD_DATA = 5;
-	public static final int ADD_MULTIPUL_DATA = 6;
-	public static final int DELETE_DATA = 7;
-	// TODO multiple remove?
+	public static final int UPDATE = 10;
+	public static final int MULTIPLE_UPDATE = 11;
 
-	public static final int UPDATE_DATA = 9;
-	public static final int UPDATE_MULTIPUL_DATA = 10;
+	public static final int SELECT = 20;
+	public static final int MULTIPLE_SELECT = 21;
+	public static final int DESELECT = 22;
+
+	public static final int PLAY = 33;
+	// TODO play fin, select multi
+
 
 	private int eventType;
 	private IScriptData data = null;
 	private Collection<IScriptData> cData = null;
 
-	public ScriptEvent(int eventType, Object source) {
+	public ScriptDataEvent(int eventType, Object source) {
 		super(source);
 		this.eventType = eventType;
 	}
 
-	public ScriptEvent(int eventType, IScriptData data, Object source) {
+	public ScriptDataEvent(int eventType, IScriptData data, Object source) {
 		super(source);
 		this.eventType = eventType;
 		this.data = data;
 	}
 
-	public ScriptEvent(int eventType, Collection<IScriptData> cData,
+	public ScriptDataEvent(int eventType, Collection<IScriptData> cData,
 			Object source) {
 		super(source);
 		this.eventType = eventType;
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/LabelEventListener.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptDataEventListener.java
similarity index 83%
rename from plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/LabelEventListener.java
rename to plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptDataEventListener.java
index 9c9eee3..ca709c2 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/LabelEventListener.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptDataEventListener.java
@@ -12,6 +12,6 @@
 
 import java.util.EventListener;
 
-public interface LabelEventListener extends EventListener {
-	public abstract void handleLabelEvent(LabelEvent e);
+public interface ScriptDataEventListener extends EventListener {
+	public abstract void handleScriptEvent(ScriptDataEvent e);
 }
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptEventListener.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptEventListener.java
deleted file mode 100644
index 785d290..0000000
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/data/event/ScriptEventListener.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2012 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.ai.scripteditor.data.event;
-
-import java.util.EventListener;
-
-public interface ScriptEventListener extends EventListener {
-	public abstract void handleScriptEvent(ScriptEvent e);
-}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/reader/CSVReader.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/reader/CSVReader.java
index e4094b6..86ad9a9 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/reader/CSVReader.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/reader/CSVReader.java
@@ -30,8 +30,6 @@
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataFactory;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
 import org.eclipse.actf.ai.scripteditor.preferences.CSVRulePreferenceUtil;
 import org.eclipse.actf.ai.scripteditor.util.SoundMixer;
 import org.eclipse.actf.ai.scripteditor.util.TimeFormatUtil;
@@ -175,9 +173,8 @@
 	private boolean currentActive = false;
 	private int currentProcess = CSV_PROC_IDLE;
 
-	private DataEventManager dataEventManager = null;
 	private ScriptDataManager scriptManager = ScriptDataManager.getInstance();
-	private EventManager eventManager = null;
+	private EventManager eventManager = EventManager.getInstance();
 	static List<IScriptData> dataList = new ArrayList<IScriptData>();
 
 	/**
@@ -213,8 +210,6 @@
 		currentStatus = CSV_ANA_IDLE;
 		currentActive = false;
 
-		dataEventManager = DataEventManager.getInstance();
-		eventManager = EventManager.getInstance();
 	}
 
 	/**
@@ -1034,14 +1029,10 @@
 
 				if (CSV_SAVE_RULE_RENEWAL == CSVRulePreferenceUtil
 						.getPreferenceCsvSaveRule()) {
-					scriptManager.clearData();
+					scriptManager.clear();
 				}
 
 				scriptManager.addAll(dataList);
-
-				// rewrite all labels at once
-				dataEventManager.fireLabelEvent(new LabelEvent(
-						LabelEvent.PUT_ALL_LABEL, null, this));
 			}
 		});
 
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/util/DragDropFileReader.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/util/DragDropFileReader.java
index 4266539..210097c 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/util/DragDropFileReader.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/scripteditor/util/DragDropFileReader.java
@@ -87,7 +87,7 @@
 	// * Private method : Pre-Process for Load data
 	// *
 	private void preProcessLoadFile() {
-		scriptManager.clearData();
+		scriptManager.clear();
 		VolumeLevelCanvas.setVolumeLevelFilePath(null);
 	}
 
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/EditPanelView.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/EditPanelView.java
index d1ac3e8..9ed7354 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/EditPanelView.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/EditPanelView.java
@@ -14,9 +14,8 @@
 import org.eclipse.actf.ai.internal.ui.scripteditor.SelectWAVFileTab;
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEvent;
-import org.eclipse.actf.ai.scripteditor.data.event.ScriptEventListener;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEvent;
+import org.eclipse.actf.ai.scripteditor.data.event.ScriptDataEventListener;
 import org.eclipse.actf.ai.scripteditor.util.ScriptFileDropListener;
 import org.eclipse.actf.examples.scripteditor.Activator;
 import org.eclipse.swt.SWT;
@@ -37,7 +36,7 @@
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.ViewPart;
 
-public class EditPanelView extends ViewPart implements ScriptEventListener {
+public class EditPanelView extends ViewPart implements ScriptDataEventListener {
 	public static final String VIEW_ID = "org.eclipse.actf.examples.scripteditor.EditPanelView";
 
 	static private EditPanelView ownInst = null;
@@ -52,7 +51,6 @@
 	private CTabItem instEditPanelTabItem = null;
 	private CTabItem instSelectWAVFileTabItem = null;
 	//
-	private DataEventManager dataEventManager = null;
 	private ScriptDataManager scriptDataManager = ScriptDataManager
 			.getInstance();
 
@@ -62,7 +60,6 @@
 	public EditPanelView() {
 		super();
 		ownInst = this;
-		dataEventManager = DataEventManager.getInstance();
 	}
 
 	static public EditPanelView getInstance() {
@@ -79,12 +76,11 @@
 		// Add listener for load meta file
 		initDDListener(ownTabFolder);
 
-		scriptDataManager.addGuideListEventListener(ownInst);
+		scriptDataManager.addScriptDataEventListener(ownInst);
 		parent.addDisposeListener(new DisposeListener() {
 			@Override
 			public void widgetDisposed(DisposeEvent e) {
-				// TODO other components
-				scriptDataManager.removeGuideListEventListener(ownInst);
+				scriptDataManager.removeScriptDataEventListener(ownInst);
 			}
 		});
 	}
@@ -197,8 +193,9 @@
 		}
 	}
 
-	public void handleScriptEvent(ScriptEvent e) {
-		if (e.getEventType() == ScriptEvent.SELECT_DATA) {
+	public void handleScriptEvent(ScriptDataEvent e) {
+		switch(e.getEventType()){
+		case ScriptDataEvent.SELECT:
 			IScriptData data = e.getData();
 			instEditPanelTab.setMultiSelectMode(false);
 			instEditPanelTab.repaintTextScriptData(data);
@@ -208,8 +205,18 @@
 			} else {
 				ownTabFolder.setSelection(0);
 			}
-		} else if (e.getEventType() == ScriptEvent.DESELECT_DATA) {
-			instEditPanelTab.initDispEditPanel();
+			break;
+		case ScriptDataEvent.MULTIPLE_SELECT:
+			instEditPanelTab.setMultiSelectMode(true);
+			instEditPanelTab.setCurrentListData(e.getDataCollection());			
+			break;
+		case ScriptDataEvent.DESELECT:
+			//TODO confirm?
+			instEditPanelTab.initDispEditPanel();			
+			break;
+		case ScriptDataEvent.UPDATE:
+			
+			break;
 		}
 
 	}
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/TimeLineView.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/TimeLineView.java
index fdde5a7..08abcac 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/TimeLineView.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/ai/ui/scripteditor/views/TimeLineView.java
@@ -27,8 +27,6 @@
 import org.eclipse.actf.ai.internal.ui.scripteditor.event.TimerEventListener;
 import org.eclipse.actf.ai.scripteditor.data.IScriptData;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
 import org.eclipse.actf.ai.scripteditor.util.ScriptFileDropListener;
 import org.eclipse.actf.ai.scripteditor.util.SoundMixer;
 import org.eclipse.actf.ai.scripteditor.util.VoicePlayerFactory;
@@ -123,9 +121,8 @@
 	private boolean currentDragStatus = false; // status for dragging
 
 	// for Event Managing
-	private static EventManager eventManager = null;
-	private ScriptDataManager scriptManager = null;
-	private DataEventManager dataEventManager = null;
+	private static EventManager eventManager = EventManager.getInstance();
+	private ScriptDataManager scriptManager = ScriptDataManager.getInstance();
 
 	private int captionStartTimeLine = 0;
 
@@ -142,10 +139,6 @@
 				new ScriptEditorShutdownListener());
 
 		ownInst = this;
-
-		eventManager = EventManager.getInstance();
-		scriptManager = ScriptDataManager.getInstance();
-		dataEventManager = DataEventManager.getInstance();
 	}
 
 	static public TimeLineView getInstance() {
@@ -176,7 +169,6 @@
 		parent.addDisposeListener(new DisposeListener() {
 			@Override
 			public void widgetDisposed(DisposeEvent e) {
-				// TODO other components
 				eventManager.removeSyncTimeEventListener(ownInst);
 				eventManager.removeMouseDragEventListener(ownInst);
 				eventManager.removeTimerEventListener(ownInst);
@@ -1098,9 +1090,7 @@
 				data.setEndTime(newEndTime);
 			}
 			// replace label and data.
-			dataEventManager.fireLabelEvent(new LabelEvent(
-					LabelEvent.PUT_LABEL, data, this));
-			scriptManager.fireUpdateDataEvent(data, this);
+			scriptManager.fireDataUpdateEvent(data, this);
 
 		}
 	}
@@ -1593,7 +1583,8 @@
 									currentScriptDataIndex = -1;
 
 									// Finish high-light for target
-									scriptManager.fireDeselectDataEvent(this);
+									scriptManager
+											.fireDataDeselectionEvent(this);
 								}
 							} else {
 								// increment duration counter
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/ClearAction.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/ClearAction.java
index eb713b7..42ade00 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/ClearAction.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/ClearAction.java
@@ -14,7 +14,6 @@
 import org.eclipse.actf.ai.internal.ui.scripteditor.SelectWAVFileTab;
 import org.eclipse.actf.ai.internal.ui.scripteditor.VolumeLevelCanvas;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
 import org.eclipse.actf.ai.scripteditor.util.XMLFileMessageBox;
 import org.eclipse.actf.ai.scripteditor.util.XMLFileSaveUtil;
 import org.eclipse.actf.ai.ui.scripteditor.views.EditPanelView;
@@ -32,8 +31,6 @@
 	private SelectWAVFileTab instSelWavTab = null;
 	private TimeLineView instTimeLine = null;
 
-	private DataEventManager dataEventManager = null;
-
 	public ClearAction() {
 	}
 
@@ -56,15 +53,11 @@
 		if (scriptManager == null) {
 			scriptManager = ScriptDataManager.getInstance();
 		}
-		if (dataEventManager == null) {
-			dataEventManager = DataEventManager.getInstance();
-		}
-
 	}
 
 	private void closeFile() {
 
-		scriptManager.clearData();
+		scriptManager.clear();
 
 		if (instEditPanelTab != null) {
 			instEditPanelTab.initDispEditPanel();
diff --git a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/FileOpenAction.java b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/FileOpenAction.java
index b9ba726..588541d 100644
--- a/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/FileOpenAction.java
+++ b/plugins/org.eclipse.actf.examples.scripteditor/src/org/eclipse/actf/examples/scripteditor/actions/FileOpenAction.java
@@ -13,8 +13,6 @@
 import org.eclipse.actf.ai.internal.ui.scripteditor.EditPanelTab;
 import org.eclipse.actf.ai.internal.ui.scripteditor.VolumeLevelCanvas;
 import org.eclipse.actf.ai.scripteditor.data.ScriptDataManager;
-import org.eclipse.actf.ai.scripteditor.data.event.DataEventManager;
-import org.eclipse.actf.ai.scripteditor.data.event.LabelEvent;
 import org.eclipse.actf.ai.scripteditor.reader.SAXReader;
 import org.eclipse.actf.ai.scripteditor.util.WebBrowserFactory;
 import org.eclipse.actf.ai.scripteditor.util.XMLFileMessageBox;
@@ -32,7 +30,6 @@
 public class FileOpenAction implements IWorkbenchWindowActionDelegate {
 
 	private ScriptDataManager scriptManager = null;
-	private DataEventManager dataEventManager = null;
 	private EditPanelTab instEditPanelTab = null;
 	private TimeLineView instTimeLine = null;
 
@@ -56,19 +53,14 @@
 		if (scriptManager == null) {
 			scriptManager = ScriptDataManager.getInstance();
 		}
-		if (dataEventManager == null) {
-			dataEventManager = DataEventManager.getInstance();
-		}
 	}
 
 	private void preProcess() {
 		VolumeLevelCanvas.setVolumeLevelFilePath(null);
-		scriptManager.clearData();
+		scriptManager.clear();
 	}
 
 	private void postProcess() {
-		dataEventManager.fireLabelEvent(new LabelEvent(
-				LabelEvent.PUT_ALL_LABEL, null, this));
 
 		if (instEditPanelTab != null) {
 			instEditPanelTab.initDispEditPanel();