package tryout; import eu.ggnet.dwoss.stock.entity.StockTransactionStatusType; import eu.ggnet.dwoss.stock.entity.Stock; import eu.ggnet.dwoss.stock.entity.StockTransactionType; import eu.ggnet.dwoss.stock.entity.StockTransaction; import eu.ggnet.dwoss.stock.entity.StockUnit; import java.awt.Dimension; import java.awt.Rectangle; import java.util.*; import java.util.Map.Entry; import java.util.stream.Collectors; import javax.persistence.LockModeType; import javax.swing.*; import org.junit.Test; import eu.ggnet.saft.core.Client; import eu.ggnet.dwoss.misc.op.SalesChannelHandlerOperation.LastCharsRefurbishIdSorter; import eu.ggnet.dwoss.misc.saleschannel.SalesChannelManagerDialog; import eu.ggnet.dwoss.misc.saleschannel.SalesChannelTableModel; import eu.ggnet.dwoss.rules.SalesChannel; import eu.ggnet.dwoss.stock.StockAgent; import eu.ggnet.dwoss.stock.model.SalesChannelLine; import static eu.ggnet.dwoss.rules.SalesChannel.CUSTOMER; import static eu.ggnet.dwoss.rules.SalesChannel.RETAILER; /** * * @author oliver.guenther */ public class SalesChannelManager { @Test public void testSalesChannelManager() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | IllegalAccessException | InstantiationException | UnsupportedLookAndFeelException ex) { } final Stock laden = new Stock(0, "Laden"); final Stock lager = new Stock(1, "Lager"); Client.addSampleStub(StockAgent.class, new StockAgent() { @Override public <T> List<T> findAll(Class<T> entityClass) { if ( entityClass.equals(Stock.class) ) return (List<T>)Arrays.asList(laden, lager); return null; } //<editor-fold defaultstate="collapsed" desc="properties"> @Override public StockUnit findStockUnitByUniqueUnitIdEager(Integer uniqueUnitId) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public StockUnit findStockUnitByRefurbishIdEager(String refurbishId) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public List<StockTransaction> findStockTransactionEager(StockTransactionType type, StockTransactionStatusType statusType) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public List<StockTransaction> findStockTransactionEager(StockTransactionType type, StockTransactionStatusType statusType, int start, int amount) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public List<StockUnit> findStockUnitsByRefurbishIdEager(List<String> refurbishIds) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> T persist(T t) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> T merge(T t) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> void delete(T t) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public StockTransaction findOrCreateRollInTransaction(int stockId, String userName, String comment) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> long count(Class<T> entityClass) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> List<T> findAll(Class<T> entityClass, int start, int amount) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> List<T> findAllEager(Class<T> entityClass) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> List<T> findAllEager(Class<T> entityClass, int start, int amount) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> T findById(Class<T> entityClass, Object id) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> T findById(Class<T> entityClass, Object id, LockModeType lockModeType) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> T findByIdEager(Class<T> entityClass, Object id) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public <T> T findByIdEager(Class<T> entityClass, Object id, LockModeType lockModeType) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } //</editor-fold> }); JFrame f = new JFrame(); SalesChannelManagerDialog dialog = new SalesChannelManagerDialog(f); List<SalesChannelLine> lines = new ArrayList<>(); lines.add(new SalesChannelLine(0, "22231", "Acer Aspire 3222-üäö", "gebraucht", 10, 10, "Lager", SalesChannel.UNKNOWN, lager.getId())); lines.add(new SalesChannelLine(1, "23212", "Acer Aspire 5102WLMi-€", "gebraucht", 10, 10, "Lager", SalesChannel.RETAILER, lager.getId())); lines.add(new SalesChannelLine(2, "43521", "Acer Aspire X3200", "gebraucht", 10, 10, "Lager", SalesChannel.RETAILER, lager.getId())); lines.add(new SalesChannelLine(4, "58247", "Acer Aspire One A150X blau", "gebraucht", 10, 10, "Lager", SalesChannel.CUSTOMER, laden.getId())); lines.add(new SalesChannelLine(5, "82235", "Acer Aspire 8930G-583G32Bn", "gebraucht", 10, 10, "Lager", SalesChannel.CUSTOMER, laden.getId())); lines.add(new SalesChannelLine(6, "19262", "Acer Aspire 8920G-834G32Bn", "gebraucht", 10, 10, "Lager", SalesChannel.CUSTOMER, lager.getId())); lines.add(new SalesChannelLine(7, "17239", "Acer Aspire 7330-572G16Mn", "Originalkarton, nahezu neuwertig", 10, 10, "Lager", SalesChannel.UNKNOWN, lager.getId())); Map<SalesChannel, Stock> stockToChannel = new EnumMap<>(SalesChannel.class); stockToChannel.put(CUSTOMER, laden); stockToChannel.put(RETAILER, lager); dialog.setModel(new SalesChannelTableModel(lines, stockToChannel)); Dimension dim = dialog.getToolkit().getScreenSize(); Rectangle abounds = dialog.getBounds(); dialog.setLocation((int)((dim.width - abounds.width) / 3), (dim.height - abounds.height) / 2); dialog.setVisible(true); System.out.println("OK = " + dialog.isOk()); Map<Stock, List<String>> destinationsWithStockUnitIds = lines .stream() .filter(l -> l.getDestination() != null) // No Destination change .sorted(new LastCharsRefurbishIdSorter()) // Sort .collect(Collectors.groupingBy(SalesChannelLine::getDestination, Collectors.mapping(SalesChannelLine::getRefurbishedId, Collectors.toList()))); for (Entry<Stock, List<String>> entry : destinationsWithStockUnitIds.entrySet()) { System.out.println(entry.getKey().getName() + ",refurbishIds=" + entry.getValue()); } f.dispose(); } }