Search in sources :

Example 1 with SpecAgent

use of eu.ggnet.dwoss.spec.ee.SpecAgent in project dwoss by gg-net.

the class DesktopBundleViewTryout method tryoutView.

@Test
public void tryoutView() throws InterruptedException {
    final ProductSpec spec = new SpecGenerator().makeSpec();
    DesktopBundleView view = new DesktopBundleView(new Mandators() {

        @Override
        public Mandator loadMandator() {
            return Mandator.builder().defaultMailSignature(null).smtpConfiguration(null).mailTemplateLocation(null).company(CompanyGen.makeCompany()).dossierPrefix("DW").documentIntermix(null).documentIdentifierGeneratorConfigurations(new EnumMap<>(DocumentType.class)).build();
        }

        @Override
        public DefaultCustomerSalesdata loadSalesdata() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("loadSalesdata - Not supported yet.");
        }

        @Override
        public ReceiptCustomers loadReceiptCustomers() {
            return ReceiptCustomers.builder().build();
        }

        @Override
        public SpecialSystemCustomers loadSystemCustomers() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("loadSystemCustomers - Not supported yet.");
        }

        @Override
        public Contractors loadContractors() {
            return new Contractors(EnumSet.of(TradeName.ALSO, TradeName.ACER), EnumSet.of(TradeName.ACER));
        }

        @Override
        public PostLedger loadPostLedger() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("loadPostLedger - Not supported yet.");
        }

        @Override
        public ShippingTerms loadShippingTerms() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("loadShippingTerms - Not supported yet.");
        }
    }, new SpecAgent() {

        @Override
        public ProductSpec findProductSpecByPartNoEager(String partNo) {
            if (partNo == null)
                return null;
            if (partNo.startsWith("X"))
                return null;
            spec.setPartNo(partNo);
            return spec;
        }

        // <editor-fold defaultstate="collapsed" desc="Unneeded Methods">
        @Override
        public <T> long count(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAll(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAll(Class<T> entityClass, int start, int amount) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAllEager(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAllEager(Class<T> entityClass, int start, int amount) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findById(Class<T> entityClass, Object id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findById(Class<T> entityClass, Object id, LockModeType lockModeType) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findByIdEager(Class<T> entityClass, Object id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findByIdEager(Class<T> entityClass, Object id, LockModeType lockModeType) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }, new ProductProcessorStub(), TradeName.ACER, TradeName.ACER, ProductGroup.DESKTOP, ProductGroup.MONITOR);
    view.setSpec(new DesktopBundle());
    OkCancelDialog<DesktopBundleView> dialog = new OkCancelDialog<>("BundleView", view);
    dialog.setVisible(true);
    dialog.dispose();
}
Also used : ProductProcessorStub(eu.ggnet.dwoss.receipt.stub.ProductProcessorStub) SpecAgent(eu.ggnet.dwoss.spec.ee.SpecAgent) SpecGenerator(eu.ggnet.dwoss.spec.ee.assist.gen.SpecGenerator) OkCancelDialog(eu.ggnet.dwoss.util.OkCancelDialog) ProductSpec(eu.ggnet.dwoss.spec.ee.entity.ProductSpec) DesktopBundle(eu.ggnet.dwoss.spec.ee.entity.DesktopBundle) DesktopBundleView(eu.ggnet.dwoss.receipt.product.DesktopBundleView) Mandators(eu.ggnet.dwoss.mandator.Mandators) LockModeType(javax.persistence.LockModeType) Test(org.junit.Test)

Example 2 with SpecAgent

use of eu.ggnet.dwoss.spec.ee.SpecAgent in project dwoss by gg-net.

the class UnitViewTryout method main.

public static void main(String[] args) throws Exception {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    final SpecGenerator GEN = new SpecGenerator();
    final List<ProductSpec> productSpecs = new ArrayList<>();
    final Map<String, ProductModel> productModels = new HashMap<>();
    final Map<String, ProductSeries> productSeries = new HashMap<>();
    final Map<String, ProductFamily> productFamily = new HashMap<>();
    final List<Product> products = new ArrayList<>();
    for (int i = 0; i < 100; i++) {
        ProductSpec spec = GEN.makeSpec();
        productSpecs.add(spec);
        products.add(new Product(spec.getModel().getFamily().getSeries().getGroup(), spec.getModel().getFamily().getSeries().getBrand(), spec.getPartNo(), spec.getModel().getName()));
        productModels.putIfAbsent(spec.getModel().getName(), spec.getModel());
        productFamily.putIfAbsent(spec.getModel().getFamily().getName(), spec.getModel().getFamily());
        productSeries.putIfAbsent(spec.getModel().getFamily().getSeries().getName(), spec.getModel().getFamily().getSeries());
    }
    // final Product product = new Product(spec.getModel().getFamily().getSeries().getGroup(),
    // spec.getModel().getFamily().getSeries().getBrand(), spec.getPartNo(), spec.getModel().getName());
    Dl.remote().add(Mandators.class, new Mandators() {

        @Override
        public Mandator loadMandator() {
            return Mandator.builder().defaultMailSignature(null).smtpConfiguration(null).mailTemplateLocation(null).company(CompanyGen.makeCompany()).dossierPrefix("DW").documentIntermix(null).documentIdentifierGeneratorConfigurations(new EnumMap<>(DocumentType.class)).build();
        }

        @Override
        public DefaultCustomerSalesdata loadSalesdata() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public ReceiptCustomers loadReceiptCustomers() {
            return ReceiptCustomers.builder().build();
        }

        @Override
        public SpecialSystemCustomers loadSystemCustomers() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Contractors loadContractors() {
            return new Contractors(EnumSet.allOf(TradeName.class), TradeName.getManufacturers());
        }

        @Override
        public PostLedger loadPostLedger() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public ShippingTerms loadShippingTerms() {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }
    });
    Dl.remote().add(SpecAgent.class, new SpecAgent() {

        @Override
        public ProductSpec findProductSpecByPartNoEager(String partNo) {
            return productSpecs.stream().filter(p -> Objects.equals(partNo, p.getPartNo())).findFirst().orElse(null);
        }

        // <editor-fold defaultstate="collapsed" desc="Unneeded Methods">
        @Override
        public <T> long count(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAll(Class<T> entityClass) {
            if (entityClass.equals(ProductSpec.class))
                return (List<T>) productSpecs;
            else if (entityClass.equals(ProductSeries.class))
                return (List<T>) new ArrayList<>(productSeries.values());
            else if (entityClass.equals(ProductFamily.class))
                return (List<T>) new ArrayList<>(productFamily.values());
            else if (entityClass.equals(ProductModel.class))
                return (List<T>) new ArrayList<>(productModels.values());
            return Collections.emptyList();
        }

        @Override
        public <T> List<T> findAll(Class<T> entityClass, int start, int amount) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAllEager(Class<T> entityClass) {
            return findAll(entityClass);
        }

        @Override
        public <T> List<T> findAllEager(Class<T> entityClass, int start, int amount) {
            return findAll(entityClass, start, amount);
        }

        @Override
        public <T> T findById(Class<T> entityClass, Object id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findById(Class<T> entityClass, Object id, LockModeType lockModeType) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findByIdEager(Class<T> entityClass, Object id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findByIdEager(Class<T> entityClass, Object id, LockModeType lockModeType) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }
    });
    Dl.remote().add(UnitSupporter.class, new UnitSupporter() {

        @Override
        public boolean isRefurbishIdAvailable(String refurbishId) {
            return Pattern.matches("([2-8][0-9]{4}|A1[0-9]{3})", refurbishId);
        }

        @Override
        public boolean isSerialAvailable(String serial) {
            if (serial == null)
                return true;
            return !serial.startsWith("AAAA");
        }

        @Override
        public String findRefurbishIdBySerial(String serial) {
            if (serial == null)
                return null;
            if (serial.startsWith("B"))
                return "12345";
            return null;
        }
    });
    Dl.remote().add(UniqueUnitAgent.class, new UniqueUnitAgent() {

        @Override
        public Product findProductByPartNo(String partNo) {
            return products.stream().filter(p -> Objects.equals(partNo, p.getPartNo())).findFirst().orElse(null);
        }

        // <editor-fold defaultstate="collapsed" desc="Unneeded Methods">
        @Override
        public UniqueUnit findUnitByIdentifierEager(UniqueUnit.Identifier type, String identifier) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> long count(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAll(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAll(Class<T> entityClass, int start, int amount) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAllEager(Class<T> entityClass) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> List<T> findAllEager(Class<T> entityClass, int start, int amount) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findById(Class<T> entityClass, Object id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findById(Class<T> entityClass, Object id, LockModeType lockModeType) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findByIdEager(Class<T> entityClass, Object id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public <T> T findByIdEager(Class<T> entityClass, Object id, LockModeType lockModeType) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Product findProductByPartNoEager(String partNo) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public CategoryProduct createOrUpdate(CategoryProductDto dto, String username) throws NullPointerException {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        // </editor-fold>
        @Override
        public Reply<Void> deleteCategoryProduct(long id) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Reply<Void> addToUnitCollection(PicoUnit unit, long unitCollectionId) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Reply<Void> unsetUnitCollection(PicoUnit unit) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Reply<UnitCollection> createOnProduct(long productId, UnitCollectionDto dto, String username) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Reply<UnitCollection> update(UnitCollectionDto dto, String username) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }

        @Override
        public Reply<Void> delete(UnitCollection dto) {
            // To change body of generated methods, choose Tools | Templates.
            throw new UnsupportedOperationException("Not supported yet.");
        }
    });
    Dl.remote().add(ProductProcessor.class, new ProductProcessorStub());
    UnitController controller = new UnitController();
    UnitModel model = new UnitModel();
    model.setContractor(ONESELF);
    model.setMode(ACER);
    controller.setModel(model);
    final UnitView view = new UnitView(null);
    view.setModel(model);
    controller.setView(view);
    view.setController(controller);
    controller.init();
    // To Model
    view.setVisible(true);
    System.out.println("View canceled ? " + view.isCancel());
    System.out.println(view.getUnit());
    System.out.println(model.getProduct());
    System.out.println(model.getOperation());
    System.out.println(model.getOperationComment());
}
Also used : ProductModel(eu.ggnet.dwoss.spec.ee.entity.ProductModel) UIManager(javax.swing.UIManager) java.util(java.util) TradeName(eu.ggnet.dwoss.rules.TradeName) ONESELF(eu.ggnet.dwoss.rules.TradeName.ONESELF) CategoryProductDto(eu.ggnet.dwoss.uniqueunit.ee.entity.dto.CategoryProductDto) UniqueUnit(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit) CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) Dl(eu.ggnet.saft.Dl) UnitCollectionDto(eu.ggnet.dwoss.uniqueunit.ee.entity.dto.UnitCollectionDto) ProductSpec(eu.ggnet.dwoss.spec.ee.entity.ProductSpec) DocumentType(eu.ggnet.dwoss.rules.DocumentType) ProductSeries(eu.ggnet.dwoss.spec.ee.entity.ProductSeries) UnitSupporter(eu.ggnet.dwoss.receipt.ee.UnitSupporter) Mandators(eu.ggnet.dwoss.mandator.Mandators) UniqueUnitAgent(eu.ggnet.dwoss.uniqueunit.ee.UniqueUnitAgent) ProductFamily(eu.ggnet.dwoss.spec.ee.entity.ProductFamily) PicoUnit(eu.ggnet.dwoss.uniqueunit.api.PicoUnit) UnitCollection(eu.ggnet.dwoss.uniqueunit.ee.entity.UnitCollection) SpecAgent(eu.ggnet.dwoss.spec.ee.SpecAgent) eu.ggnet.dwoss.mandator.api.value(eu.ggnet.dwoss.mandator.api.value) SpecGenerator(eu.ggnet.dwoss.spec.ee.assist.gen.SpecGenerator) ProductProcessor(eu.ggnet.dwoss.receipt.ee.ProductProcessor) ProductProcessorStub(eu.ggnet.dwoss.receipt.stub.ProductProcessorStub) Reply(eu.ggnet.saft.api.Reply) ACER(eu.ggnet.dwoss.rules.TradeName.ACER) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) Pattern(java.util.regex.Pattern) LockModeType(javax.persistence.LockModeType) ProductFamily(eu.ggnet.dwoss.spec.ee.entity.ProductFamily) CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) CategoryProduct(eu.ggnet.dwoss.uniqueunit.ee.entity.CategoryProduct) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) UnitCollection(eu.ggnet.dwoss.uniqueunit.ee.entity.UnitCollection) UniqueUnitAgent(eu.ggnet.dwoss.uniqueunit.ee.UniqueUnitAgent) UnitCollectionDto(eu.ggnet.dwoss.uniqueunit.ee.entity.dto.UnitCollectionDto) ProductSpec(eu.ggnet.dwoss.spec.ee.entity.ProductSpec) UniqueUnit(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit) Mandators(eu.ggnet.dwoss.mandator.Mandators) LockModeType(javax.persistence.LockModeType) ProductProcessorStub(eu.ggnet.dwoss.receipt.stub.ProductProcessorStub) UnitSupporter(eu.ggnet.dwoss.receipt.ee.UnitSupporter) SpecAgent(eu.ggnet.dwoss.spec.ee.SpecAgent) SpecGenerator(eu.ggnet.dwoss.spec.ee.assist.gen.SpecGenerator) ProductSeries(eu.ggnet.dwoss.spec.ee.entity.ProductSeries) ProductModel(eu.ggnet.dwoss.spec.ee.entity.ProductModel) DocumentType(eu.ggnet.dwoss.rules.DocumentType) PicoUnit(eu.ggnet.dwoss.uniqueunit.api.PicoUnit) CategoryProductDto(eu.ggnet.dwoss.uniqueunit.ee.entity.dto.CategoryProductDto) Reply(eu.ggnet.saft.api.Reply)

Aggregations

Mandators (eu.ggnet.dwoss.mandator.Mandators)2 ProductProcessorStub (eu.ggnet.dwoss.receipt.stub.ProductProcessorStub)2 SpecAgent (eu.ggnet.dwoss.spec.ee.SpecAgent)2 SpecGenerator (eu.ggnet.dwoss.spec.ee.assist.gen.SpecGenerator)2 ProductSpec (eu.ggnet.dwoss.spec.ee.entity.ProductSpec)2 LockModeType (javax.persistence.LockModeType)2 eu.ggnet.dwoss.mandator.api.value (eu.ggnet.dwoss.mandator.api.value)1 ProductProcessor (eu.ggnet.dwoss.receipt.ee.ProductProcessor)1 UnitSupporter (eu.ggnet.dwoss.receipt.ee.UnitSupporter)1 DesktopBundleView (eu.ggnet.dwoss.receipt.product.DesktopBundleView)1 DocumentType (eu.ggnet.dwoss.rules.DocumentType)1 TradeName (eu.ggnet.dwoss.rules.TradeName)1 ACER (eu.ggnet.dwoss.rules.TradeName.ACER)1 ONESELF (eu.ggnet.dwoss.rules.TradeName.ONESELF)1 DesktopBundle (eu.ggnet.dwoss.spec.ee.entity.DesktopBundle)1 ProductFamily (eu.ggnet.dwoss.spec.ee.entity.ProductFamily)1 ProductModel (eu.ggnet.dwoss.spec.ee.entity.ProductModel)1 ProductSeries (eu.ggnet.dwoss.spec.ee.entity.ProductSeries)1 PicoUnit (eu.ggnet.dwoss.uniqueunit.api.PicoUnit)1 UniqueUnitAgent (eu.ggnet.dwoss.uniqueunit.ee.UniqueUnitAgent)1