From 95f56093ccc0b71002d55a471b47726949824668 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 14:19:06 +0200 Subject: [PATCH 01/13] filling the table with users at init --- .../casetracker/client/domain/services/Administrator.java | 7 ++++++- .../client/domain/services/IAdministratorService.java | 2 ++ .../domain/ui/controller/AdministratorController.java | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java index a41cd19..55a8293 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java @@ -1,5 +1,6 @@ package com.kritsit.casetracker.client.domain.services; +import java.util.List; import java.util.Map; import org.slf4j.Logger; @@ -26,7 +27,6 @@ public Staff getUser() { return user; } - public InputToModelParseResult addUser(Map inputMap) { if (inputMap == null || inputMap.isEmpty()) { logger.debug("InputMap empty or null. Aborting"); @@ -83,4 +83,9 @@ private Staff parseUser(Map inputMap){ return staff; } + + public List getInspectors() { + return connection.getInspectors(); + } + } diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/services/IAdministratorService.java b/client/src/main/java/com/kritsit/casetracker/client/domain/services/IAdministratorService.java index 6e7f8e4..9e79130 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/services/IAdministratorService.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/services/IAdministratorService.java @@ -1,5 +1,6 @@ package com.kritsit.casetracker.client.domain.services; +import java.util.List; import java.util.Map; import com.kritsit.casetracker.shared.domain.model.Staff; @@ -7,6 +8,7 @@ public interface IAdministratorService { Staff getUser(); + List getInspectors(); InputToModelParseResult addUser(Map inputMap); } diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 97cfb40..5993f57 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -4,6 +4,7 @@ import org.slf4j.LoggerFactory; import java.util.HashMap; +import java.util.List; import java.util.Map; import com.kritsit.casetracker.client.domain.services.IAdministratorService; @@ -102,6 +103,12 @@ private void initStaffTable(){ departmentColumn.setCellValueFactory(new PropertyValueFactory("Department")); positionColumn.setCellValueFactory(new PropertyValueFactory("Position")); + List users = administratorService.getInspectors(); + + for(Staff s : users){ + staffList.add(s); + } + staffTable.setItems(staffList); } From ede3c068594cac4afde3d195d6dc7c7bef75d090 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 14:29:14 +0200 Subject: [PATCH 02/13] error alert + test for getInspectors ; --- .../ui/controller/AdministratorController.java | 18 +++++++++++++----- .../domain/services/AdministratorTest.java | 10 ++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 5993f57..9ae4cf3 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -104,12 +104,20 @@ private void initStaffTable(){ positionColumn.setCellValueFactory(new PropertyValueFactory("Position")); List users = administratorService.getInspectors(); - - for(Staff s : users){ - staffList.add(s); + if(users!=null){ + for(Staff s : users){ + staffList.add(s); + } + + staffTable.setItems(staffList); + } + else{ + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Error"); + alert.setHeaderText("Error downloading users list"); + alert.setContentText("Check logs for details"); + alert.showAndWait(); } - - staffTable.setItems(staffList); } private void resetAddUserTab(){ diff --git a/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java b/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java index 12028bc..c90d2d6 100644 --- a/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java +++ b/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java @@ -154,6 +154,16 @@ public void testAddUser_allFieldsFilled() { assertTrue(result.isSuccessful()); verify(connection).addUser(any()); } + + public void testGetInspectors() { + IConnectionService connection = mock(IConnectionService.class); + Staff user = mock(Staff.class); + IAdministratorService administrator = new Administrator(user, connection); + + administrator.getInspectors(); + + verify(connection).getInspectors(); + } } From 4fa0c3478c0b4a59a7f88d8016e35c9e8b8cf4ca Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 15:09:21 +0200 Subject: [PATCH 03/13] enabling admin to log into admin view --- .../com/kritsit/casetracker/client/CaseTrackerClient.java | 4 +++- .../client/domain/factory/UserInterfaceFactory.java | 5 +++++ .../domain/ui/controller/AdministratorController.java | 7 ++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/CaseTrackerClient.java b/client/src/main/java/com/kritsit/casetracker/client/CaseTrackerClient.java index bd7d23e..9c0755c 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/CaseTrackerClient.java +++ b/client/src/main/java/com/kritsit/casetracker/client/CaseTrackerClient.java @@ -44,7 +44,9 @@ public void start(Stage stage) throws Exception { private void launchUI(Staff user, Stage stage) throws IOException { IUserInterface ui = null; switch (user.getPermission()) { - case ADMIN: throw new UnsupportedOperationException("Not yet implemented"); + case ADMIN: logger.debug("User admin. Opening administrator frame"); + ui = UserInterfaceFactory.getAdministratorFrame(); + break; case EDITOR: case VIEWER: logger.debug("User editor/viewer. Opening editor frame"); diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/factory/UserInterfaceFactory.java b/client/src/main/java/com/kritsit/casetracker/client/domain/factory/UserInterfaceFactory.java index 42b9c3f..aba1855 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/factory/UserInterfaceFactory.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/factory/UserInterfaceFactory.java @@ -1,5 +1,6 @@ package com.kritsit.casetracker.client.domain.factory; +import com.kritsit.casetracker.client.domain.ui.AdministratorFrame; import com.kritsit.casetracker.client.domain.ui.EditorFrame; import com.kritsit.casetracker.client.domain.ui.IUserInterface; @@ -12,4 +13,8 @@ public class UserInterfaceFactory { public static IUserInterface getEditorFrame() { return new EditorFrame(); } + + public static IUserInterface getAdministratorFrame() { + return new AdministratorFrame(); + } } diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 9ae4cf3..1d52402 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -12,6 +12,7 @@ import com.kritsit.casetracker.shared.domain.model.Permission; import com.kritsit.casetracker.shared.domain.model.Staff; +import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.Alert; @@ -76,8 +77,7 @@ public void initialize(){ alert.setContentText(result.getReason()); alert.showAndWait(); } - - resetAddUserTab(); + }); } @@ -118,6 +118,7 @@ private void initStaffTable(){ alert.setContentText("Check logs for details"); alert.showAndWait(); } + } private void resetAddUserTab(){ @@ -139,7 +140,7 @@ private void initPermissionCombobox(){ FXCollections.observableArrayList(Permission.ADMIN.toString(), Permission.EDITOR.toString(), Permission.VIEWER.toString()); permissionCombobox = new ComboBox(permissions); - } + } @FXML private TextField searchField; @FXML private ComboBox searchCombobox; From 67aeb7e1e2f150894a0a14cf6fd083e9d508a9e9 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 15:15:24 +0200 Subject: [PATCH 04/13] fixing mess from previous commit --- .../client/domain/ui/controller/AdministratorController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 1d52402..c0a6e3c 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -12,7 +12,6 @@ import com.kritsit.casetracker.shared.domain.model.Permission; import com.kritsit.casetracker.shared.domain.model.Staff; -import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.Alert; @@ -78,6 +77,7 @@ public void initialize(){ alert.showAndWait(); } + resetAddUserTab(); }); } From b2331318eab49acbecd69feddc802dc7edbda720 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 15:38:11 +0200 Subject: [PATCH 05/13] setting controller class in fxml and fixing permissions combobox --- .../client/domain/ui/controller/AdministratorController.java | 2 +- client/src/main/resources/ui/fxml/AdministratorFrame.fxml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index c0a6e3c..c5a1610 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -139,7 +139,7 @@ private void initPermissionCombobox(){ ObservableList permissions = FXCollections.observableArrayList(Permission.ADMIN.toString(), Permission.EDITOR.toString(), Permission.VIEWER.toString()); - permissionCombobox = new ComboBox(permissions); + permissionCombobox.setItems(permissions); } @FXML private TextField searchField; diff --git a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml index 0630707..6da0bd0 100644 --- a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml +++ b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml @@ -6,7 +6,7 @@ - + From dcf6a0c13d94b7c0ad53fddca9ff5d322bc707f5 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 15:48:36 +0200 Subject: [PATCH 06/13] making staff list working --- .../controller/AdministratorController.java | 45 ++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index c5a1610..e77bdf7 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -12,6 +12,7 @@ import com.kritsit.casetracker.shared.domain.model.Permission; import com.kritsit.casetracker.shared.domain.model.Staff; +import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.Alert; @@ -103,21 +104,7 @@ private void initStaffTable(){ departmentColumn.setCellValueFactory(new PropertyValueFactory("Department")); positionColumn.setCellValueFactory(new PropertyValueFactory("Position")); - List users = administratorService.getInspectors(); - if(users!=null){ - for(Staff s : users){ - staffList.add(s); - } - - staffTable.setItems(staffList); - } - else{ - Alert alert = new Alert(AlertType.ERROR); - alert.setTitle("Error"); - alert.setHeaderText("Error downloading users list"); - alert.setContentText("Check logs for details"); - alert.showAndWait(); - } + populateTable(); } @@ -140,7 +127,33 @@ private void initPermissionCombobox(){ FXCollections.observableArrayList(Permission.ADMIN.toString(), Permission.EDITOR.toString(), Permission.VIEWER.toString()); permissionCombobox.setItems(permissions); - } + } + + public void populateTable(){ + Platform.runLater(new Runnable() { + + @Override + public void run() { + staffList = FXCollections.observableArrayList(); + List users = administratorService.getInspectors(); + if(users!=null){ + for(Staff s : users){ + staffList.add(s); + } + + staffTable.setItems(staffList); + } + else{ + Alert alert = new Alert(AlertType.ERROR); + alert.setTitle("Error"); + alert.setHeaderText("Error downloading users list"); + alert.setContentText("Check logs for details"); + alert.showAndWait(); + } + + } + }); + } @FXML private TextField searchField; @FXML private ComboBox searchCombobox; From 19295043ff1d9e592c878ce528b48c12bcb83646 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 16:29:07 +0200 Subject: [PATCH 07/13] checking permission value in args --- .../casetracker/client/domain/services/Administrator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java index 55a8293..6115b69 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java @@ -45,6 +45,7 @@ public InputToModelParseResult addUser(Map inputMap) { for(Map.Entry entry : inputMap.entrySet()){ if(entry.getKey().equals("firstname")) continue; if(entry.getKey().equals("position")) continue; + if(entry.getKey().equals("permission")&&entry.getValue() instanceof Permission) continue; IValidator validator = new StringValidator(); if(validator.validate(entry.getValue())){ continue; From ad76d37833f4dd9d773bbaf66788f00ff1b4109f Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 16:59:05 +0200 Subject: [PATCH 08/13] columns resize and searchcombobox init --- .../domain/ui/controller/AdministratorController.java | 10 +++++++++- .../src/main/resources/ui/fxml/AdministratorFrame.fxml | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index e77bdf7..13c815f 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -44,6 +44,7 @@ public void initFrame(){ if (administratorService.getUser().getPermission() == Permission.ADMIN) { initStaffTable(); initPermissionCombobox(); + initSearchCombobox(); } else { logger.debug("Administrator view disabled"); } @@ -129,7 +130,14 @@ private void initPermissionCombobox(){ permissionCombobox.setItems(permissions); } - public void populateTable(){ + private void initSearchCombobox(){ + ObservableList permissions = + FXCollections.observableArrayList(Permission.ADMIN.toString(), + Permission.EDITOR.toString(), Permission.VIEWER.toString()); + searchCombobox.setItems(permissions); + } + + private void populateTable(){ Platform.runLater(new Runnable() { @Override diff --git a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml index 6da0bd0..001e249 100644 --- a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml +++ b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml @@ -35,7 +35,10 @@
- + + + +
From da09d4b606c774ca1557d6e4129e89c2bd4508d7 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 17:47:06 +0200 Subject: [PATCH 09/13] search controlls functionalities part 1 --- .../controller/AdministratorController.java | 65 ++++++++++++++----- .../resources/ui/fxml/AdministratorFrame.fxml | 2 +- 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 13c815f..d91c588 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -15,6 +15,8 @@ import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.event.Event; +import javafx.event.EventHandler; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; @@ -24,6 +26,8 @@ import javafx.scene.control.TableColumn; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; import javafx.stage.Stage; import javafx.fxml.FXML; @@ -82,6 +86,34 @@ public void initialize(){ resetAddUserTab(); }); + searchField.setOnKeyPressed(new EventHandler() { + + @Override + public void handle(KeyEvent event) { + if(event.getCode()==KeyCode.ENTER){ + Platform.runLater(new Runnable() { + + @Override + public void run() { + if(!searchField.getText().equals("")){ + ObservableList staffListTemp = searchForPattern(searchField.getText()); + staffTable.getItems().removeAll(staffList); + staffList = staffListTemp; + staffTable.setItems(staffList); + } + else{ + staffTable.getItems().removeAll(staffList); + staffList = FXCollections.observableArrayList(administratorService.getInspectors()); + staffTable.setItems(staffList); + } + } + }); + } + + } + + }); + } public void setStage(Stage stage) { @@ -139,30 +171,27 @@ private void initSearchCombobox(){ private void populateTable(){ Platform.runLater(new Runnable() { - @Override public void run() { - staffList = FXCollections.observableArrayList(); - List users = administratorService.getInspectors(); - if(users!=null){ - for(Staff s : users){ - staffList.add(s); - } - - staffTable.setItems(staffList); - } - else{ - Alert alert = new Alert(AlertType.ERROR); - alert.setTitle("Error"); - alert.setHeaderText("Error downloading users list"); - alert.setContentText("Check logs for details"); - alert.showAndWait(); - } - + staffList = FXCollections.observableArrayList(administratorService.getInspectors()); + staffTable.setItems(staffList); } }); } + private ObservableList searchForPattern(String searchPattern){ + ObservableList results = FXCollections.observableArrayList(); + for(Staff s : staffList){ + if(s.getUsername().contains(searchPattern)) results.add(s); + + + } + + + + return results; + } + @FXML private TextField searchField; @FXML private ComboBox searchCombobox; @FXML private Button resetPasswordButton; diff --git a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml index 001e249..e9ad840 100644 --- a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml +++ b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml @@ -46,7 +46,7 @@ From 13dd2f43d6813961da0da0bc1e2f70a20d99a0a2 Mon Sep 17 00:00:00 2001 From: pawc Date: Sun, 26 Jul 2015 18:13:08 +0200 Subject: [PATCH 10/13] search controlls functionalities part 2 --- .../client/domain/ui/controller/AdministratorController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index d91c588..a870f89 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -100,6 +100,7 @@ public void run() { staffTable.getItems().removeAll(staffList); staffList = staffListTemp; staffTable.setItems(staffList); + searchField.setText(""); } else{ staffTable.getItems().removeAll(staffList); From ca0bb106f61eef39617251673d2e8a7430403bb7 Mon Sep 17 00:00:00 2001 From: pawc Date: Mon, 27 Jul 2015 14:37:49 +0200 Subject: [PATCH 11/13] changes to use FilteredList --- .../controller/AdministratorController.java | 107 +++++++----------- .../resources/ui/fxml/AdministratorFrame.fxml | 9 +- 2 files changed, 48 insertions(+), 68 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index a870f89..7ba0133 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -15,6 +15,8 @@ import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.collections.transformation.FilteredList; +import javafx.collections.transformation.SortedList; import javafx.event.Event; import javafx.event.EventHandler; import javafx.scene.control.Alert; @@ -86,34 +88,8 @@ public void initialize(){ resetAddUserTab(); }); - searchField.setOnKeyPressed(new EventHandler() { - - @Override - public void handle(KeyEvent event) { - if(event.getCode()==KeyCode.ENTER){ - Platform.runLater(new Runnable() { - - @Override - public void run() { - if(!searchField.getText().equals("")){ - ObservableList staffListTemp = searchForPattern(searchField.getText()); - staffTable.getItems().removeAll(staffList); - staffList = staffListTemp; - staffTable.setItems(staffList); - searchField.setText(""); - } - else{ - staffTable.getItems().removeAll(staffList); - staffList = FXCollections.observableArrayList(administratorService.getInspectors()); - staffTable.setItems(staffList); - } - } - }); - } - - } - - }); + + } @@ -123,22 +99,35 @@ public void setStage(Stage stage) { @SuppressWarnings("unchecked") private void initStaffTable(){ - TableColumn firstNameColumn = new TableColumn("First name"); - TableColumn lastNameColumn = new TableColumn("Last name"); - TableColumn usernameColumn = new TableColumn("Username"); - TableColumn departmentColumn = new TableColumn("Department"); - TableColumn positionColumn = new TableColumn("Position"); - - staffTable.getColumns().addAll(firstNameColumn, lastNameColumn, - usernameColumn, departmentColumn, positionColumn); + + logger.info("Initiating staff list table"); + staffList = FXCollections.observableArrayList(administratorService.getInspectors()); + + FilteredList filteredStaff = new FilteredList<>(staffList, p -> true); + searchField.textProperty().addListener((observable, oldValue, newValue) -> { + filteredStaff.setPredicate(s -> { + if (newValue == null || newValue.isEmpty()) { + return true; + } + String lowerCaseFilter = newValue.toLowerCase(); + if (s.getUsername().toLowerCase().contains(lowerCaseFilter)) { + return true; + } /*else if (c.getNumber().toLowerCase().contains(lowerCaseFilter)) { + return true; + }*/ + return false; + }); + }); - firstNameColumn.setCellValueFactory(new PropertyValueFactory("First name")); - lastNameColumn.setCellValueFactory(new PropertyValueFactory("Last name")); - usernameColumn.setCellValueFactory(new PropertyValueFactory("Username")); - departmentColumn.setCellValueFactory(new PropertyValueFactory("Department")); - positionColumn.setCellValueFactory(new PropertyValueFactory("Position")); + SortedList sortedStaff = new SortedList<>(filteredStaff); + sortedStaff.comparatorProperty().bind(staffTable.comparatorProperty()); + staffTable.setItems(sortedStaff); - populateTable(); + firstNameColumn.setCellValueFactory(new PropertyValueFactory("firstName")); + lastNameColumn.setCellValueFactory(new PropertyValueFactory("lastName")); + usernameColumn.setCellValueFactory(new PropertyValueFactory("username")); + departmentColumn.setCellValueFactory(new PropertyValueFactory("department")); + permissionColumn.setCellValueFactory(new PropertyValueFactory("permission")); } @@ -151,10 +140,6 @@ private void resetAddUserTab(){ permissionCombobox.setValue(""); } - private void resetSearch(){ - searchField.setText(""); - searchCombobox.setValue(""); - } private void initPermissionCombobox(){ ObservableList permissions = @@ -169,29 +154,11 @@ private void initSearchCombobox(){ Permission.EDITOR.toString(), Permission.VIEWER.toString()); searchCombobox.setItems(permissions); } + - private void populateTable(){ - Platform.runLater(new Runnable() { - @Override - public void run() { - staffList = FXCollections.observableArrayList(administratorService.getInspectors()); - staffTable.setItems(staffList); - } - }); - } + - private ObservableList searchForPattern(String searchPattern){ - ObservableList results = FXCollections.observableArrayList(); - for(Staff s : staffList){ - if(s.getUsername().contains(searchPattern)) results.add(s); - - - } - - - - return results; - } + @FXML private TextField searchField; @FXML private ComboBox searchCombobox; @@ -206,6 +173,12 @@ private ObservableList searchForPattern(String searchPattern){ @FXML private TextField usernameField; @FXML private ComboBox permissionCombobox; @FXML private Button addUserButton; + @FXML private TableColumn firstNameColumn; + @FXML private TableColumn lastNameColumn; + @FXML private TableColumn usernameColumn; + @FXML private TableColumn departmentColumn; + @FXML private TableColumn permissionColumn; + } diff --git a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml index e9ad840..b2355cb 100644 --- a/client/src/main/resources/ui/fxml/AdministratorFrame.fxml +++ b/client/src/main/resources/ui/fxml/AdministratorFrame.fxml @@ -38,7 +38,14 @@ - + + + + + + + + From f888e6a3a71b770a9c6d1363f5288ed5da119f4c Mon Sep 17 00:00:00 2001 From: pawc Date: Mon, 27 Jul 2015 14:56:46 +0200 Subject: [PATCH 12/13] added filter listener to searchCombobox --- .../controller/AdministratorController.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 7ba0133..9ba1f98 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -112,13 +112,28 @@ private void initStaffTable(){ String lowerCaseFilter = newValue.toLowerCase(); if (s.getUsername().toLowerCase().contains(lowerCaseFilter)) { return true; - } /*else if (c.getNumber().toLowerCase().contains(lowerCaseFilter)) { + } + + return false; + }); + }); + + searchCombobox.valueProperty().addListener((observable, oldValue, newValue) -> { + filteredStaff.setPredicate(s -> { + if (newValue == null || newValue.isEmpty()) { + return true; + } + + if (s.getPermission().toString().equals(newValue)) { return true; - }*/ + } + return false; }); }); + + SortedList sortedStaff = new SortedList<>(filteredStaff); sortedStaff.comparatorProperty().bind(staffTable.comparatorProperty()); staffTable.setItems(sortedStaff); From dd285f2763abc0c536a6e05074a8df8aaa5f2d17 Mon Sep 17 00:00:00 2001 From: pawc Date: Tue, 28 Jul 2015 09:59:25 +0200 Subject: [PATCH 13/13] cleaning empty lines --- .../client/domain/services/Administrator.java | 4 ---- .../ui/controller/AdministratorController.java | 18 +----------------- .../domain/services/AdministratorTest.java | 2 -- 3 files changed, 1 insertion(+), 23 deletions(-) diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java index 6115b69..30097f9 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/services/Administrator.java @@ -53,7 +53,6 @@ public InputToModelParseResult addUser(Map inputMap) { else{ result.addFailedInput(entry.getKey()); } - } if (!result.isSuccessful()) { @@ -68,8 +67,6 @@ public InputToModelParseResult addUser(Map inputMap) { InputToModelParseResult uploaded = new InputToModelParseResult(isAdded, reason); return uploaded; - - } private Staff parseUser(Map inputMap){ @@ -84,7 +81,6 @@ private Staff parseUser(Map inputMap){ return staff; } - public List getInspectors() { return connection.getInspectors(); } diff --git a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java index 9ba1f98..c9222fe 100644 --- a/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java +++ b/client/src/main/java/com/kritsit/casetracker/client/domain/ui/controller/AdministratorController.java @@ -56,7 +56,6 @@ public void initFrame(){ } } - public void initialize(){ addUserButton.setOnAction(event->{ @@ -87,10 +86,6 @@ public void initialize(){ resetAddUserTab(); }); - - - - } public void setStage(Stage stage) { @@ -132,8 +127,6 @@ private void initStaffTable(){ }); }); - - SortedList sortedStaff = new SortedList<>(filteredStaff); sortedStaff.comparatorProperty().bind(staffTable.comparatorProperty()); staffTable.setItems(sortedStaff); @@ -143,7 +136,6 @@ private void initStaffTable(){ usernameColumn.setCellValueFactory(new PropertyValueFactory("username")); departmentColumn.setCellValueFactory(new PropertyValueFactory("department")); permissionColumn.setCellValueFactory(new PropertyValueFactory("permission")); - } private void resetAddUserTab(){ @@ -155,7 +147,6 @@ private void resetAddUserTab(){ permissionCombobox.setValue(""); } - private void initPermissionCombobox(){ ObservableList permissions = FXCollections.observableArrayList(Permission.ADMIN.toString(), @@ -170,11 +161,6 @@ private void initSearchCombobox(){ searchCombobox.setItems(permissions); } - - - - - @FXML private TextField searchField; @FXML private ComboBox searchCombobox; @FXML private Button resetPasswordButton; @@ -193,7 +179,5 @@ private void initSearchCombobox(){ @FXML private TableColumn usernameColumn; @FXML private TableColumn departmentColumn; @FXML private TableColumn permissionColumn; - - - + } diff --git a/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java b/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java index c90d2d6..6d0e63d 100644 --- a/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java +++ b/client/src/test/java/com/kritsit/casetracker/client/domain/services/AdministratorTest.java @@ -164,6 +164,4 @@ public void testGetInspectors() { verify(connection).getInspectors(); } - - }