adding TestON
diff --git a/TestON/TAI/src/tai_ofa/TAI_OFA.java b/TestON/TAI/src/tai_ofa/TAI_OFA.java
new file mode 100644
index 0000000..fc47b5b
--- /dev/null
+++ b/TestON/TAI/src/tai_ofa/TAI_OFA.java
@@ -0,0 +1,1326 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package tai_ofa;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javafx.application.Application;
+import javafx.application.Platform;
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.collections.ObservableList;
+import javafx.event.ActionEvent;
+import javafx.event.Event;
+import javafx.event.EventHandler;
+import javafx.geometry.Insets;
+import javafx.geometry.Orientation;
+import javafx.geometry.Pos;
+import javafx.scene.Group;
+import javafx.scene.Node;
+import javafx.scene.Scene;
+import javafx.scene.control.Accordion;
+import javafx.scene.control.Button;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.ComboBoxBuilder;
+import javafx.scene.control.ContextMenu;
+import javafx.scene.control.Label;
+import javafx.scene.control.Menu;
+import javafx.scene.control.MenuBar;
+import javafx.scene.control.MenuButton;
+import javafx.scene.control.MenuItem;
+import javafx.scene.control.Separator;
+import javafx.scene.control.SeparatorMenuItem;
+import javafx.scene.control.SplitPane;
+import javafx.scene.control.Tab;
+import javafx.scene.control.TabPane;
+import javafx.scene.control.TextArea;
+import javafx.scene.control.TextField;
+import javafx.scene.control.TextFieldBuilder;
+import javafx.scene.control.TitledPane;
+import javafx.scene.control.ToolBar;
+import javafx.scene.control.Tooltip;
+import javafx.scene.control.TreeCell;
+import javafx.scene.control.TreeItem;
+import javafx.scene.control.TreeView;
+import javafx.scene.effect.Effect;
+import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
+import javafx.scene.input.InputEvent;
+import javafx.scene.input.MouseButton;
+import javafx.scene.input.MouseEvent;
+import javafx.scene.layout.GridPane;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.Pane;
+import javafx.scene.layout.VBox;
+import javafx.scene.layout.VBoxBuilder;
+import javafx.scene.paint.Color;
+import javafx.scene.text.Font;
+import javafx.scene.text.FontWeight;
+import javafx.scene.text.Text;
+import javafx.stage.FileChooser;
+import javafx.stage.FileChooser.ExtensionFilter;
+import javafx.stage.Modality;
+import javafx.stage.Screen;
+import javafx.stage.Stage;
+import javafx.util.Callback;
+import javax.swing.JOptionPane;
+import javax.swing.SingleSelectionModel;
+
+/**
+ *
+ * @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 TAI_OFA extends Application {
+
+    MenuBar OFA_MenuBar = new MenuBar();
+    Scene scene;
+    TAILocale label = new TAILocale(new Locale("en", "EN"));
+    Stage copyStage;
+    double toolBarHeight, menuBarHeight;
+    ToolBar toolbar = new ToolBar();
+    TitledPane projectExplorer;
+    TitledPane logExlorer;
+    TitledPane driverExplorer;
+    TreeView<String> projectExplorerTreeView, logExplorerTreeView, driverExplorerTreeView;
+    TreeItem<String> driverExplorerTree;
+    static double OFAContainerWidth, OFAContainerHeight;
+    boolean projectExplorerFlag, editorFlag;
+    ContextMenu contextMenu;
+    TAI_OFA OFAReference;
+    TabPane explorerTabPane, editorTabPane;
+    FileChooser openParams;
+    OFAFileOperations fileOperation = new OFAFileOperations();
+    Tab explorerTab;
+    Accordion explorer;
+    TreeItem<String> projectExplorerTree, logExplorerTree;
+    OFAWizard wizard;
+    AddParams addParams;
+    String paramsFileContent, projectWorkSpacePath;
+    OFATestSummary testSummaryPop;
+    Button Save;
+    MenuItem saveAll;
+    MenuItem closeAll;
+
+    public TAI_OFA() {
+        OFAReference = this;
+
+    }
+
+    public TAI_OFA(TabPane pane, Scene sc, TabPane pane1) {
+        editorTabPane = pane;
+        scene = sc;
+        explorerTabPane = pane1;
+        OFAReference = this;
+    }
+
+    @Override
+    public void start(Stage primaryStage) {
+        copyStage = primaryStage;
+        Group root = new Group();
+
+        projectWorkSpacePath = label.hierarchyTestON;
+        scene = new Scene(root, 800, 600, Color.DARKGRAY);
+        VBox baseBox = new VBox();
+        getFileMenu();
+        getEditMenu();
+        getViewMenu();
+        getRunMenu();
+        getHelpMenu();
+        getToolBar();
+        OFA_MenuBar.setPrefWidth(scene.widthProperty().get());
+        toolbar.prefWidthProperty().bind(scene.widthProperty());
+        toolbar.setMinHeight(scene.heightProperty().get() / 20);;
+        toolBarHeight = toolbar.getMinHeight();
+        OFA_MenuBar.setPrefHeight(scene.heightProperty().get() / 20);
+        menuBarHeight = OFA_MenuBar.getPrefHeight();
+        explorerTabPane = new TabPane();
+        editorTabPane = new TabPane();
+        explorer = new Accordion();
+        explorerTab = new Tab("Explorer");
+        explorerTabPane.setLayoutX(0);
+        projectExplorerFlag = true;
+
+        getProjectExplorer();
+        getLogExplorer();
+        getDriverExplorer();
+        explorer.setMinSize(200, scene.getHeight() - 40);
+        explorer.getPanes().addAll(projectExplorer, logExlorer, driverExplorer);
+        explorerTabPane.prefHeightProperty().bind(scene.heightProperty());
+        explorerTabPane.setMinWidth(200);
+        explorerTab.setContent(explorer);
+        explorerTabPane.getTabs().addAll(explorerTab);
+        editorTabPane.setLayoutX(270);
+        final Pane basePane = new Pane();
+        explorerTabPane.prefHeightProperty().bind(scene.heightProperty().subtract(toolBarHeight + menuBarHeight + 1));
+        basePane.getChildren().addAll(explorerTabPane, new Separator(Orientation.VERTICAL), editorTabPane);
+        basePane.autosize();
+        baseBox.getChildren().addAll(OFA_MenuBar, toolbar, basePane);
+        baseBox.prefHeightProperty().bind(primaryStage.heightProperty());
+        OFAContainerWidth = scene.getWidth();
+        OFAContainerHeight = scene.getHeight();
+        root.getChildren().addAll(baseBox);
+        primaryStage.setTitle("TestON - Automation is O{pe}N");
+        primaryStage.setScene(scene);
+        primaryStage.setResizable(true);
+        primaryStage.sizeToScene();
+        primaryStage.show();
+    }
+
+    public void getFileMenu() {
+
+
+        //adding Menus 
+        Menu fileMenu = new Menu(label.fileMenu);
+
+        //adding File Menu
+        Image newImage = new Image("images/newIcon.jpg", 20.0, 20.0, true, true);
+        Image saveAllImage = new Image("images/saveAll.jpg", 20.0, 20.0, true, true);
+
+        Menu newFileMenu = new Menu("New", new ImageView(newImage));
+        MenuItem newTest = new MenuItem("New Test");
+        MenuItem componentDriver = new MenuItem(label.newDriver);
+        MenuItem newParams = new MenuItem(label.newParams);
+        MenuItem newTopology = new MenuItem(label.newTopology);
+        MenuItem testScript = new MenuItem(label.newTestScript);
+        newFileMenu.getItems().addAll(newTest, componentDriver, newParams, newTopology, testScript);
+
+
+        newTopology.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                try {
+                    wizard = new OFAWizard(projectExplorerTree, 3, projectExplorerTree.getChildren(), projectExplorerTreeView);
+                    wizard.setOFA(OFAReference);
+                    wizard.start(new Stage());
+
+                } catch (Exception ex) {
+                    Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+        });
+
+        newTest.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                wizard = new OFAWizard(projectExplorerTree, 1, projectExplorerTree.getChildren(), projectExplorerTreeView);
+                wizard.setOFA(OFAReference);
+                try {
+                    wizard.start(new Stage());
+                } catch (Exception ex) {
+                    Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+        });
+
+        newParams.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                addParams = new AddParams();
+                addParams.setOFA(OFAReference);
+                addParams.getNewParams();
+            }
+        });
+
+
+        Image openImage = new Image("images/open.png", 15.0, 15.0, true, true);
+        Menu open = new Menu(label.open, new ImageView(openImage));
+        MenuItem openParams = new MenuItem("Params");
+        Menu openTestScript = new Menu("Test Script");
+        MenuItem pyTest = new MenuItem("Python TestScript");
+        MenuItem ospkTest = new MenuItem("OpenSpeak TestScript");
+        openTestScript.getItems().addAll(pyTest, ospkTest);
+
+        MenuItem openTopology = new MenuItem("Topology");
+        MenuItem openDriver = new MenuItem("Driver");
+
+        open.getItems().addAll(openParams, openTopology, openTestScript, openDriver);
+
+        openParams.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                openFile("params", "");
+            }
+        });
+
+        ospkTest.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                openFile("ospk", "");
+            }
+        });
+
+
+        Image saveImage = new Image("images/Save_24x24.png", 15.0, 15.0, true, true);
+        MenuItem save = new MenuItem(label.save, new ImageView(saveImage));
+
+        MenuItem saveAs = new MenuItem(label.saveAs);
+        saveAll = new MenuItem(label.saveAll, new ImageView(saveAllImage));
+
+        Image exitImage = new Image("images/exit.gif", 15.0, 15.0, true, true);
+        MenuItem exit = new MenuItem(label.exit, new ImageView(exitImage));
+        exit.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                copyStage.close();
+            }
+        });
+        Image closeImage = new Image("images/close_icon2.jpg", 15.0, 15.0, true, true);
+        MenuItem close = new MenuItem(label.close, new ImageView(closeImage));
+        closeAll = new MenuItem(label.closeAll);
+        fileMenu.getItems().addAll(newFileMenu, open, save, saveAll, saveAs, new SeparatorMenuItem(), close, closeAll, new SeparatorMenuItem(), exit);
+
+        OFA_MenuBar.getMenus().addAll(fileMenu);
+    }
+
+    public void getProjectExplorer() {
+
+        projectWorkSpacePath = label.hierarchyTestON + "/tests/";
+        File[] file = File.listRoots();
+        Path name = new File(projectWorkSpacePath).toPath();
+        OFALoadTree treeNode = new OFALoadTree(name);
+
+        treeNode.setExpanded(true);
+        projectExplorerTree = treeNode;
+        for (int i = 0; i < treeNode.getChildren().size(); i++) {
+            if (treeNode.getChildren().get(i).getValue().equals("__init__")) {
+                treeNode.getChildren().remove(treeNode.getChildren().get(i));
+            }
+        }
+        projectExplorerTreeView = new TreeView<String>(treeNode);
+        VBox projectExpl = new VBox();
+        Button newTest = new Button("New Test");
+        projectExplorerTreeView.setMinHeight(scene.getHeight() - (40 + toolBarHeight + menuBarHeight));
+        projectExpl.getChildren().addAll(newTest, projectExplorerTreeView);
+        projectExplorer = new TitledPane("Project Explorer", projectExpl);
+        projectExplorer.setContent(projectExpl);
+
+        newTest.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                wizard = new OFAWizard(projectExplorerTree, 1, projectExplorerTree.getChildren(), projectExplorerTreeView);
+                wizard.setOFA(OFAReference);
+                try {
+                    wizard.start(new Stage());
+                } catch (Exception ex) {
+                    Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+        });
+
+        projectExplorerTreeView.setOnMouseClicked(new EventHandler<MouseEvent>() {
+            @Override
+            public void handle(MouseEvent arg0) {
+
+                if (arg0.getButton() == MouseButton.SECONDARY) {
+                    contextMenu();
+                    contextMenu.show(projectExplorerTreeView, arg0.getScreenX(), arg0.getScreenY());
+
+                } else if (arg0.getClickCount() == 2) {
+                    String path = "";
+                    TreeItem<String> selectedTreeItem = projectExplorerTreeView.getSelectionModel().getSelectedItem();
+                    try {
+
+                        path = label.hierarchyTestON + "/tests/" + selectedTreeItem.getParent().getValue().toString() + "/" + selectedTreeItem.getValue();
+                        if (selectedTreeItem.isLeaf()) {
+                            if (selectedTreeItem.getGraphic().getId().equals(".params")) {
+                                path = path + ".params";
+                            } else if (selectedTreeItem.getGraphic().getId().equals(".topo")) {
+                                path = path + ".topo";
+                            } else if (selectedTreeItem.getGraphic().getId().equals(".py")) {
+                                path = path + ".py";
+                            } else if (selectedTreeItem.getGraphic().getId().equals(".ospk")) {
+                                path = path + ".ospk";
+                            }
+                            String fileContent = fileOperation.getContents(new File(path));
+                            editorFlag = true;
+                            checkEditor();
+                            OFATabEditor(new CodeEditor(fileContent), new CodeEditorParams(fileContent), new File(path).getAbsolutePath(), "");
+                        } else if (!selectedTreeItem.isLeaf()) {
+                        }
+
+
+
+                    } catch (Exception e) {
+                    }
+                }
+            }
+        });
+
+        projectExplorerTreeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
+            @Override
+            public void changed(ObservableValue observable, Object oldValus, Object newValue) {
+                ObservableList<TreeItem<String>> tata = projectExplorerTreeView.getSelectionModel().getSelectedItems();
+
+                TreeItem treeItem = (TreeItem) newValue;
+            }
+        });
+
+
+        explorerTab.setOnClosed(new EventHandler<Event>() {
+            @Override
+            public void handle(Event closeEvent) {
+                explorerTabPane.setVisible(false);
+                projectExplorerFlag = false;
+                checkEditor();
+
+            }
+        });
+
+
+    }
+
+    public void loadLogExlporer() {
+        String projectWorkSpacePaths = label.hierarchyTestON + "/logs/";
+        File[] file = File.listRoots();
+        Path name = new File(projectWorkSpacePaths).toPath();
+        OFALoadTree treeNode = new OFALoadTree(name);
+        treeNode.setExpanded(true);
+        logExplorerTreeView = new TreeView<String>(treeNode);
+    }
+
+    public void getLogExplorer() {
+
+        loadLogExlporer();
+        VBox logExpl = new VBox();
+        logExplorerTreeView.setMinHeight(scene.getHeight() - (toolBarHeight + menuBarHeight + 20));
+        logExpl.getChildren().addAll(logExplorerTreeView);
+        logExlorer = new TitledPane("Log Explorer", logExpl);
+
+        VBox logExplore = new VBox();
+        Button refresh = new Button("refresh");
+        logExplorerTreeView.setMinHeight(scene.getHeight() - (40 + toolBarHeight + menuBarHeight));
+        logExplore.getChildren().addAll(refresh, logExplorerTreeView);
+        logExlorer.setContent(logExplore);
+
+        refresh.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                String projectWorkSpacePaths = label.hierarchyTestON + "/logs/";
+                File[] file = File.listRoots();
+                Path name = new File(projectWorkSpacePaths).toPath();
+                OFALoadTree treeNode = new OFALoadTree(name);
+                treeNode.setExpanded(true);
+
+                logExplorerTreeView.setRoot(treeNode);
+            }
+        });
+
+
+        logExplorerTreeView.setOnMouseClicked(new EventHandler<MouseEvent>() {
+            @Override
+            public void handle(MouseEvent click) {
+                if (click.getClickCount() == 2 && click.getButton() == MouseButton.PRIMARY) {
+                    TreeItem<String> selectedItem = logExplorerTreeView.getSelectionModel().getSelectedItem();
+                    String fileExtentsion = selectedItem.getGraphic().getId();
+                    String selectedFilePath = label.hierarchyTestON + "/logs/" + selectedItem.getParent().getValue() + "/" + selectedItem.getValue() + fileExtentsion;
+                    String fileContent = fileOperation.getContents(new File(selectedFilePath));
+                    editorFlag = true;
+
+                    checkEditor();
+                    OFATabEditor(new CodeEditor(fileContent), new CodeEditorParams(""), new File(selectedFilePath).getAbsolutePath(), "");
+                }
+            }
+        });
+    }
+
+    public void getDriverExplorer() {
+
+        projectWorkSpacePath = label.hierarchyTestON + "/drivers/common";
+
+        final Node rootIcon = new ImageView(new Image(getClass().getResourceAsStream("/images/project.jpeg"), 16, 16, true, true));
+        driverExplorerTree = new TreeItem<String>("Drivers");
+        File[] file = File.listRoots();
+
+        Path name = new File(projectWorkSpacePath).toPath();
+        OFALoadTree treeNode = new OFALoadTree(name);
+
+        driverExplorerTree.setExpanded(true);
+        //create the tree view
+        driverExplorerTreeView = new TreeView<String>(treeNode);
+        driverExplorer = new TitledPane("Driver Explorer", driverExplorerTreeView);
+
+        driverExplorer.prefHeight(scene.heightProperty().get());
+
+        VBox driverExpl = new VBox();
+        driverExpl.getChildren().addAll(new Button("New Driver"), driverExplorerTreeView);
+        driverExplorerTreeView.setShowRoot(false);
+        driverExplorerTreeView.setMinHeight(scene.getHeight() - (toolBarHeight + menuBarHeight + 50));
+
+        driverExplorer.setContent(driverExpl);
+        driverExplorer.prefHeight(scene.heightProperty().get());
+
+
+        ObservableList<TreeItem<String>> children = driverExplorerTree.getChildren();
+        Iterator<TreeItem<String>> tree = children.iterator();
+        while (tree.hasNext()) {
+            TreeItem<String> value = tree.next();
+            if (value.getValue().equals("common")) {
+                driverExplorerTreeView.setShowRoot(false);
+            }
+        }
+
+        driverExplorerTreeView.setOnMouseClicked(new EventHandler<MouseEvent>() {
+            @Override
+            public void handle(MouseEvent event) {
+
+                if (event.getClickCount() == 1 && event.getButton() == MouseButton.PRIMARY) {
+                    //final Node rootIcon = new ImageView(new Image(getClass().getResourceAsStream("/images/project.jpeg")));
+                    TreeItem<String> driverSelectedItem = driverExplorerTreeView.getSelectionModel().getSelectedItem();
+
+                    try {
+                        String[] splitSelectedDriver = driverSelectedItem.getValue().split("\\.");
+
+                        String path = null;
+                        TreeItem selectedTreeItem = driverSelectedItem.getParent();
+                        TreeItem selectedParentItem = selectedTreeItem.getParent();
+
+                        path = projectWorkSpacePath + "/" + driverSelectedItem.getParent().getParent().getValue() + "/" + driverSelectedItem.getParent().getValue()
+                                + "/" + driverSelectedItem.getValue() + ".py";
+
+                        if (driverSelectedItem.getParent().getValue().equals("emulator")) {
+                            path = projectWorkSpacePath + "/" + driverSelectedItem.getParent().getParent().getValue() + "/" + driverSelectedItem.getParent().getValue()
+                                    + "/" + driverSelectedItem.getValue() + ".py";
+                        } else if (driverSelectedItem.getParent().getValue().equals("api")) {
+                            path = projectWorkSpacePath + "/" + driverSelectedItem.getParent().getValue() + "/" + driverSelectedItem.getValue() + ".py";
+                        } else if (driverSelectedItem.getParent().getValue().equals("tool")) {
+                            path = projectWorkSpacePath + "/" + driverSelectedItem.getParent().getParent().getValue() + "/" + driverSelectedItem.getParent().getValue()
+                                    + "/" + driverSelectedItem.getValue() + ".py";
+                        } else if (driverSelectedItem.getParent().getValue().equals("cli")) {
+                            path = projectWorkSpacePath + "/" + driverSelectedItem.getParent().getValue() + "/" + driverSelectedItem.getValue() + ".py";
+                        }
+                        String fileContent = fileOperation.getContents(new File(path));
+                        projectExplorerFlag = true;
+                        checkEditor();
+                        OFATabEditor(new CodeEditor(fileContent), new CodeEditorParams(""), path, driverSelectedItem.getValue());
+
+
+                    } catch (Exception e) {
+                    }
+
+                }
+            }
+        });
+
+
+
+        driverExplorerTreeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
+            @Override
+            public void changed(ObservableValue observable, Object oldValus, Object newValue) {
+                ObservableList<TreeItem<String>> tata = projectExplorerTreeView.getSelectionModel().getSelectedItems();
+
+                TreeItem treeItem = (TreeItem) newValue;
+            }
+        });
+
+        driverExplorerTree.setExpanded(true);
+
+    }
+
+    public void contextMenu() {
+        contextMenu = new ContextMenu();
+        Image copyImage = new Image("images/Copy.png", 20.0, 20.0, true, true);
+        Image cutImage = new Image("images/Cut.png", 20.0, 20.0, true, true);
+        Image pasteImage = new Image("images/Paste.jpg", 20.0, 20.0, true, true);
+        Image deleteImage = new Image("images/delete.png", 20.0, 20.0, true, true);
+
+        Menu newContextMenu = new Menu(label.contextNew);
+        MenuItem scriptContextMenu = new MenuItem(label.contextTest);
+        newContextMenu.getItems().add(scriptContextMenu);
+        MenuItem openContextMenu = new MenuItem(label.contextOpen);
+        MenuItem cutContextMenu = new MenuItem(label.contextCut, new ImageView(cutImage));
+        MenuItem copyContextMenu = new MenuItem(label.contextCopy, new ImageView(copyImage));
+        MenuItem pasteContextMenu = new MenuItem(label.contextPaste, new ImageView(pasteImage));
+        MenuItem refreshContextMenu = new MenuItem(label.contextRefresh);
+        MenuItem deleteContextMenu = new MenuItem(label.contextDelete, new ImageView(deleteImage));
+
+        refreshContextMenu.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                refreshLogExplorer();
+            }
+        });
+
+        openContextMenu.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent args0) {
+                TreeItem<String> selectedTreeItem = projectExplorerTreeView.getSelectionModel().getSelectedItem();
+
+            }
+        });
+
+        contextMenu.getItems().addAll(newContextMenu, openContextMenu, cutContextMenu, copyContextMenu, pasteContextMenu, refreshContextMenu, deleteContextMenu);
+        projectExplorerTreeView.contextMenuProperty().setValue(contextMenu);
+        scriptContextMenu.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent arg0) {
+            }
+        });
+    }
+
+    public void getEditMenu() {
+        //adding Edit Menu
+        Image copyImage = new Image("images/Copy.png", 20.0, 20.0, true, true);
+        Image cutImage = new Image("images/Cut.png", 20.0, 20.0, true, true);
+        Image pasteImage = new Image("images/Paste.jpg", 20.0, 20.0, true, true);
+
+
+        Menu editMenu = new Menu(label.editMenu);
+        MenuItem cut = new MenuItem(label.cut, new ImageView(cutImage));
+        MenuItem copy = new MenuItem(label.copy, new ImageView(copyImage));
+        MenuItem paste = new MenuItem(label.paste, new ImageView(pasteImage));
+        MenuItem select = new MenuItem(label.select);
+        MenuItem selectAll = new MenuItem(label.selectAll);
+
+        editMenu.getItems().addAll(cut, copy, paste, select, selectAll);
+        OFA_MenuBar.getMenus().addAll(editMenu);
+
+
+    }
+
+    public void getViewMenu() {
+        //add View Menu
+        Menu viewMenu = new Menu(label.viewMenu);
+        MenuItem Explorer = new MenuItem("Explorer");
+        MenuItem commandOptions = new MenuItem("CommandLine Explorer");
+
+
+        viewMenu.getItems().addAll(Explorer, commandOptions);
+        OFA_MenuBar.getMenus().addAll(viewMenu);
+
+        Explorer.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+
+                explorerTab = new Tab("Explorer");
+                explorerTabPane.setLayoutX(0);
+                projectExplorerFlag = true;
+
+                explorerTab.setContent(explorer);
+
+                explorerTabPane.getTabs().addAll(explorerTab);
+                editorTabPane.setLayoutX(270);
+                explorerTabPane.setVisible(true);
+                projectExplorerFlag = true;
+
+
+                checkEditor();
+
+
+            }
+        });
+
+
+    }
+
+    public void getToolBar() {
+        Image newImage = new Image("images/newIcon.jpg", 20.0, 20.0, true, true);
+        MenuButton New = new MenuButton("", new ImageView(newImage));
+        New.setTooltip(new Tooltip("New"));
+        MenuItem newTest = new MenuItem("New Test");
+        MenuItem componentDriver = new MenuItem(label.newDriver);
+        MenuItem newParams = new MenuItem(label.newParams);
+        MenuItem newTopology = new MenuItem(label.newTopology);
+        MenuItem testScript = new MenuItem(label.newTestScript);
+
+        New.getItems().addAll(newTest, componentDriver, newParams, newTopology, testScript);
+        New.setMinWidth(2);
+
+        newTest.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                wizard = new OFAWizard(projectExplorerTree, 1, projectExplorerTree.getChildren(), projectExplorerTreeView);
+                wizard.setOFA(OFAReference);
+                try {
+                    wizard.start(new Stage());
+                } catch (Exception ex) {
+                    Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+        });
+
+
+        newParams.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent arg0) {
+                try {
+                    wizard = new OFAWizard(projectExplorerTree, 2, projectExplorerTree.getChildren(), projectExplorerTreeView);
+                    wizard.setOFA(OFAReference);
+                    wizard.start(new Stage());
+
+                } catch (Exception ex) {
+                    Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+        });
+
+        //Open Icon on Tool Bar
+        Image openImage = new Image("images/open.png", 20.0, 20.0, true, true);
+        MenuButton Open = new MenuButton("", new ImageView(openImage));
+        Open.setTooltip(new Tooltip("Open"));
+        MenuItem openComponentDriver = new MenuItem(label.newDriver);
+        MenuItem openParams = new MenuItem(label.newParams);
+        MenuItem openTopology = new MenuItem(label.newTopology);
+        MenuItem openTestScript = new MenuItem(label.newTestScript);
+
+        Open.getItems().addAll(openComponentDriver, openParams, openTopology, openTestScript);
+        Image saveImage = new Image("images/Save_24x24.png", 20.0, 20.0, true, true);
+        Save = new Button("", new ImageView(saveImage));
+        Save.setTooltip(new Tooltip("Save"));
+
+        Image configImage = new Image("images/project_1.jpeg", 20.0, 20.0, true, true);
+        Button configuration = new Button("", new ImageView(configImage));
+        configuration.setTooltip(new Tooltip("Run With ..."));
+
+        Image playImage = new Image("images/Play.png", 20.0, 20.0, true, true);
+        MenuButton play = new MenuButton("", new ImageView(playImage));
+        play.setTooltip(new Tooltip("Run"));
+
+        MenuItem run = new MenuItem("Run");
+        MenuItem runWithOptionButton = new MenuItem("Run With ...");
+
+        play.getItems().addAll(run, runWithOptionButton);
+        Image pauseImage = new Image("images/Pause.png", 20.0, 20.0, true, true);
+        Button pause = new Button("", new ImageView(pauseImage));
+        pause.setTooltip(new Tooltip("Pause"));
+
+        run.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                testSummaryPop = new OFATestSummary(OFAReference, copyStage);
+                testSummaryPop.start(new Stage());
+                Runnable firstRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                };
+                Runnable secondRunnable = new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            ExecuteTest testExecute = new ExecuteTest(testSummaryPop.getTable(), testSummaryPop.getData(), testSummaryPop.getChart(),
+                                    testSummaryPop.getFinalSummaryTable(), testSummaryPop.getFinalSummaryData(),
+                                    testSummaryPop.getVieLogsButton(), testSummaryPop.getpieChartData(),
+                                    testSummaryPop.getPassData(), testSummaryPop.getFailData(), testSummaryPop.getAbortData(),
+                                    testSummaryPop.getNoResultData(), editorTabPane.getSelectionModel().getSelectedItem().getText().substring(0, editorTabPane.getSelectionModel().getSelectedItem().getText().lastIndexOf('.')), testSummaryPop.getTextArea("log"), testSummaryPop.getStepTable(), testSummaryPop.getStepData(), testSummaryPop.getTextArea("pox"), testSummaryPop.getTextArea("mininet"), testSummaryPop.getTextArea("flowvisor"));
+
+                            testExecute.runTest();
+                        } catch (Exception iex) {
+                        }
+                    }
+                };
+
+                Platform.runLater(firstRunnable);
+                Platform.runLater(secondRunnable);
+            }
+        });
+
+
+        runWithOptionButton.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent t) {
+                OFATestParameters testParameter = new OFATestParameters(OFAReference);
+                testParameter.setProjectView(projectExplorerTreeView);
+                testParameter.setProjectList(projectExplorerTree.getChildren());
+                testParameter.start(new Stage());
+            }
+        });
+
+        Image stopImage = new Image("images/Stop.png", 20.0, 20.0, true, true);
+        Button stop = new Button("", new ImageView(stopImage));
+        stop.setTooltip(new Tooltip("Stop"));
+
+        Image resumeImage = new Image("images/Resume_1.png", 20.0, 20.0, true, true);
+        Button resume = new Button("", new ImageView(resumeImage));
+        resume.setTooltip(new Tooltip("Resume"));
+
+        Image copyImage = new Image("images/Copy.png", 20.0, 20.0, true, true);
+        Button copy = new Button("", new ImageView(copyImage));
+        copy.setTooltip(new Tooltip("Copy"));
+
+        Image cutImage = new Image("images/Cut.png", 20.0, 20.0, true, true);
+        Button cut = new Button("", new ImageView(cutImage));
+        cut.setTooltip(new Tooltip("Cut"));
+
+        Image pasteImage = new Image("images/Paste.jpg", 20.0, 20.0, true, true);
+        Button paste = new Button("", new ImageView(pasteImage));
+        paste.setTooltip(new Tooltip("Paste"));
+
+        Image exitImage = new Image("images/exit.gif", 20.0, 20.0, true, true);
+        Button exit = new Button("", new ImageView(exitImage));
+        exit.setTooltip(new Tooltip("Exit"));
+
+
+
+
+        toolbar.getItems().addAll(New, Open, Save, new Separator(Orientation.VERTICAL), cut, copy, paste, new Separator(Orientation.VERTICAL), configuration, play, pause, stop, resume, new Separator(Orientation.VERTICAL), exit);
+
+    }
+
+    public void getRunMenu() {
+        //adding Run Menu
+        Menu runMenu = new Menu(label.runMenu);
+        Image pauseImage = new Image("images/Pause.png", 20.0, 20.0, true, true);
+        Image playImage = new Image("images/Play.png", 20.0, 20.0, true, true);
+        Image stopImage = new Image("images/Stop.png", 20.0, 20.0, true, true);
+        Image configImage = new Image("images/Settings.jpg", 20.0, 20.0, true, true);
+        Image resumeImage = new Image("images/Resume_1.png", 20.0, 20.0, true, true);
+
+
+        MenuItem run = new MenuItem(label.runMenu, new ImageView(playImage));
+        MenuItem pause = new MenuItem(label.pauseTest, new ImageView(pauseImage));
+        MenuItem resume = new MenuItem(label.resumeTest, new ImageView(resumeImage));
+        MenuItem stop = new MenuItem(label.stopTest, new ImageView(stopImage));
+        MenuItem config = new MenuItem("Settings", new ImageView(configImage));
+
+        runMenu.getItems().addAll(run, pause, resume, stop, new SeparatorMenuItem(), config);
+        OFA_MenuBar.getMenus().addAll(runMenu);
+    }
+
+    public void getHelpMenu() {
+        //adding Help Menu
+        Menu helpMenu = new Menu(label.helpMenu);
+        MenuItem about = new MenuItem(label.aboutHelp);
+        MenuItem help = new MenuItem(label.helpMenu);
+
+        helpMenu.getItems().addAll(about, help);
+        OFA_MenuBar.getMenus().addAll(helpMenu);
+    }
+
+    public void OFATabEditor(final CodeEditor Content, final CodeEditorParams ContentParams, final String title, String str) {
+        //saveFileItem.setDisable(false);
+        ContentParams.setOFA(OFAReference);
+
+        final Tab editorTab = new Tab();
+        final File fileName;
+        ObservableList<Tab> allTab = editorTabPane.getTabs();
+        if (allTab.isEmpty()) {
+            String fname = "";
+            String ext = "";
+            int mid = title.lastIndexOf(".");
+            fname = title.substring(0, mid);
+            ext = title.substring(mid + 1, title.length());
+
+            if ("params".equals(ext) || "topo".equals(ext)) {
+
+                ContentParams.prefWidthProperty().bind(scene.widthProperty().subtract(270));
+
+                fileName = new File(title);
+                editorTab.setText(fileName.getName());
+                editorTab.setContent(ContentParams);
+                editorTab.setId(title);
+                String currentTab1 = editorTab.getId();
+
+                editorTabPane.getTabs().add(editorTab);
+
+                javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                selectionModel.select(editorTab);
+                ContentParams.setOnKeyReleased(new EventHandler<InputEvent>() {
+                    @Override
+                    public void handle(InputEvent arg0) {
+                        javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                        String currentTab1 = selectionModel.getSelectedItem().getId();
+                        String currentTabTitle = selectionModel.getSelectedItem().getText();
+                        if (fileName.getName().equals(currentTabTitle)) {
+                            selectionModel.getSelectedItem().setText("* " + currentTabTitle);
+                            Save.setOnAction(new EventHandler<ActionEvent>() {
+                                @Override
+                                public void handle(ActionEvent arg0) {
+
+                                    javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                                    String currentTab1 = selectionModel.getSelectedItem().getId();
+                                    selectionModel.getSelectedItem().setText(fileName.getName());
+                                    String currentFileContent = ContentParams.getCodeAndSnapshot();
+
+                                    try {
+
+                                        ArrayList<String> textContent = new ArrayList<String>();
+                                        String textAreaCon = ContentParams.getCodeAndSnapshot();
+
+                                        String[] textAreaContent = textAreaCon.split("\n");
+
+                                        for (String string : textAreaContent) {
+                                            textContent.add(string);
+                                        }
+
+                                        HashMap errorHash = new HashMap();
+                                        fileOperation.saveFile(fileName, currentFileContent);
+                                    } catch (FileNotFoundException ex) {
+                                        Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                    } catch (IOException ex) {
+                                        Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                    }
+
+                                }
+                            });
+                        } else {
+                        }
+                    }
+                });
+
+            } else {
+                fileName = new File(title);
+
+                editorTab.setText(fileName.getName());
+                editorTab.setId(title);
+                Content.prefWidthProperty().bind(scene.widthProperty());
+                editorTab.setContent(Content);
+                String currentTab = editorTab.getId();
+
+                editorTabPane.getTabs().addAll(editorTab);
+
+                javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                selectionModel.select(editorTab);
+                Content.setOnKeyReleased(new EventHandler<InputEvent>() {
+                    @Override
+                    public void handle(InputEvent arg0) {
+                        javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                        String currentTab = selectionModel.getSelectedItem().getId();
+                        File file = new File(currentTab);
+
+                        String currentTabTitle = selectionModel.getSelectedItem().getText();
+
+
+                        if (file.getName().equals(currentTabTitle)) {
+                            selectionModel.getSelectedItem().setText("* " + currentTabTitle);
+                            Save.setOnAction(new EventHandler<ActionEvent>() {
+                                @Override
+                                public void handle(ActionEvent arg0) {
+                                    javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                                    String currentTab = selectionModel.getSelectedItem().getId();
+                                    File file = new File(currentTab);
+                                    selectionModel.getSelectedItem().setText(file.getName());
+                                    File fileName = new File(currentTab);
+                                    String currentFileContent = Content.getCodeAndSnapshot();
+                                    try {
+                                        fileOperation.saveFile(fileName, currentFileContent);
+                                    } catch (FileNotFoundException ex) {
+                                        Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                    } catch (IOException ex) {
+                                        Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                    }
+
+                                }
+                            });
+                        } else {
+                        }
+
+                    }
+                });
+
+                File path = new File(OFAReference.editorTabPane.getSelectionModel().getSelectedItem().getId());
+                String[] currentFileExtintion = path.getName().split("\\.");
+                if (currentFileExtintion[1].equals("ospk")) {
+                    OFAContentHelp contentHelp = new OFAContentHelp(Content, OFAReference);
+                    contentHelp.ospkHelp();
+                }
+            }
+        } else {
+            boolean tabexistsFlag = false;
+            for (Tab tab : allTab) {
+                if (tab.getId().equals(title)) {
+                    javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                    selectionModel.select(tab);
+                    tabexistsFlag = true;
+                    break;
+                } else {
+                }
+            }
+            if (tabexistsFlag == false) {
+
+                String fname = "";
+                String ext = "";
+                int mid = title.lastIndexOf(".");
+                fname = title.substring(0, mid);
+                ext = title.substring(mid + 1, title.length());
+
+                if ("params".equals(ext) || "topo".equals(ext)) {
+
+                    ContentParams.prefWidthProperty().bind(scene.widthProperty().subtract(500));
+
+                    fileName = new File(title);
+                    editorTab.setText(fileName.getName());
+                    editorTab.setContent(ContentParams);
+                    editorTab.setId(title);
+                    String currentTab1 = editorTab.getId();
+                    editorTabPane.getTabs().add(editorTab);
+
+                    javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                    selectionModel.select(editorTab);
+
+                    ContentParams.setOnKeyReleased(new EventHandler<InputEvent>() {
+                        @Override
+                        public void handle(InputEvent arg0) {
+                            javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                            String currentTab1 = selectionModel.getSelectedItem().getId();
+
+                            String currentTabTitle = selectionModel.getSelectedItem().getText();
+
+                            if (fileName.getName().equals(currentTabTitle)) {
+                                selectionModel.getSelectedItem().setText("* " + currentTabTitle);
+                                Save.setOnAction(new EventHandler<ActionEvent>() {
+                                    @Override
+                                    public void handle(ActionEvent arg0) {
+
+                                        javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                                        String currentTab1 = selectionModel.getSelectedItem().getId();
+
+                                        selectionModel.getSelectedItem().setText(fileName.getName());
+                                        String currentFileContent = ContentParams.getCodeAndSnapshot();
+                                        try {
+                                            fileOperation.saveFile(fileName, currentFileContent);
+                                        } catch (FileNotFoundException ex) {
+                                            Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                        } catch (IOException ex) {
+                                            Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                        }
+
+                                    }
+                                });
+                            } else {
+                            }
+                        }
+                    });
+                } else {
+                    fileName = new File(title);
+
+                    editorTab.setText(fileName.getName());
+                    editorTab.setId(title);
+                    Content.prefWidthProperty().bind(scene.widthProperty());
+                    editorTab.setContent(Content);
+                    String currentTab = editorTab.getId();
+
+                    editorTabPane.getTabs().addAll(editorTab);
+                    javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                    selectionModel.select(editorTab);
+
+                    Content.setOnKeyReleased(new EventHandler<InputEvent>() {
+                        @Override
+                        public void handle(InputEvent arg0) {
+                            javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                            String currentTab = selectionModel.getSelectedItem().getId();
+                            File file = new File(currentTab);
+
+                            String currentTabTitle = selectionModel.getSelectedItem().getText();
+
+
+                            if (file.getName().equals(currentTabTitle)) {
+                                selectionModel.getSelectedItem().setText("* " + currentTabTitle);
+                                Save.setOnAction(new EventHandler<ActionEvent>() {
+                                    @Override
+                                    public void handle(ActionEvent arg0) {
+                                        javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                                        String currentTab = selectionModel.getSelectedItem().getId();
+                                        File file = new File(currentTab);
+                                        selectionModel.getSelectedItem().setText(file.getName());
+                                        File fileName = new File(currentTab);
+                                        String currentFileContent = Content.getCodeAndSnapshot();
+                                        try {
+                                            fileOperation.saveFile(fileName, currentFileContent);
+                                        } catch (FileNotFoundException ex) {
+                                            Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                        } catch (IOException ex) {
+                                            Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                                        }
+
+                                    }
+                                });
+                            } else {
+                            }
+
+                        }
+                    });
+
+                    File path = new File(OFAReference.editorTabPane.getSelectionModel().getSelectedItem().getId());
+                    String[] currentFileExtintion = path.getName().split("\\.");
+                    if (currentFileExtintion[1].equals("ospk")) {
+                        OFAContentHelp contentHelp = new OFAContentHelp(Content, OFAReference);
+                        contentHelp.ospkHelp();
+                    }
+                }
+            }
+        }
+
+        editorTab.setOnSelectionChanged(new EventHandler<Event>() {
+            @Override
+            public void handle(Event arg0) {
+
+                String currentTab = editorTab.getId();
+                String fname = "";
+                String ext = "";
+                int mid = currentTab.lastIndexOf(".");
+                fname = currentTab.substring(0, mid);
+                try {
+                } catch (ArrayIndexOutOfBoundsException e) {
+                }
+
+
+
+                final File fileName;
+                if ("params".equals(ext) || "topo".equals(ext)) {
+
+
+                    Save.setOnAction(new EventHandler<ActionEvent>() {
+                        @Override
+                        public void handle(ActionEvent arg0) {
+                            javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                            String currentTab = selectionModel.getSelectedItem().getId();
+                            File file = new File(currentTab);
+                            selectionModel.getSelectedItem().setText(file.getName());
+                            File fileName = new File(currentTab);
+                            String currentFileContent = ContentParams.getCodeAndSnapshot();
+                            try {
+                                fileOperation.saveFile(fileName, currentFileContent);
+                            } catch (FileNotFoundException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            } catch (IOException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            }
+
+                        }
+                    });
+
+                } else {
+
+                    Save.setOnAction(new EventHandler<ActionEvent>() {
+                        @Override
+                        public void handle(ActionEvent arg0) {
+
+                            javafx.scene.control.SingleSelectionModel<Tab> selectionModel = editorTabPane.getSelectionModel();
+                            String currentTab = selectionModel.getSelectedItem().getId();
+                            File file = new File(currentTab);
+                            selectionModel.getSelectedItem().setText(file.getName());
+                            File fileName = new File(currentTab);
+                            String currentFileContent = Content.getCodeAndSnapshot();
+                            try {
+                                fileOperation.saveFile(fileName, currentFileContent);
+                            } catch (FileNotFoundException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            } catch (IOException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            }
+
+                        }
+                    });
+                }
+            }
+        });
+
+        //SaveAll Option in file menu click event
+
+        saveAll.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent arg0) {
+
+                ObservableList<Tab> allTab = editorTabPane.getTabs();
+                javafx.scene.control.SingleSelectionModel<Tab> selectedItemToGetBack = editorTabPane.getSelectionModel();
+                Tab selectedTabBeforeSaveAll = selectedItemToGetBack.getSelectedItem();
+                for (Tab tab : allTab) {
+                    javafx.scene.control.SingleSelectionModel<Tab> selectedItem = editorTabPane.getSelectionModel();
+
+                    selectedItem.select(tab);
+                    String currentTab = tab.getId();
+                    String fname = "";
+                    String ext = "";
+                    int mid = currentTab.lastIndexOf(".");
+                    fname = currentTab.substring(0, mid);
+                    ext = currentTab.substring(mid + 1, currentTab.length());
+                    final File fileName;
+                    String checkModifier = selectedItem.getSelectedItem().getText();
+                    File exactPath = new File(currentTab);
+                    String properName = exactPath.getName();
+                    if (!checkModifier.equals(properName)) {
+
+                        if ("params".equals(ext) || "topo".equals(ext)) {
+                            javafx.scene.control.SingleSelectionModel<Tab> selectedItem1 = editorTabPane.getSelectionModel();
+                            String currentTab1 = tab.getId();
+                            File file = new File(currentTab1);
+
+                            File fileName1 = new File(currentTab1);
+                            selectedItem1.getSelectedItem().setText(fileName1.getName());
+                            String currentFileContent = ((CodeEditorParams) tab.getContent()).getCodeAndSnapshot();
+                            try {
+                                fileOperation.saveFile(fileName1, currentFileContent);
+                            } catch (FileNotFoundException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            } catch (IOException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            }
+
+
+                        } else {
+                            javafx.scene.control.SingleSelectionModel<Tab> selectedItem1 = editorTabPane.getSelectionModel();
+                            String currentTab2 = tab.getId();
+
+                            File fileName2 = new File(currentTab2);
+                            selectedItem1.getSelectedItem().setText(fileName2.getName());
+                            String currentFileContent = ((CodeEditor) tab.getContent()).getCodeAndSnapshot();
+                            try {
+                                fileOperation.saveFile(fileName2, currentFileContent);
+                            } catch (FileNotFoundException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            } catch (IOException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            }
+
+                        }
+
+                    }
+                }
+                selectedItemToGetBack.select(selectedTabBeforeSaveAll);
+            }
+        });
+
+        editorTab.setOnClosed(new EventHandler<Event>() {
+            @Override
+            public void handle(Event arg0) {
+                javafx.scene.control.SingleSelectionModel<Tab> selectedItem1 = editorTabPane.getSelectionModel();
+                String fileName = editorTab.getId();
+                String tabName = editorTab.getText();
+                File tabIdentity = new File(fileName);
+                String properName = tabIdentity.getName();
+                if (!properName.equals(tabName)) {
+                    int optionPressed = JOptionPane.showConfirmDialog(null, "Would you like to save the content of this tab\n");
+                    if (optionPressed == 0) {
+                        String extension = fileOperation.getExtension(editorTab.getText());
+                        if ("params".equals(extension) || "topo".equals(extension)) {
+                            try {
+                                String tabContent = ((CodeEditorParams) editorTab.getContent()).getCodeAndSnapshot();
+                                fileOperation.saveFile(tabIdentity, tabContent);
+                            } catch (FileNotFoundException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            } catch (IOException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            }
+                        } else {
+                            try {
+                                String tabContent1 = ((CodeEditor) editorTab.getContent()).getCodeAndSnapshot();
+                                fileOperation.saveFile(tabIdentity, tabContent1);
+                            } catch (FileNotFoundException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            } catch (IOException ex) {
+                                Logger.getLogger(TAI_OFA.class.getName()).log(Level.SEVERE, null, ex);
+                            }
+                        }
+                    }
+                }
+
+            }
+        });
+
+        closeAll.setOnAction(new EventHandler<ActionEvent>() {
+            @Override
+            public void handle(ActionEvent arg0) {
+                Stage dialogStage = new Stage();
+                dialogStage.initModality(Modality.NONE);
+                dialogStage.setScene(new Scene(VBoxBuilder.create().
+                        children(new Text("Yes"), new Button("No")).
+                        alignment(Pos.CENTER).padding(new Insets(5)).build()));
+                dialogStage.show();
+
+
+            }
+        });
+
+    }
+
+    public void openFile(String extension, String extension2) {
+        File selected;
+        String fileContent = "";
+        openParams = new FileChooser();
+        if ("".equals(extension2)) {
+            openParams.getExtensionFilters().add(new ExtensionFilter("Display  only (*." + extension + ") files", "*." + extension));
+        } else {
+            openParams.getExtensionFilters().add(new ExtensionFilter("Display  only (*." + extension + ")" + "files", "*." + extension));
+            openParams.getExtensionFilters().add(new ExtensionFilter("Display  only (*." + extension2 + ") files", "*." + extension2));
+        }
+        selected = openParams.showOpenDialog(contextMenu);
+        try {
+            fileContent = fileOperation.getContents(selected);
+            checkEditor();
+            String filename = selected.getName();
+            checkEditor();
+            OFATabEditor(new CodeEditor(fileContent), new CodeEditorParams(fileContent), selected.getAbsolutePath(), "");
+        } catch (Exception e) {
+        }
+
+        editorTabPane.prefWidthProperty().bind(scene.widthProperty().subtract(200));
+    }
+
+    public void checkEditor() {
+        if (projectExplorerFlag == false && editorFlag == false) {
+            editorFlag = true;
+            editorTabPane.prefHeightProperty().bind(scene.heightProperty().subtract(40));
+            editorTabPane.setLayoutX(explorerTabPane.getLayoutX());
+            editorTabPane.setMaxWidth(OFAContainerWidth);
+        } else if (projectExplorerFlag == true && editorFlag == false) {
+            editorFlag = true;
+            editorTabPane.setLayoutX(explorerTabPane.getLayoutX() + explorerTabPane.getWidth());
+            editorTabPane.prefHeightProperty().bind(scene.heightProperty().subtract(65));
+            editorTabPane.prefWidthProperty().bind(scene.widthProperty().subtract(250));
+
+        } else if (editorFlag == true && projectExplorerFlag == false) {
+            editorTabPane.setLayoutX(explorerTabPane.getLayoutX());
+            editorTabPane.prefHeightProperty().bind(scene.heightProperty().subtract(65));
+            editorTabPane.prefWidthProperty().bind(scene.widthProperty());
+        } else if (editorFlag == true && projectExplorerFlag == true) {
+            editorTabPane.prefHeightProperty().bind(scene.heightProperty().subtract(65));
+            editorTabPane.prefWidthProperty().bind(scene.widthProperty().subtract(explorerTabPane.getWidth()));
+            editorTabPane.setLayoutX(explorerTabPane.getLayoutX() + explorerTabPane.getWidth());
+        }
+
+    }
+
+    public void refreshLogExplorer() {
+
+
+        String projectWorkSpacePaths = label.hierarchyTestON + "/logs/";
+        File[] file = File.listRoots();
+        Path name = new File(projectWorkSpacePaths).toPath();
+        OFALoadTree treeNode = new OFALoadTree(name);
+        treeNode.setExpanded(true);
+
+
+    }
+
+    /**
+     *
+     * @param args the command line arguments
+     */
+    public static void main(String[] args) {
+        launch(args);
+    }
+}