Module client, packg GUI : ajout interfaces générales des composants GUI (part 2/2)

This commit is contained in:
Notmoo 2017-08-10 20:22:18 +02:00
parent 5183b47330
commit 6e0f3f625c
32 changed files with 258 additions and 144 deletions

View File

@ -1,13 +0,0 @@
package com.pqt.client.module.gui.ressources.components.products;
import com.pqt.client.module.gui.ressources.components.IFXComponent;
import com.pqt.client.module.gui.ressources.components.products.listeners.IStockComponentListener;
import com.pqt.core.entities.product.Product;
import java.util.Collection;
public interface IFXStockDisplayerComponent extends IFXComponent {
void display(Collection<Product> products);
void addListener(IStockComponentListener l);
void removeListener(IStockComponentListener l);
}

View File

@ -1,16 +0,0 @@
package com.pqt.client.module.gui.ressources.components.products.listeners;
import com.pqt.core.entities.product.Product;
import javafx.event.Event;
public interface IStockComponentFirerer {
void addListener(IStockComponentListener l);
void removeListener(IStockComponentListener l);
void fireProductClickEvent(Event event, Product product);
void fireAddProductRequestEvent();
void fireRemoveProductRequestEvent(Product product);
void fireDetailProductRequestEvent(Product product);
void fireRefreshProductListRequestEvent();
}

View File

@ -1,14 +0,0 @@
package com.pqt.client.module.gui.ressources.components.products.listeners;
import com.pqt.core.entities.product.Product;
import javafx.event.Event;
import java.util.EventListener;
public interface IStockComponentListener extends EventListener {
void onProductClickEvent(Event event, Product product);
void onAddProductRequestEvent();
void onRemoveProductRequestEvent(Product product);
void onDetailProductRequestEvent(Product product);
void onRefreshProductListRequestEvent();
}

View File

@ -1,51 +0,0 @@
package com.pqt.client.module.gui.ressources.components.products.listeners;
import com.pqt.core.entities.product.Product;
import javafx.event.Event;
import javax.swing.event.EventListenerList;
import java.util.Arrays;
public class SimpleStockComponentFirerer implements IStockComponentFirerer {
private EventListenerList listenerList;
public SimpleStockComponentFirerer() {
listenerList = new EventListenerList();
}
@Override
public void addListener(IStockComponentListener l) {
listenerList.add(IStockComponentListener.class, l);
}
@Override
public void removeListener(IStockComponentListener l) {
listenerList.remove(IStockComponentListener.class, l);
}
@Override
public void fireProductClickEvent(Event event, Product product) {
Arrays.stream(listenerList.getListeners(IStockComponentListener.class)).forEach(l->l.onProductClickEvent(event, product));
}
@Override
public void fireAddProductRequestEvent() {
Arrays.stream(listenerList.getListeners(IStockComponentListener.class)).forEach(IStockComponentListener::onAddProductRequestEvent);
}
@Override
public void fireRemoveProductRequestEvent(Product product) {
Arrays.stream(listenerList.getListeners(IStockComponentListener.class)).forEach(l->l.onRemoveProductRequestEvent(product));
}
@Override
public void fireDetailProductRequestEvent(Product product) {
Arrays.stream(listenerList.getListeners(IStockComponentListener.class)).forEach(l->l.onDetailProductRequestEvent(product));
}
@Override
public void fireRefreshProductListRequestEvent() {
Arrays.stream(listenerList.getListeners(IStockComponentListener.class)).forEach(IStockComponentListener::onRefreshProductListRequestEvent);
}
}

View File

@ -1,8 +0,0 @@
package com.pqt.client.module.gui.ressources.components.sale;
import com.pqt.client.module.gui.ressources.components.IFXComponent;
import com.pqt.core.entities.sale.Sale;
public interface IFXSaleCreatorComponent extends IFXComponent{
Sale create();
}

View File

