diff --git a/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenController.java b/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenController.java index f4f0cb23..b13b8702 100644 --- a/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenController.java +++ b/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenController.java @@ -21,7 +21,6 @@ class ProductManagerScreenController { void setView(ProductManagerScreenView view){ this.view = view; - view.setCategoryCollection(model.getCategoryCollection()); } ChangeListener getProductComponentSelectionListener() { @@ -37,10 +36,9 @@ class ProductManagerScreenController { } void updateView() { - //view.setCategoryCollection(model.getCategoryCollection()); view.setProduct(model.getActualProductState()); + view.setCategoryCollection(model.getCategoryCollection()); view.setProductCollection(model.getEligibleComponentList()); - view.updateGuiLocks(); } IValidatorComponentListener getValidatorListener() { @@ -65,46 +63,32 @@ class ProductManagerScreenController { listenerList.remove(IValidatorComponentListener.class, l); } - boolean lockAmountRemainingfield(){ - return !model.getActualProductState().getComponents().isEmpty(); - } - - boolean lockValidationButton(){ - return !model.isProductCreationPossible(); - } - boolean isProductHighlighted(Product product) { return model.getActualProductState().getComponents().contains(product); } - void onNameChanged(String newVal) { + void onNameChanged(String oldVal, String newVal) { model.changeName(newVal); - updateView(); } - void onPriceChanged(double newVal) { + void onPriceChanged(double oldVal, double newVal) { model.changePrice(newVal); - updateView(); } - void onCategoryChanged(Category newVal) { + void onCategoryChanged(Category oldVal, Category newVal) { model.changeCategory(newVal); - view.updateGuiLocks(); } - void onAmountRemainingChanged(int newVal) { + void onAmountRemainingChanged(int oldVal, int newVal) { model.changeAmountRemaining(newVal); - updateView(); } - void onAmountSoldChanged(int newVal) { + void onAmountSoldChanged(int oldVal, int newVal) { model.changeAmountSold(newVal); - updateView(); } - void onSellableStateChanged(boolean newVal) { + void onSellableStateChanged(boolean oldVal, boolean newVal) { model.setSellable(newVal); - updateView(); } public void delete() { diff --git a/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenModel.java b/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenModel.java index 8e49e06f..49e1b7f0 100644 --- a/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenModel.java +++ b/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenModel.java @@ -39,7 +39,6 @@ class ProductManagerScreenModel { boolean isProductCreationPossible() { return (initialData==null || !areProductsEqual(initialData, currentData)) - && currentData.getName() != null && !currentData.getName().isEmpty() && currentData.getCategory()!=null && currentData.getPrice()>=0; diff --git a/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenView.java b/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenView.java index 33d9db95..8bde00d1 100644 --- a/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenView.java +++ b/Workspace/client/src/main/java/com/pqt/client/gui/modules/stock_screen/product_manager_screen/ProductManagerScreenView.java @@ -32,7 +32,6 @@ class ProductManagerScreenView implements IFXComponent { private ComboBox productCategoryComboBox; private CheckBox productSellableCheckBox; private ListView productComponentsListView; - private SimpleValidator validator; ProductManagerScreenView(ProductManagerScreenController ctrl) { this.ctrl = ctrl; @@ -53,69 +52,54 @@ class ProductManagerScreenView implements IFXComponent { Label productNameLabel = new Label(GUIStringTool.getProductNameLabel()); productNameTextField = new TextField(); - productNameTextField.focusedProperty().addListener((obs, oldVal, newVal)->{ - if(!newVal) - ctrl.onNameChanged(productNameTextField.getText()); - }); + productNameTextField.textProperty().addListener((obs, oldVal, newVal)->ctrl.onNameChanged(oldVal,newVal)); addLineToGrid(mainPaneCenterContent, productNameLabel, productNameTextField); Label productCategoryLabel = new Label(GUIStringTool.getProductCategoryLabel()); productCategoryComboBox = new ComboBox<>(); productCategoryComboBox.setEditable(true); productCategoryComboBox.setConverter(GUIStringTool.getCategoryStringConverter()); - productCategoryComboBox.valueProperty().addListener((obs, oldVal, newVal)->{ - ctrl.onCategoryChanged(newVal); - }); + productCategoryComboBox.valueProperty().addListener((obs, oldVal, newVal)->ctrl.onCategoryChanged(oldVal, newVal)); addLineToGrid(mainPaneCenterContent, productCategoryLabel, productCategoryComboBox); Label productAmountRemainingLabel = new Label(GUIStringTool.getProductAmountRemainingLabel()); productAmountRemainingTextField = getNumberOnlyTextField(intFormat); - productAmountRemainingTextField.focusedProperty().addListener((obs, oldVal, newVal)->{ - if(!newVal) { - try { - int newInt = productAmountRemainingTextField.getText().isEmpty() ? - 0 : - Integer.parseInt(productAmountRemainingTextField.getText()); - ctrl.onAmountRemainingChanged(newInt); - } catch (NumberFormatException e) { - e.printStackTrace(); - } + productAmountRemainingTextField.textProperty().addListener((obs, oldVal, newVal)->{ + try{ + int oldInt = oldVal.isEmpty()?0:Integer.parseInt(oldVal); + int newInt = newVal.isEmpty()?0:Integer.parseInt(newVal); + ctrl.onAmountRemainingChanged(oldInt, newInt); + }catch(NumberFormatException e){ + e.printStackTrace(); } }); addLineToGrid(mainPaneCenterContent, productAmountRemainingLabel, productAmountRemainingTextField); Label productAmountSoldLabel = new Label(GUIStringTool.getProductAmountSoldLabel()); productAmountSoldTextField = getNumberOnlyTextField(intFormat); - productAmountSoldTextField.focusedProperty().addListener((obs, oldVal, newVal)->{ - if(!newVal) { - try { - int newInt = productAmountSoldTextField.getText().isEmpty() ? - 0 : - Integer.parseInt(productAmountSoldTextField.getText()); - ctrl.onAmountSoldChanged(newInt); - } catch (NumberFormatException e) { - e.printStackTrace(); - } + productAmountSoldTextField.textProperty().addListener((obs, oldVal, newVal)->{ + try{ + int oldInt = oldVal.isEmpty()?0:Integer.parseInt(oldVal); + int newInt = newVal.isEmpty()?0:Integer.parseInt(newVal); + ctrl.onAmountSoldChanged(oldInt, newInt); + }catch(NumberFormatException e){ + e.printStackTrace(); } }); addLineToGrid(mainPaneCenterContent, productAmountSoldLabel, productAmountSoldTextField); Label productSellableLabel = new Label(GUIStringTool.getProductSellableLabel()); productSellableCheckBox = new CheckBox(); - productSellableCheckBox.selectedProperty().addListener((obs, oldVal, newVal)->ctrl.onSellableStateChanged(newVal)); + productSellableCheckBox.selectedProperty().addListener((obs, oldVal, newVal)->ctrl.onSellableStateChanged(oldVal,newVal)); addLineToGrid(mainPaneCenterContent, productSellableLabel, productSellableCheckBox); Label productPriceLabel = new Label(GUIStringTool.getProductPriceLabel()); productPriceTextField = getNumberOnlyTextField(priceFormat); - productPriceTextField.focusedProperty().addListener((obs, oldVal, newVal)->{ - if(!newVal) { - try { - ctrl.onPriceChanged((productPriceTextField.getText().isEmpty() ? - -1 : - Double.parseDouble(productPriceTextField.getText()))); - } catch (NumberFormatException e) { - e.printStackTrace(); - } + productPriceTextField.textProperty().addListener((obs, oldVal, newVal)->{ + try{ + ctrl.onPriceChanged((oldVal.isEmpty()?-1:Double.parseDouble(oldVal)), (newVal.isEmpty()?-1:Double.parseDouble(newVal))); + }catch(NumberFormatException e){ + e.printStackTrace(); } }); addLineToGrid(mainPaneCenterContent, productPriceLabel, productPriceTextField); @@ -163,7 +147,7 @@ class ProductManagerScreenView implements IFXComponent { HBox mainPaneBottomContent = new HBox(); HBox separator = new HBox(); - validator = new SimpleValidator(); + SimpleValidator validator = new SimpleValidator(); validator.addListener(ctrl.getValidatorListener()); mainPaneBottomContent.getChildren().addAll(separator, validator.getPane()); HBox.setHgrow(separator, Priority.ALWAYS); @@ -225,14 +209,6 @@ class ProductManagerScreenView implements IFXComponent { productComponentsListView.getItems().addAll(productCollection); }); } - - void updateGuiLocks(){ - Platform.runLater(()->{ - productAmountRemainingTextField.setDisable(ctrl.lockAmountRemainingfield()); - validator.setValidationButtonEnable(!ctrl.lockValidationButton()); - }); - } - public void delete() { ctrl = null; } diff --git a/Workspace/server/src/main/java/com/pqt/server/TestMain.java b/Workspace/server/src/main/java/com/pqt/server/TestMain.java deleted file mode 100644 index a5ae32f1..00000000 --- a/Workspace/server/src/main/java/com/pqt/server/TestMain.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.pqt.server; - -import com.pqt.core.communication.GSonMessageToolFactory; -import com.pqt.core.communication.IMessageToolFactory; -import com.pqt.core.communication.IObjectFormatter; -import com.pqt.core.entities.messages.Message; -import com.pqt.core.entities.messages.MessageType; -import com.pqt.core.entities.product.Category; -import com.pqt.core.entities.product.Product; -import com.pqt.core.entities.user_account.Account; -import com.pqt.core.entities.user_account.AccountLevel; -import com.pqt.server.module.account.FileAccountDao; -import com.pqt.server.module.account.IAccountDao; -import com.pqt.server.module.stock.FileStockDao; -import com.pqt.server.module.stock.IStockDao; - -import java.util.ArrayList; -import java.util.List; - -public class TestMain { - - public static void main(String[] args){ - - IMessageToolFactory messageToolFactory = new GSonMessageToolFactory(); - IObjectFormatter messageFormater = messageToolFactory.getObjectFormatter(Message.class); - System.out.println(messageFormater.format(new Message(MessageType.QUERY_PING, null, null, null, null))); - - //generateAccountFile(); - //generateProductFile(); - } - - private static void generateProductFile(){ - System.out.println("PRODUCTS"); - List products = new ArrayList<>(); - - Category mealsCat = new Category(0, "Meals"); - Category drinksCat = new Category(1, "Drinks"); - Category sidesCat = new Category(2, "Sides"); - - //long id, String name, int amountRemaining, int amountSold, boolean sellable, double price, List components, Category category - products.add(new Product(0, "Meal 1", 10, 0, true, 1d, null, mealsCat)); - products.add(new Product(0, "Meal 2", 20, 10, true, 1.5d, null, mealsCat)); - products.add(new Product(0, "Drink 1", 30, 20, true, 2d, null, drinksCat)); - products.add(new Product(0, "Side 1", 40, 30, true, 2.5d, null, sidesCat)); - - IStockDao stockDao = new FileStockDao("G:\\temp"); - products.forEach(stockDao::addProduct); - } - - private static void generateAccountFile(){ - System.out.println("ACCOUNTS"); - List accounts = new ArrayList<>(); - - accounts.add(new Account("Master", "Master", AccountLevel.MASTER)); - accounts.add(new Account("Waiter", "Waiter", AccountLevel.WAITER)); - accounts.add(new Account("Guest", "Guest", AccountLevel.GUEST)); - accounts.add(new Account("Staff", "Staff", AccountLevel.STAFF)); - accounts.add(new Account("Lowest", "Lowest", AccountLevel.LOWEST)); - - IAccountDao accountDao = new FileAccountDao("G:\\temp"); - accounts.forEach(accountDao::addAccount); - } -}