adding TestON
diff --git a/TestON/TAI/src/tai_ofa/CodeEditorParams.java b/TestON/TAI/src/tai_ofa/CodeEditorParams.java
new file mode 100644
index 0000000..99ed8e1
--- /dev/null
+++ b/TestON/TAI/src/tai_ofa/CodeEditorParams.java
@@ -0,0 +1,207 @@
+package tai_ofa;
+
+import com.sun.org.apache.xerces.internal.parsers.IntegratedParserConfiguration;
+import java.awt.TextArea;
+import java.util.ArrayList;
+import java.util.Locale;
+import javafx.event.EventHandler;
+import javafx.scene.Group;
+import javafx.scene.Node;
+import javafx.scene.control.Button;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.MenuItem;
+import javafx.scene.control.Tab;
+import javafx.scene.input.MouseEvent;
+import javafx.scene.layout.StackPane;
+import javafx.scene.web.PopupFeatures;
+import javafx.scene.web.WebEngine;
+import javafx.scene.web.WebView;
+import javafx.util.Callback;
+import javax.swing.JOptionPane;
+
+
+/*
+ * To change this template, choose Tools | Templates and open the template in
+ * the editor.
+ */
+/**
+ *
+ * @author Raghav Kashyap (raghavkashyap@paxterrasolutions.com)
+	
+ *   TestON is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 2 of the License, or
+ *   (at your option) any later version.
+
+ *   TestON is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+
+ *   You should have received a copy of the GNU General Public License
+ *   along with TestON.  If not, see <http://www.gnu.org/licenses/>.
+
+ * /**
+ */
+public class CodeEditorParams extends StackPane {
+
+    TAI_OFA OFAReference;
+    WebView webview = new WebView();
+    private String editingCode;
+    ContextMenu contextMenu;
+    TAILocale label = new TAILocale(new Locale("en", "EN"));
+    String editorScriptsPath = label.OFAHarnessPath;
+    private final String editingTemplate =
+            "<!doctype html>"
+            + "<html>"
+            + "<head>"
+            + " <link rel=\"stylesheet\"href=\"file://editorScriptPath/codemirror.css\">".replace("editorScriptPath", editorScriptsPath+"/EditorScripts")
+            + "  <script src=\"file://editorScriptPath/codemirror.js\"></script>".replace("editorScriptPath", editorScriptsPath+"/EditorScripts")
+            + "  <script src=\"file://editorScriptPath/foldcode.js\"></script>".replace("editorScriptPath", editorScriptsPath+"/EditorScripts")
+            + "  <script src=\"file://editorScriptPath/perl.js\"></script>".replace("editorScriptPath", editorScriptsPath+"/EditorScripts")
+            + "  <script src=\"file://editorScriptPath/xml.js\"></script>".replace("editorScriptPath", editorScriptsPath+"/EditorScripts")
+            + " <style type=\"text/css\">"
+            + "</style>"
+            + "</head>"
+            + "<body>"
+            + "<form><textarea id=\"code\" name=\"code\">\n"
+            + "${code}"
+            + "</textarea></form>"
+            + "<script>"
+            + " var foldFunc = CodeMirror.newFoldFunction(CodeMirror.tagRangeFinder);"
+            + "var editor;"
+            + "editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {"
+            + "mode: \"perl\","
+            + "     lineNumbers: true,"
+            + "onGutterClick: foldFunc,"
+            + "extraKeys: {\"Ctrl-Q\" : function(cm){foldFunc(cm, cm.getCursor().line);}}"
+            + "  });"
+            + "</script>"
+            + "</body>"
+            + "</html>";
+
+    /**
+     * applies the editing template to the editing code to create the
+     * html+javascript source for a code editor.
+     */
+    private String applyEditingTemplate() {
+        editingTemplate.replace("${code}", editingCode);        
+        return editingTemplate.replace("${code}", editingCode);
+    }
+
+    public void setOFA(TAI_OFA reference) {
+        OFAReference = reference;
+    }
+
+    /**
+     * sets the current code in the editor and creates an editing snapshot of
+     * the code which can be reverted to.
+     */
+    public void setCode(String newCode) {
+        this.editingCode = newCode;
+        webview.getEngine().loadContent(applyEditingTemplate());
+    }
+
+    public String getCurrentLine() {
+        return (String) webview.getEngine().executeScript("editor.getLine(editor.getCursor().line);");
+    }
+
+    public String getCurrentLineNumber() {
+        return webview.getEngine().executeScript("editor.getLineNumber(editor.getCursor().line);").toString();
+
+    }
+
+    public String getCurrentLine(int lineNumber) {
+        Integer lines = lineNumber;
+        return (String) webview.getEngine().executeScript("editor.getLine(line);".replace("line", lines.toString()));
+
+    }
+
+    /**
+     * returns the current code in the editor and updates an editing snapshot of
+     * the code which can be reverted to.
+     */
+    public String getCodeAndSnapshot() {
+        this.editingCode = (String) webview.getEngine().executeScript("editor.getValue();");
+        return editingCode;
+    }
+
+    public void alert() {
+        webview.getEngine().executeScript("editor.myFunction();");
+    }
+
+    public int cursorPosfromTop() {
+        return (Integer) webview.getEngine().executeScript("editor.cursorTopPos();");
+    }
+
+    public int cursorPosfromLeft() {
+        return (Integer) webview.getEngine().executeScript("editor.cursorLeftPos();");
+    }
+
+    public void clearMarker(String line) {
+        int lineNumber = Integer.parseInt(line) - 1;
+        String lineNumberString = "editor.clearMarker(clearGutter);".replace("clearGutter", String.valueOf(lineNumber));
+        webview.getEngine().executeScript(lineNumberString);
+    }
+
+    public void SetError(String line, final String errorType) {
+
+        final String tooltip = "editor.setMarker(line-1, \"<a id='error' title='errorType \"  +  \"'><img src='file://editorScriptPath/Delete.png'/></a>%N%\"); ".replace("editorScriptPath", editorScriptsPath+"/EditorScripts");
+        Integer lineCount = (Integer) webview.getEngine().executeScript("editor.lineCount();");
+        int i;
+        for (i = 1; i <= lineCount; i++) {
+            String tooltipToExcute = tooltip.replace("line", line).replace("errorType", errorType);
+            if (!"".equals(errorType)) {
+                webview.getEngine().executeScript(tooltipToExcute);
+            }
+        }
+
+    }
+
+    public void SetWarning(String line, final String errorType) {
+
+        final String tooltip = "editor.setMarker(line-1, \"<a id='error' title='errorType \"  +  \"'><img src='file://editorScriptPath/Warning.png'/></a>%N%\"); ".replace("editorScriptPath", editorScriptsPath+"/EditorScripts");
+        Integer lineCount = (Integer) webview.getEngine().executeScript("editor.lineCount();");
+        int i;
+        for (i = 1; i <= lineCount; i++) {
+            String tooltipToExcute = tooltip.replace("line", line).replace("errorType", errorType);
+            if (!"".equals(errorType)) {
+                webview.getEngine().executeScript(tooltipToExcute);
+            }
+        }
+
+    }
+
+    public void SetInfo(String line, final String errorType) {
+
+        final String tooltip = "editor.setMarker(line-1, \"<a id='error' title='errorType \"  +  \"'><img src='file://editorScriptPath/info.jpg'/></a>%N%\"); ".replace("editorScriptPath", editorScriptsPath+"/EditorScripts");
+        Integer lineCount = (Integer) webview.getEngine().executeScript("editor.lineCount();");
+        int i;
+        for (i = 1; i <= lineCount; i++) {
+            String tooltipToExcute = tooltip.replace("line", line).replace("errorType", errorType);
+            if (!"".equals(errorType)) {
+                webview.getEngine().executeScript(tooltipToExcute);
+            }
+        }
+
+    }
+
+    /**
+     * revert edits of the code to the last edit snapshot taken.
+     */
+    public void revertEdits() {
+        setCode(editingCode);
+    }
+
+    CodeEditorParams(String editingCode) {
+        this.editingCode = editingCode;
+        webview.getEngine().loadContent(applyEditingTemplate());
+        this.getChildren().add(webview);
+    }
+
+    public void contextMenu() {
+        contextMenu = new ContextMenu();
+        MenuItem myMenuItem = new MenuItem();
+        contextMenu.getItems().add(myMenuItem);
+    }
+}