@ -1,11 +0,0 @@
package com.pqt.client.module.gui.ressources.components.sale;
import com.pqt.client.module.gui.ressources.components.IFXComponent;
import com.pqt.client.module.gui.ressources.components.sale.listeners.ISaleComponentListener;
import com.pqt.core.entities.sale.Sale;
public interface IFXSaleDisplayerComponent extends IFXComponent {
void display(Sale sale);
void addListener(ISaleComponentListener l);
void removeListener(ISaleComponentListener l);
}

View File

@ -1,5 +0,0 @@
package com.pqt.client.module.gui.ressources.components.sale.listeners;
public interface ISaleComponentFirerer {
//TODO faire ça
}

View File

@ -1,7 +0,0 @@
package com.pqt.client.module.gui.ressources.components.sale.listeners;
import java.util.EventListener;
public interface ISaleComponentListener extends EventListener {
//TODO faire ça
}

View File

@ -1,5 +0,0 @@
package com.pqt.client.module.gui.ressources.components.sale.listeners;
public class SimpleSaleComponentFirerer implements ISaleComponentFirerer {
//TODO faire ça
}

View File

@ -1,10 +0,0 @@
package com.pqt.client.module.gui.ressources.components.validation;
import com.pqt.client.module.gui.ressources.components.IFXComponent;
import com.pqt.client.module.gui.ressources.components.products.listeners.IStockComponentListener;
import com.pqt.client.module.gui.ressources.components.validation.listeners.IValidatorComponentListener;
public interface IFXValidatorComponent extends IFXComponent{
void addListener(IValidatorComponentListener l);
void removeListener(IValidatorComponentListener l);
}

View File

@ -1,4 +1,4 @@
package com.pqt.client.module.gui.ressources.components;
package com.pqt.client.module.gui.ressources.generics;
import javafx.scene.layout.Pane;

View File

@ -0,0 +1,8 @@
package com.pqt.client.module.gui.ressources.generics.creators;
import com.pqt.client.module.gui.ressources.generics.IFXComponent;
public interface IFXCreatorComponent<T> extends IFXComponent{
T create();
boolean isCreationPossible();
}

View File

@ -0,0 +1,10 @@
package com.pqt.client.module.gui.ressources.generics.displayers;
import com.pqt.client.module.gui.ressources.generics.IFXComponent;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.IDisplayerComponentListener;
public interface IFXDisplayerComponent<T, U extends IDisplayerComponentListener> extends IFXComponent{
void display(T content);
void addListener(U l);
void removeListener(U l);
}

View File

@ -0,0 +1,13 @@
package com.pqt.client.module.gui.ressources.generics.displayers.listeners;
import javafx.event.Event;
public interface IDisplayerComponentFirerer<T> {
void fireRefreshContentRequestEvent();
void fireContentClickEvent(Event event, T eventTarget);
void fireAddContentRequestEvent();
void fireRemoveContentRequestEvent(T content);
void fireDetailContentRequestEvent(T content);
void addListener(IDisplayerComponentListener<T> l);
void removeListener(IDisplayerComponentListener<T> l);
}

View File

@ -0,0 +1,13 @@
package com.pqt.client.module.gui.ressources.generics.displayers.listeners;
import javafx.event.Event;
import java.util.EventListener;
public interface IDisplayerComponentListener<T> extends EventListener {
void onRefreshContentRequestEvent();
void onContentClickEvent(Event event, T eventTarget);
void onAddContentRequestEvent();
void onRemoveContentRequestEvent(T content);
void onDetailContentRequestEvent(T content);
}

View File

