diff --git a/.~lock.new.xlsx# b/.~lock.new.xlsx# new file mode 100644 index 0000000..609dada --- /dev/null +++ b/.~lock.new.xlsx# @@ -0,0 +1 @@ +,chjunchi,chjunchi-U45JC,14.05.2019 14:34,file:///home/chjunchi/snap/libreoffice/117/.config/libreoffice/4; \ No newline at end of file diff --git a/.~lock.temp.xlsx# b/.~lock.temp.xlsx# deleted file mode 100644 index 13262c9..0000000 --- a/.~lock.temp.xlsx# +++ /dev/null @@ -1 +0,0 @@ -,chjunchi,chjunchi-U45JC,14.05.2019 13:15,file:///home/chjunchi/snap/libreoffice/117/.config/libreoffice/4; \ No newline at end of file diff --git a/new.db b/new.db new file mode 100644 index 0000000..86fcdf0 Binary files /dev/null and b/new.db differ diff --git a/new.xlsx b/new.xlsx new file mode 100644 index 0000000..e3eca46 Binary files /dev/null and b/new.xlsx differ diff --git a/src/main/java/hazard/HazardAnalysis/DataBase/CreateDataBase.java b/src/main/java/hazard/HazardAnalysis/DataBase/CreateDataBase.java index 4be3a41..2c8e971 100644 --- a/src/main/java/hazard/HazardAnalysis/DataBase/CreateDataBase.java +++ b/src/main/java/hazard/HazardAnalysis/DataBase/CreateDataBase.java @@ -36,8 +36,8 @@ public static void createNewTable() { String sql3 = "CREATE TABLE IF NOT EXISTS roletoplay (id integer PRIMARY KEY,kind text NOT NULL, kindid integer NOT NULL, role text NOT NULL, roleid integer NOT NULL);"; String sql4 = "CREATE TABLE IF NOT EXISTS relator (id integer PRIMARY KEY,relator text NOT NULL);"; String sql5 = "CREATE TABLE IF NOT EXISTS relatortorole (id integer PRIMARY KEY, relator text NOT NULL, relatorid integer NOT NULL, role TEXT NOT NULL, roleid INTEGER NOT NULL);"; - String sql6 = "CREATE TABLE IF NOT EXISTS hazard (id INTEGER PRIMARY KEY, hazard TEXT NOT NULL, harm TEXT NOT NULL, severity REAL, probability REAL, riskevaluation REAL, risk BIT);"; - String sql7 = "CREATE TABLE IF NOT EXISTS cause (id INTEGER PRIMARY KEY, cause TEXT NOT NULL, hazardid INTEGER NOT NULL);"; + String sql6 = "CREATE TABLE IF NOT EXISTS hazard (id INTEGER PRIMARY KEY, hazard TEXT NOT NULL, harm TEXT NOT NULL);"; + String sql7 = "CREATE TABLE IF NOT EXISTS cause (id INTEGER PRIMARY KEY, cause TEXT NOT NULL, hazardid INTEGER NOT NULL, severity REAL, probability REAL, riskevaluation REAL, risk BIT);"; String sql8 = "CREATE TABLE IF NOT EXISTS mitigation (id INTEGER PRIMARY KEY, mitigation TEXT NOT NULL, hazardid INTEGER NOT NULL);"; try (Connection conn = DriverManager.getConnection(url); Statement stmt = conn.createStatement()) { // create a new table diff --git a/src/main/java/hazard/HazardAnalysis/DataBase/DataBaseConnection.java b/src/main/java/hazard/HazardAnalysis/DataBase/DataBaseConnection.java index 12915a2..8a40137 100644 --- a/src/main/java/hazard/HazardAnalysis/DataBase/DataBaseConnection.java +++ b/src/main/java/hazard/HazardAnalysis/DataBase/DataBaseConnection.java @@ -158,6 +158,18 @@ public static void exportData(File file) { headerCellCause = headerCause.createCell(1); headerCellCause.setCellValue("Pre-Initiating event for H" + (index - 1)); headerCellCause.setCellStyle(headerStyle); + headerCellCause = headerCause.createCell(2); + headerCellCause.setCellValue("Probability"); + headerCellCause.setCellStyle(headerStyle); + headerCellCause = headerCause.createCell(3); + headerCellCause.setCellValue("Severity"); + headerCellCause.setCellStyle(headerStyle); + headerCellCause = headerCause.createCell(4); + headerCellCause.setCellValue("RPN"); + headerCellCause.setCellStyle(headerStyle); + headerCellCause = headerCause.createCell(5); + headerCellCause.setCellValue("Risk"); + headerCellCause.setCellStyle(headerStyle); Statement stmt2 = conn.createStatement(); String sql2 = "select * from hazard,cause where cause.hazardid=" + rs.getInt("id") + " AND hazard.id=" + rs.getInt("id") + ";"; @@ -173,53 +185,28 @@ public static void exportData(File file) { cellCauses = causes.createCell(1); cellCauses.setCellValue(rs2.getString("cause")); cellCauses.setCellStyle(style); + cellCauses = causes.createCell(2); + cellCauses.setCellValue(rs2.getString("probability")); + cellCauses.setCellStyle(style); + cellCauses = causes.createCell(3); + cellCauses.setCellValue(rs2.getString("severity")); + cellCauses.setCellStyle(style); + cellCauses = causes.createCell(4); + cellCauses.setCellValue(rs2.getString("riskevaluation")); + cellCauses.setCellStyle(style); + cellCauses = causes.createCell(5); + String risk = "Denied"; + CellStyle styleRisk = workbook.createCellStyle(); + styleRisk.setFillPattern(FillPatternType.SOLID_FOREGROUND); + if (rs2.getBoolean("risk")) { + risk = "Accept"; + styleRisk.setFillForegroundColor(IndexedColors.GREEN.getIndex()); + } else { + styleRisk.setFillForegroundColor(IndexedColors.RED.getIndex()); + } + cellCauses.setCellValue(risk); + cellCauses.setCellStyle(styleRisk); } - Statement stmt3 = conn.createStatement(); - String sql3 = "select * from hazard where hazard.id=" + rs.getInt("id") + ";"; - ResultSet rs3 = stmt3.executeQuery(sql3); - Row severityAndProbability = sheet.createRow(rowIndex); - rowIndex++; - Cell headerCellSAP = severityAndProbability.createCell(0); - headerCellSAP.setCellValue("Severity"); - headerCellSAP.setCellStyle(headerStyle); - headerCellSAP = severityAndProbability.createCell(1); - headerCellSAP.setCellValue("Probability"); - headerCellSAP.setCellStyle(headerStyle); - Row sapRow = sheet.createRow(rowIndex); - rowIndex++; - Cell sapCell = sapRow.createCell(0); - sapCell.setCellValue(rs3.getString("severity")); - sapCell.setCellStyle(style); - sapCell = sapRow.createCell(1); - sapCell.setCellValue(rs3.getString("probability")); - sapCell.setCellStyle(style); - Row riskRow = sheet.createRow(rowIndex); - rowIndex++; - Cell headerCellRisk = riskRow.createCell(0); - headerCellRisk.setCellValue("Risk Evaluation"); - headerCellRisk.setCellStyle(headerStyle); - headerCellRisk = riskRow.createCell(1); - headerCellRisk.setCellValue("Risk"); - headerCellRisk.setCellStyle(headerStyle); - Row riskValueRow = sheet.createRow(rowIndex); - rowIndex++; - Cell riskValueCell = riskValueRow.createCell(0); - riskValueCell.setCellValue(rs3.getString("riskevaluation")); - riskValueCell.setCellStyle(style); - riskValueCell = riskValueRow.createCell(1); - CellStyle styleRisk = workbook.createCellStyle(); - styleRisk.setWrapText(false); - styleRisk.setFillPattern(FillPatternType.SOLID_FOREGROUND); - String risk = "Denied"; - if (rs3.getBoolean("risk")) { - risk = "Accept"; - styleRisk.setFillForegroundColor(IndexedColors.GREEN.getIndex()); - } else { - styleRisk.setFillForegroundColor(IndexedColors.RED.getIndex()); - } - riskValueCell.setCellValue(risk); - riskValueCell.setCellStyle(styleRisk); - style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); Row headerMitigation = sheet.createRow(rowIndex); rowIndex++; Cell headerCellMitigation = headerMitigation.createCell(0); @@ -342,24 +329,6 @@ public static void insertRoloeOrKind(String table, String name, Boolean start, b } } - public static void populateWithTestData() { - insertRoloeOrKind("role", "Being supported", true, false, true); - insertRoloeOrKind("role", "Being lifted", true, false, true); - insertRoloeOrKind("role", "Balance supporter", true, false, true); - insertRoloeOrKind("role", "Object lifter", true, false, true); - insertRoloeOrKind("role", "Electric consumer", true, false, true); - insertRoloeOrKind("role", "Electricity source", true, false, true); - insertRoloeOrKind("kind", "Patient", true, false, true); - insertRoloeOrKind("kind", "Robot Handle", true, false, true); - insertRoloeOrKind("kind", "Robot", true, false, true); - insertRoloeOrKind("kind", "Battery", true, false, true); - insertRelator("relator", "Balance support"); - insertRelator("relator", "Liftup"); - insertRelator("relator", "Electric consumption"); - insert("INSERT INTO roletoplay (role,roleid,kind,kindid) VALUES('Being supported',0,'Patient',0)"); - insert("INSERT INTO roletoplay (role,roleid,kind,kindid) VALUES('Being lifted',1,'Patient',0)"); - } - @SuppressWarnings("unchecked") public static void selectAll(String table, ObservableList list) { String sql = "SELECT * FROM " + table; @@ -428,13 +397,14 @@ public static void sql(String sql, String table, ObservableList list) { rs.getString(5))); } else if (table.contentEquals("hazard")) { Hazard hz = new Hazard(rs.getInt("id"), rs.getString("hazard"), rs.getString("harm")); + list.add((E) hz); + } else if (table.contentEquals("cause")) { + Cause c = new Cause(rs.getInt("id"), rs.getString("cause"), rs.getInt("hazardid")); Double d = rs.getDouble("riskevaluation"); if (d != 0) { - hz.setRisk(String.valueOf(rs.getBoolean("risk"))); + c.setRisk(String.valueOf(rs.getBoolean("risk"))); } - list.add((E) hz); - } else if (table.contentEquals("cause")) { - list.add((E) new Cause(rs.getInt("id"), rs.getString("cause"), rs.getInt("hazardid"))); + list.add((E) c); } else if (table.contentEquals("mitigation")) { list.add((E) new Mitigation(rs.getInt("id"), rs.getString("mitigation"), rs.getInt("hazardid"))); } diff --git a/src/main/java/hazard/HazardAnalysis/Steps/Views/ViewStep7.java b/src/main/java/hazard/HazardAnalysis/Steps/Views/ViewStep7.java index 160bc06..234649a 100644 --- a/src/main/java/hazard/HazardAnalysis/Steps/Views/ViewStep7.java +++ b/src/main/java/hazard/HazardAnalysis/Steps/Views/ViewStep7.java @@ -37,11 +37,7 @@ private void addClickEventToTbHazard(TableView tbHazard, ObservableList< EventHandler eventHandler = new EventHandler() { @Override public void handle(MouseEvent e) { - int index = tbHazard.getSelectionModel().selectedIndexProperty().get(); - if (index > -1) { - int id = tbHazard.getItems().get(index).getId(); - DataBaseConnection.sql("SELECT * FROM cause WHERE cause.hazardid=" + id + ";", "cause", list); - } + updateCauseList(tbHazard,list); } }; tbHazard.addEventHandler(MouseEvent.MOUSE_CLICKED, eventHandler); @@ -66,12 +62,29 @@ public GridPane addGridPane() { id.setCellValueFactory(new PropertyValueFactory("id")); hazard.setCellValueFactory(new PropertyValueFactory("hazard")); hazardDescription.setCellValueFactory(new PropertyValueFactory("hazardDescription")); - tbHazard.setRowFactory(new Callback, TableRow>() { + + tbHazard.getColumns().addAll(id, hazard, hazardDescription); + addClickEventToTbHazard(tbHazard, causeList); + updateHazardList(); + tbHazard.setItems(hazardList); + grid.add(tbHazard, 0, 1); + Text category2 = new Text("Pre-initiating events that might lead to the hazard"); + category2.getStyleClass().add("heading"); + grid.add(category2, 0, 3); + final TableView tbCause = new TableView(); + tbCause.setMinWidth(800); + tbCause.setMaxHeight(200); + TableColumn cause = new TableColumn("Pre-initiating event for hazard"); + cause.setMinWidth(400); + cause.setCellValueFactory(new PropertyValueFactory("cause")); + tbCause.getColumns().addAll(cause); + tbCause.setItems(causeList); + tbCause.setRowFactory(new Callback, TableRow>() { @Override - public TableRow call(TableView param) { - final TableRow row = new TableRow() { + public TableRow call(TableView param) { + final TableRow row = new TableRow() { @Override - protected void updateItem(Hazard item, boolean empty) { + protected void updateItem(Cause item, boolean empty) { super.updateItem(item, empty); if (!hazardList.isEmpty() && !empty) { if (!item.getRisk().isEmpty()) { @@ -87,43 +100,27 @@ protected void updateItem(Hazard item, boolean empty) { return row; } }); - tbHazard.getColumns().addAll(id, hazard, hazardDescription); - addClickEventToTbHazard(tbHazard, causeList); - updateHazardList(); - tbHazard.setItems(hazardList); - grid.add(tbHazard, 0, 1); - Text category2 = new Text("Pre-initiating events that might lead to the hazard"); - category2.getStyleClass().add("heading"); - grid.add(category2, 0, 3); - final TableView tbCause = new TableView(); - tbCause.setMinWidth(800); - tbCause.setMaxHeight(200); - TableColumn cause = new TableColumn("Pre-initiating event for hazard"); - cause.setMinWidth(400); - cause.setCellValueFactory(new PropertyValueFactory("cause")); - tbCause.getColumns().addAll(cause); - tbCause.setItems(causeList); grid.add(tbCause, 0, 4); Button btnAdd = new Button("Add Severity And Probability"); - addSeverityAndProbabilityEvent(btnAdd, tbHazard); + addSeverityAndProbabilityEvent(btnAdd, tbCause,tbHazard); GridPane gridBtn1 = new GridPane(); gridBtn1.add(btnAdd, 0, 0); grid.add(gridBtn1, 0, 2); return grid; } - private void addSeverityAndProbabilityEvent(Button btnAdd, TableView tbHazard) { + private void addSeverityAndProbabilityEvent(Button btnAdd, TableView tbCause, TableView tbHazard) { EventHandler eventHandler = new EventHandler() { @Override public void handle(MouseEvent e) { - int index = tbHazard.getSelectionModel().getSelectedIndex(); + int index = tbCause.getSelectionModel().getSelectedIndex(); if (index < 0) { return; } - int id = tbHazard.getItems().get(index).getId(); + int id = tbCause.getItems().get(index).getId(); TextInputDialog dialog = new TextInputDialog(""); dialog.setTitle("Add Severity And Probability"); - dialog.setHeaderText("Enter the Severity of the Hazard And the Probability of it happening."); + dialog.setHeaderText("Enter the Severity of the Cause And the Probability of it happening."); ObservableList options = FXCollections.observableArrayList("High-75%", "Medium-50%", "Low-25%"); final ComboBox comboBox = new ComboBox(options); ObservableList options2 = FXCollections.observableArrayList("High-75%", "Medium-50%", @@ -166,12 +163,12 @@ public void changed(ObservableValue ov, String t, String t1) { }); Optional op = dialog.showAndWait(); if (op.isPresent() && !riskEvaluationNr.getText().contentEquals("")) { - DataBaseConnection.sqlUpdate("UPDATE hazard SET severity=" + returnRiskValue(comboBox.getValue()) + DataBaseConnection.sqlUpdate("UPDATE cause SET severity=" + returnRiskValue(comboBox.getValue()) + ", probability=" + returnRiskValue(comboBox2.getValue()) + ", riskevaluation=" + (returnRiskValue(comboBox2.getValue()) * returnRiskValue(comboBox.getValue())) + ", risk=" - + ch.isSelected() + " where hazard.id=" + id + ";"); + + ch.isSelected() + " where cause.id=" + id + ";"); } - updateHazardList(); + updateCauseList(tbHazard, causeList); } }; btnAdd.addEventHandler(MouseEvent.MOUSE_CLICKED, eventHandler); @@ -206,4 +203,11 @@ private Double returnRiskValue(String s) { public void updateHazardList() { DataBaseConnection.sql("SELECT * FROM hazard;", "hazard", hazardList); } + public void updateCauseList(TableView tbHazard, ObservableList list) { + int index = tbHazard.getSelectionModel().selectedIndexProperty().get(); + if (index > -1) { + int id = tbHazard.getItems().get(index).getId(); + DataBaseConnection.sql("SELECT * FROM cause WHERE cause.hazardid=" + id + ";", "cause", list); + } + } } diff --git a/src/main/java/hazard/HazardClasses/Cause.java b/src/main/java/hazard/HazardClasses/Cause.java index 39af454..766c994 100644 --- a/src/main/java/hazard/HazardClasses/Cause.java +++ b/src/main/java/hazard/HazardClasses/Cause.java @@ -3,11 +3,21 @@ public class Cause extends Play { private String cause; private int hazardID; + String risk; public Cause(int id, String cause, int hazardID) { super(id); this.cause = cause; this.hazardID = hazardID; + this.risk = ""; + } + + public String getRisk() { + return risk; + } + + public void setRisk(String risk) { + this.risk = risk; } public String getCause() { diff --git a/src/main/java/hazard/HazardClasses/Hazard.java b/src/main/java/hazard/HazardClasses/Hazard.java index 8a91456..0a10cfe 100644 --- a/src/main/java/hazard/HazardClasses/Hazard.java +++ b/src/main/java/hazard/HazardClasses/Hazard.java @@ -3,13 +3,13 @@ public class Hazard extends Play { String hazard; String hazardDescription; - String risk; + public Hazard(int id, String hazard, String hazardDescription) { super(id); this.hazard = hazard; this.hazardDescription = hazardDescription; - this.risk = ""; + } public String getHazard() { @@ -20,9 +20,7 @@ public String getHazardDescription() { return hazardDescription; } - public String getRisk() { - return risk; - } + public void setHazard(String hazard) { this.hazard = hazard; @@ -32,7 +30,5 @@ public void setHazardDescription(String hazardDescription) { this.hazardDescription = hazardDescription; } - public void setRisk(String risk) { - this.risk = risk; - } + } diff --git a/temp.xlsx b/temp.xlsx index eecc44e..2ad24ef 100644 Binary files a/temp.xlsx and b/temp.xlsx differ