adding TestON
diff --git a/TestON/TAI/src/tai_ofa/AddParams.java b/TestON/TAI/src/tai_ofa/AddParams.java
new file mode 100644
index 0000000..8d35046
--- /dev/null
+++ b/TestON/TAI/src/tai_ofa/AddParams.java
@@ -0,0 +1,435 @@
+/*
+
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package tai_ofa;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Observable;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javafx.beans.property.SimpleStringProperty;
+import javafx.collections.FXCollections;
+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.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.SplitPane;
+import javafx.scene.control.Tab;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.TableColumn.CellEditEvent;
+import javafx.scene.control.TableView;
+import javafx.scene.control.TextField;
+import javafx.scene.control.TextFieldBuilder;
+import javafx.scene.control.TreeItem;
+import javafx.scene.control.TreeView;
+import javafx.scene.control.cell.PropertyValueFactory;
+import javafx.scene.control.cell.TextFieldTableCell;
+import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
+import javafx.scene.input.KeyEvent;
+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.paint.Color;
+import javafx.scene.text.Font;
+import javafx.scene.text.Text;
+import javafx.stage.Stage;
+
+/**
+ *
+ * @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 AddParams {
+
+ TAI_OFA referenceOFA;
+ boolean splitFlag = false;
+ Map<String, Object> paramsHash;
+ TreeView<String> paramsTreeView;
+ TextField Value, tableAttrib, tableValue;
+ TableView<ParamsAttribute> attributeTable;
+ ObservableList<ParamsAttribute> data;
+ Button save, Cancel, edit, add, saveParams;
+ HBox buttonBox, tableViewBox, baseLeftPane;
+ VBox box, buttonTableVBox;
+ GridPane buttonBoxPane, baseRightPane;
+ TreeItem<String> params;
+ Pane tableViewPane;
+ Text Heading;
+ String tabValue, tabs;
+ OFAWizard wizard;
+ OFAFileOperations fileOperations;
+ Tab baseTab;
+ Button delete;
+
+ public void setOFA(TAI_OFA ofa) {
+ this.referenceOFA = ofa;
+ }
+
+ public void getNewParams() {
+ baseTab = new Tab();
+ paramsHash = new HashMap<String, Object>();
+ fileOperations = new OFAFileOperations();
+ final SplitPane basePane = new SplitPane();
+ basePane.setOrientation(Orientation.HORIZONTAL);
+ baseLeftPane = new HBox(30);
+ params = new TreeItem<String>();
+ params.setValue("params");
+ TreeItem<String> log_dir = new TreeItem<String>();
+ log_dir.setValue("log_dir");
+ ImageView logIView = new ImageView(new Image("images/parameter.jpg", 20, 20, true, true));
+ logIView.setId("/home/paxterra/");
+ log_dir.setGraphic(logIView);
+ TreeItem<String> mail = new TreeItem<String>();
+ mail.setValue("mail");
+ ImageView mailIView = new ImageView(new Image("images/parameter.jpg", 20, 20, true, true));
+ mailIView.setId("raghavkashyap@paxterrasolution.com");
+ mail.setGraphic(mailIView);
+ TreeItem<String> testcases = new TreeItem<String>();
+ testcases.setValue("testcases");
+ ImageView testIView = new ImageView(new Image("images/parameter.jpg", 20, 20, true, true));
+ testIView.setId("1");
+ testcases.setGraphic(testIView);
+ data = FXCollections.observableArrayList();
+ params.getChildren().addAll(testcases, mail, log_dir);
+ paramsTreeView = new TreeView<String>(params);
+ saveParams = new Button("Save");
+ delete = new Button("Delete");
+ baseLeftPane.getChildren().addAll(paramsTreeView, saveParams, delete);
+ baseRightPane = new GridPane();
+ Value = TextFieldBuilder.create().build();
+ delete.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent t) {
+ removeParamsValue(paramsTreeView.getSelectionModel().getSelectedItem());
+ }
+ });
+
+ saveParams.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent t) {
+ tabs = getParams(params);
+ referenceOFA.paramsFileContent = tabs;
+ wizard = new OFAWizard(referenceOFA.projectExplorerTree, 2, referenceOFA.projectExplorerTree.getChildren(), referenceOFA.projectExplorerTreeView);
+ wizard.setOFA(referenceOFA);
+ try {
+ wizard.start(new Stage());
+ } catch (Exception ex) {
+ Logger.getLogger(AddParams.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ }
+ });
+ save = new Button("Save");
+ Cancel = new Button("Cancel");
+ edit = new Button("Edit");
+ attributeTable = new TableView<ParamsAttribute>();
+ attributeTable.setEditable(true);
+ TableColumn attribColumn = new TableColumn("Attribute");
+ attribColumn.setCellValueFactory(new PropertyValueFactory<ParamsAttribute, String>("Attribute"));
+ TableColumn valueColumn = new TableColumn("Value");
+ valueColumn.setCellValueFactory(new PropertyValueFactory<ParamsAttribute, String>("Values"));
+ attributeTable.setItems(data);
+ attributeTable.getColumns().addAll(attribColumn, valueColumn);
+ baseRightPane.setPadding(new Insets(30, 0, 10, 30));
+ baseRightPane.prefHeight(referenceOFA.scene.heightProperty().get());
+ baseRightPane.setVgap(9);
+ baseRightPane.add(new Label("Value :"), 4, 4);
+ baseRightPane.add(Value, 5, 4);
+ box = new VBox();
+ buttonBox = new HBox();
+ buttonBoxPane = new GridPane();
+ buttonBoxPane.setPadding(new Insets(30, 0, 10, 30));
+ buttonBoxPane.setHgap(3);
+ buttonBoxPane.add(save, 2, 7);
+ buttonBoxPane.add(Cancel, 4, 7);
+ buttonBoxPane.add(edit, 6, 7);
+ buttonBox.getChildren().addAll(buttonBoxPane);
+ tableAttrib = TextFieldBuilder.create().build();
+ tableValue = TextFieldBuilder.create().build();
+ add = new Button("Add");
+ tableViewPane = new Pane();
+ buttonTableVBox = new VBox();
+ tableViewBox = new HBox();
+ tableViewBox.getChildren().addAll(tableAttrib, tableValue, add);
+ buttonTableVBox.getChildren().addAll(attributeTable);
+ box.getChildren().addAll(baseRightPane, buttonTableVBox, buttonBoxPane);
+
+ attributeTable.setEditable(true);
+ attribColumn.setCellFactory(TextFieldTableCell.forTableColumn());
+ attribColumn.setOnEditCommit(new EventHandler<CellEditEvent<ParamsAttribute, String>>() {
+ @Override
+ public void handle(CellEditEvent<ParamsAttribute, String> t) {
+
+ for (int i = 0; i < paramsTreeView.getSelectionModel().getSelectedItem().getChildren().size(); i++) {
+
+ if (paramsTreeView.getSelectionModel().getSelectedItem().getChildren().get(i).getValue().equals(t.getOldValue())) {
+ paramsTreeView.getSelectionModel().getSelectedItem().getChildren().get(i).setValue(t.getNewValue());
+ }
+ }
+ ((ParamsAttribute) t.getTableView().getItems().get(
+ t.getTablePosition().getRow())).setAttribute(t.getNewValue());
+
+ }
+ });
+
+ valueColumn.setCellFactory(TextFieldTableCell.forTableColumn());
+ valueColumn.setOnEditCommit(new EventHandler<CellEditEvent<ParamsAttribute, String>>() {
+ @Override
+ public void handle(CellEditEvent<ParamsAttribute, String> t) {
+ for (int i = 0; i < paramsTreeView.getSelectionModel().getSelectedItem().getChildren().size(); i++) {
+ if (paramsTreeView.getSelectionModel().getSelectedItem().getChildren().get(i).getValue().equals(t.getOldValue())) {
+ paramsTreeView.getSelectionModel().getSelectedItem().getChildren().get(i).getGraphic().setId(t.getNewValue());
+ }
+ }
+ ((ParamsAttribute) t.getTableView().getItems().get(
+ t.getTablePosition().getRow())).setValues(t.getNewValue());
+ }
+ });
+
+ Value.setOnKeyReleased(new EventHandler<KeyEvent>() {
+ @Override
+ public void handle(KeyEvent t) {
+ if (Value.getText().isEmpty()) {
+ edit.setDisable(false);
+ } else {
+ edit.setDisable(true);
+ }
+ }
+ });
+
+ Cancel.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent t) {
+ basePane.getItems().removeAll(box);
+ splitFlag = false;
+ baseRightPane.getChildren().remove(Heading);
+ edit.setDisable(false);
+ }
+ });
+
+ save.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent t) {
+ String selected = paramsTreeView.getSelectionModel().getSelectedItem().getValue();
+ TreeItem<String> selectedTreeItem = paramsTreeView.getSelectionModel().getSelectedItem();
+ String attribVal = Value.getText();
+ basePane.getItems().removeAll(box);
+ splitFlag = false;
+ Map<String, Object> prevParent = new HashMap<String, Object>();
+ ArrayList<String> names = new ArrayList<String>();
+ if (!edit.isDisabled()) {
+ for (int i = 0; i < attributeTable.getItems().size(); i++) {
+ ParamsAttribute table = attributeTable.getItems().get(i);
+ if (selectedTreeItem.getChildren().size() == 0) {
+ TreeItem<String> childNode = new TreeItem<String>();
+ childNode.setValue(table.getAttribute());
+ selectedTreeItem.getChildren().add(childNode);
+ selectedTreeItem.setExpanded(true);
+ Image chidlImage = new Image("images/parameter.jpg", 20, 20, true, true);
+ ImageView childImageView = new ImageView();
+ childImageView.setImage(chidlImage);
+ childImageView.setId(table.getValues());
+ childNode.setGraphic(childImageView);
+ } else if (selectedTreeItem.getChildren().size() > 0) {
+ names.clear();
+ for (int index = 0; index < selectedTreeItem.getChildren().size(); index++) {
+ names.add(selectedTreeItem.getChildren().get(index).getValue());
+ }
+ if (!names.contains(table.getAttribute())) {
+ TreeItem<String> childNode = new TreeItem<String>();
+ childNode.setValue(table.getAttribute());
+ selectedTreeItem.getChildren().addAll(childNode);
+ selectedTreeItem.setExpanded(true);
+ Image chidlImage = new Image("images/parameter.jpg", 20, 20, true, true);
+ ImageView childImageView = new ImageView();
+ childImageView.setImage(chidlImage);
+ childImageView.setId(table.getValues());
+ childNode.setGraphic(childImageView);
+ }
+ }
+ }
+ } else {
+ TreeItem<String> selectTreeItem = paramsTreeView.getSelectionModel().getSelectedItem();
+ if (!Value.getText().isEmpty()) {
+ paramsTreeView.getSelectionModel().getSelectedItem().getGraphic().setId(Value.getText());
+ }
+ }
+ baseRightPane.getChildren().remove(Heading);
+ buttonTableVBox.getChildren().removeAll(tableViewBox);
+ Value.clear();
+ }
+ });
+
+ add.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent t) {
+
+ if (tableAttrib.getText().isEmpty() && tableValue.getText().isEmpty()) {
+ } else {
+ data.add(new ParamsAttribute(tableAttrib.getText(), tableValue.getText()));
+ tableAttrib.clear();
+ tableValue.clear();
+ }
+ }
+ });
+
+
+ edit.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent t) {
+
+ buttonTableVBox.getChildren().addAll(tableViewBox);
+
+ Value.setEditable(false);
+
+ }
+ });
+
+ basePane.getItems().addAll(baseLeftPane);
+ paramsTreeView.setOnMouseClicked(new EventHandler<MouseEvent>() {
+ @Override
+ public void handle(MouseEvent args0) {
+ String selected = paramsTreeView.getSelectionModel().getSelectedItem().getValue();
+ TreeItem<String> selectItem = paramsTreeView.getSelectionModel().getSelectedItem();
+ if (args0.getClickCount() == 2 & !splitFlag) {
+ Value.setEditable(true);
+ Heading = new Text(selected);
+ Heading.setFont(Font.font("Arial", 20));
+ Heading.setFill(Color.BLUE);
+ baseRightPane.add(Heading, 6, 1);
+
+ if (selectItem.isLeaf()) {
+ Value.setDisable(false);
+ if (!selectItem.getGraphic().getId().equals("")) {
+ basePane.getItems().addAll(box);
+ splitFlag = true;
+ Value.setText(selectItem.getGraphic().getId());
+ edit.setDisable(true);
+ data.clear();
+ } else {
+ basePane.getItems().addAll(box);
+ splitFlag = true;
+ Value.clear();
+ edit.setDisable(false);
+ data.clear();
+ }
+ } else if (!selectItem.isLeaf()) {
+ Value.clear();
+ Value.setDisable(true);
+ basePane.getItems().addAll(box);
+ splitFlag = true;
+ data.clear();
+ for (int i = 0; i < selectItem.getChildren().size(); i++) {
+
+ data.add(new ParamsAttribute(selectItem.getChildren().get(i).getValue(), selectItem.getChildren().get(i).getGraphic().getId()));
+ }
+ }
+
+ }
+ }
+ });
+ basePane.prefWidthProperty().bind(referenceOFA.scene.widthProperty().subtract(300));
+ basePane.prefHeightProperty().bind(referenceOFA.scene.heightProperty().subtract(120));
+ baseTab.setContent(basePane);
+ baseTab.setText("Unnamed.params");
+ referenceOFA.editorTabPane.getTabs().addAll(baseTab);
+ }
+
+ public String getParams(TreeItem<String> treeNode) {
+ tabValue = "";
+ tabValue = tabValue + "<" + treeNode.getValue() + ">\n";
+ if (!treeNode.isLeaf()) {
+ for (int i = 0; i < treeNode.getChildren().size(); i++) {
+ if (treeNode.getChildren().get(i).isLeaf()) {
+ tabValue = tabValue + "\n<" + treeNode.getChildren().get(i).getValue() + ">" + treeNode.getChildren().get(i).getGraphic().getId()
+ + "</" + treeNode.getChildren().get(i).getValue() + ">\n";
+ } else if (!treeNode.getChildren().get(i).isLeaf()) {
+ int index = 0;
+ tabValue = tabValue + "\n<" + treeNode.getChildren().get(i).getValue() + ">\n";
+ while (index < treeNode.getChildren().get(i).getChildren().size()) {
+ tabValue = tabValue + getParams(treeNode.getChildren().get(i).getChildren().get(index));
+ index++;
+ }
+ tabValue = tabValue + "\n</" + treeNode.getChildren().get(i).getValue() + ">\n";
+ }
+ }
+ } else if (treeNode.isLeaf()) {
+ tabValue = tabValue + treeNode.getGraphic().getId();
+ }
+ tabValue = tabValue + "\n</" + treeNode.getValue() + ">";
+ return tabValue;
+ }
+
+ public void removeParamsValue(TreeItem treeItem) {
+ for (int i = 0; i < paramsTreeView.getRoot().getChildren().size(); i++) {
+ if (paramsTreeView.getRoot().getChildren().get(i).isLeaf()) {
+ if (paramsTreeView.getRoot().getChildren().get(i).getValue().equals(treeItem.getValue())) {
+ paramsTreeView.getRoot().getChildren().remove(paramsTreeView.getRoot().getChildren().get(i));
+ }
+ } else if (!paramsTreeView.getRoot().getChildren().get(i).isLeaf()) {
+ if (paramsTreeView.getRoot().getChildren().get(i).getValue().equals(treeItem.getValue())) {
+ paramsTreeView.getRoot().getChildren().remove(paramsTreeView.getRoot().getChildren().get(i));
+ } else {
+ for (int index = 0; index < paramsTreeView.getRoot().getChildren().get(i).getChildren().size(); index++) {
+ if (paramsTreeView.getRoot().getChildren().get(i).getChildren().get(index).getValue().equals(treeItem.getValue())) {
+ paramsTreeView.getRoot().getChildren().get(i).getChildren().remove(paramsTreeView.getRoot().getChildren().get(i).getChildren().get(index));
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+ public static class ParamsAttribute {
+ private final SimpleStringProperty Attributes;
+ private final SimpleStringProperty Values;
+
+ private ParamsAttribute(String attrib, String val) {
+ this.Attributes = new SimpleStringProperty(attrib);
+ this.Values = new SimpleStringProperty(val);
+ }
+
+ public String getAttribute() {
+ return Attributes.get();
+ }
+
+ public void setAttribute(String attrib) {
+ Attributes.set(attrib);
+ }
+
+ public String getValues() {
+ return Values.get();
+ }
+
+ public void setValues(String val) {
+ Values.set(val);
+ }
+ }
+}