@ -0,0 +1,58 @@
package com.pqt.client.module.gui.ressources.generics.displayers.listeners;
import javafx.event.Event;
import javax.swing.event.EventListenerList;
import java.util.Arrays;
public class SimpleDisplayerComponentFirerer<T, U extends IDisplayerComponentListener<T>> implements IDisplayerComponentFirerer<T> {
protected EventListenerList listenerList;
protected Class<U> clazz;
public SimpleDisplayerComponentFirerer(Class<U> clazz) {
listenerList = new EventListenerList();
this.clazz = clazz;
}
@Override
public void fireRefreshContentRequestEvent() {
Arrays.stream(listenerList.getListeners(clazz)).forEach(IDisplayerComponentListener::onRefreshContentRequestEvent);
}
@Override
public void fireContentClickEvent(Event event, T eventTarget) {
Arrays.stream(listenerList.getListeners(clazz)).forEach(l->l.onContentClickEvent(event, eventTarget));
}
@Override
public void fireAddContentRequestEvent() {
Arrays.stream(listenerList.getListeners(clazz)).forEach(IDisplayerComponentListener::onAddContentRequestEvent);
}
@Override
public void fireRemoveContentRequestEvent(T content) {
Arrays.stream(listenerList.getListeners(clazz)).forEach(l->l.onRemoveContentRequestEvent(content));
}
@Override
public void fireDetailContentRequestEvent(T content) {
Arrays.stream(listenerList.getListeners(clazz)).forEach(l->l.onDetailContentRequestEvent(content));
}
@Override
public void addListener(IDisplayerComponentListener<T> l) throws IllegalArgumentException {
if(clazz.isInstance(l)){
listenerList.add(clazz, clazz.cast(l));
}else{
throw new IllegalArgumentException("Listener must implement the following interface : "+clazz.getName());
}
}
@Override
public void removeListener(IDisplayerComponentListener<T> l) {
if (clazz.isInstance(l)) {
listenerList.remove(clazz, clazz.cast(l));
}
}
}

View File

@ -0,0 +1,9 @@
package com.pqt.client.module.gui.ressources.generics.validators;
import com.pqt.client.module.gui.ressources.generics.IFXComponent;
import com.pqt.client.module.gui.ressources.generics.validators.listeners.IValidatorComponentListener;
public interface IFXValidatorComponent extends IFXComponent{
void addListener(IValidatorComponentListener l);
void removeListener(IValidatorComponentListener l);
}

View File

