Skip to content
This repository has been archived by the owner on Dec 8, 2022. It is now read-only.

Admin table search controlls #34

Merged
merged 13 commits into from
Jul 28, 2015
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -12,4 +13,8 @@ public class UserInterfaceFactory {
public static IUserInterface getEditorFrame() {
return new EditorFrame();
}

public static IUserInterface getAdministratorFrame() {
return new AdministratorFrame();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.kritsit.casetracker.client.domain.services;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
Expand All @@ -26,7 +27,6 @@ public Staff getUser() {
return user;
}


public InputToModelParseResult addUser(Map<String, Object> inputMap) {
if (inputMap == null || inputMap.isEmpty()) {
logger.debug("InputMap empty or null. Aborting");
Expand All @@ -45,6 +45,7 @@ public InputToModelParseResult addUser(Map<String, Object> inputMap) {
for(Map.Entry<String, Object> 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;
Expand Down Expand Up @@ -83,4 +84,9 @@ private Staff parseUser(Map<String, Object> inputMap){
return staff;
}


public List<Staff> getInspectors() {
return connection.getInspectors();
}

}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.kritsit.casetracker.client.domain.services;

import java.util.List;
import java.util.Map;

import com.kritsit.casetracker.shared.domain.model.Staff;

public interface IAdministratorService {

Staff getUser();
List<Staff> getInspectors();
InputToModelParseResult addUser(Map<String, Object> inputMap);

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@
import org.slf4j.LoggerFactory;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.kritsit.casetracker.client.domain.services.IAdministratorService;
import com.kritsit.casetracker.client.domain.services.InputToModelParseResult;
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;
Expand Down Expand Up @@ -75,7 +77,7 @@ public void initialize(){
alert.setContentText(result.getReason());
alert.showAndWait();
}

resetAddUserTab();
});

Expand All @@ -102,7 +104,8 @@ private void initStaffTable(){
departmentColumn.setCellValueFactory(new PropertyValueFactory<Staff, String>("Department"));
positionColumn.setCellValueFactory(new PropertyValueFactory<Staff, String>("Position"));

staffTable.setItems(staffList);
populateTable();

}

private void resetAddUserTab(){
Expand All @@ -123,7 +126,33 @@ private void initPermissionCombobox(){
ObservableList<String> permissions =
FXCollections.observableArrayList(Permission.ADMIN.toString(),
Permission.EDITOR.toString(), Permission.VIEWER.toString());
permissionCombobox = new ComboBox<String>(permissions);
permissionCombobox.setItems(permissions);
}

public void populateTable(){
Platform.runLater(new Runnable() {

@Override
public void run() {
staffList = FXCollections.observableArrayList();
List<Staff> users = administratorService.getInspectors();
if(users!=null){
for(Staff s : users){
staffList.add(s);
}

staffTable.setItems(staffList);
}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is this easier that simply using:

staffList = FXCollections.observableArrayList(administrationService.getInspectors();
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;
Expand Down
2 changes: 1 addition & 1 deletion client/src/main/resources/ui/fxml/AdministratorFrame.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="850.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="850.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.kritsit.casetracker.client.domain.ui.controller.AdministratorController">
<top>
<MenuBar BorderPane.alignment="CENTER">
<menus>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}


}