@ -1,4 +1,4 @@
package com.pqt.client.module.gui.ressources.components.validation.listeners;
package com.pqt.client.module.gui.ressources.generics.validators.listeners;
public interface IValidatorComponentFirerer {
void addListener(IValidatorComponentListener l);

View File

@ -1,4 +1,4 @@
package com.pqt.client.module.gui.ressources.components.validation.listeners;
package com.pqt.client.module.gui.ressources.generics.validators.listeners;
import java.util.EventListener;

View File

@ -1,4 +1,4 @@
package com.pqt.client.module.gui.ressources.components.validation.listeners;
package com.pqt.client.module.gui.ressources.generics.validators.listeners;
import javax.swing.event.EventListenerList;
import java.util.Arrays;

View File

@ -0,0 +1,11 @@
package com.pqt.client.module.gui.ressources.specifics.account;
import com.pqt.client.module.gui.ressources.specifics.account.listeners.IAccountComponentListener;
import com.pqt.client.module.gui.ressources.generics.displayers.IFXDisplayerComponent;
import com.pqt.core.entities.user_account.Account;
import java.util.Collection;
public interface IFXAccountsDisplayerComponent extends IFXDisplayerComponent<Collection<Account>, IAccountComponentListener>{
}

View File

@ -0,0 +1,7 @@
package com.pqt.client.module.gui.ressources.specifics.account.listeners;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.IDisplayerComponentListener;
import com.pqt.core.entities.user_account.Account;
public interface IAccountComponentListener extends IDisplayerComponentListener<Account>{
}

View File

@ -0,0 +1,10 @@
package com.pqt.client.module.gui.ressources.specifics.account.listeners;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.SimpleDisplayerComponentFirerer;
import com.pqt.core.entities.user_account.Account;
public class SimpleAccountComponentFirerer extends SimpleDisplayerComponentFirerer<Account, IAccountComponentListener>{
public SimpleAccountComponentFirerer() {
super(IAccountComponentListener.class);
}
}

View File

@ -0,0 +1,10 @@
package com.pqt.client.module.gui.ressources.specifics.products;
import com.pqt.client.module.gui.ressources.specifics.products.listeners.IStockComponentListener;
import com.pqt.client.module.gui.ressources.generics.displayers.IFXDisplayerComponent;
import com.pqt.core.entities.product.Product;
import java.util.Collection;
public interface IFXProductsDisplayerComponent extends IFXDisplayerComponent<Collection<Product>, IStockComponentListener> {
}

View File

@ -0,0 +1,7 @@
package com.pqt.client.module.gui.ressources.specifics.products.listeners;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.IDisplayerComponentListener;
import com.pqt.core.entities.product.Product;
public interface IStockComponentListener extends IDisplayerComponentListener<Product> {
}

View File

@ -0,0 +1,11 @@
package com.pqt.client.module.gui.ressources.specifics.products.listeners;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.SimpleDisplayerComponentFirerer;
import com.pqt.core.entities.product.Product;
public class SimpleStockComponentFirerer extends SimpleDisplayerComponentFirerer<Product, IStockComponentListener> {
public SimpleStockComponentFirerer() {
super(IStockComponentListener.class);
}
}

View File

@ -0,0 +1,8 @@
package com.pqt.client.module.gui.ressources.specifics.sale;
import com.pqt.client.module.gui.ressources.specifics.sale.listeners.ISaleComponentListener;
import com.pqt.client.module.gui.ressources.generics.displayers.IFXDisplayerComponent;
import com.pqt.core.entities.sale.Sale;
public interface IFXSaleDisplayerComponent extends IFXDisplayerComponent<Sale, ISaleComponentListener> {
}

View File

@ -0,0 +1,10 @@
package com.pqt.client.module.gui.ressources.specifics.sale.listeners;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.IDisplayerComponentListener;
import com.pqt.core.entities.product.Product;
import com.pqt.core.entities.sale.Sale;
import javafx.event.Event;
public interface ISaleComponentListener extends IDisplayerComponentListener<Sale> {
void onComponentClickEvent(Event event, Product product);
}

View File

@ -0,0 +1,19 @@
package com.pqt.client.module.gui.ressources.specifics.sale.listeners;
import com.pqt.client.module.gui.ressources.generics.displayers.listeners.SimpleDisplayerComponentFirerer;
import com.pqt.core.entities.product.Product;
import com.pqt.core.entities.sale.Sale;
import javafx.event.Event;
import java.util.Arrays;
public class SimpleSaleComponentFirerer extends SimpleDisplayerComponentFirerer<Sale, ISaleComponentListener> {
public SimpleSaleComponentFirerer() {
super(ISaleComponentListener.class);
}
public void fireComponentClickEvent(Event event, Product product) {
Arrays.stream(listenerList.getListeners(ISaleComponentListener.class)).forEach(l->l.onComponentClickEvent(event, product));
}
}

View File

@ -0,0 +1,40 @@
package com.pqt.client.module.gui.ressources.strings;
import com.pqt.core.entities.product.Product;
//TODO faire ça un peu mieux
public class GUIStringTool {
public static String getValidationButtonLabel() {
return "Valider";
}
public static String getConfirmationValidationButtonLabel() {
return "Confirmer";
}
public static String getCancelButtonLabel() {
return "Annuler";
}
public static String getConfirmationCancelButtonLabel() {
return "Confirmer";
}
public static String getCategorytabStockDisplayerTitle() {
return "Produits";
}
public static IObjectStringRenderer<Product> getProductStringRenderer(){
return product->String.format("%s - %.2f€ (%s)", product.getName(), product.getPrice(), (product.getAmountRemaining()>=30?"30+": Integer.toString(product.getAmountRemaining())));
}
public static String getCommandComposerTitleTitle() {
return "Commande";
}
public static IObjectWithQuantityStringRenderer<Product> getSaleItemStringRenderer(){
return (product, qté)->String.format("%s - %.2f€ (%s)", product.getName(), product.getPrice(), (product.getAmountRemaining()>=30?"30+": Integer.toString(product.getAmountRemaining())));
}
}

View File

@ -0,0 +1,5 @@
package com.pqt.client.module.gui.ressources.strings;
public interface IObjectStringRenderer<T> {
String render(T obj);
}

View File

@ -0,0 +1,5 @@
package com.pqt.client.module.gui.ressources.strings;
public interface IObjectWithQuantityStringRenderer<T> {
String render(T obj, int quantity);
}