@Override public void productRemoved(ProductManager.Event event) { final Product product = event.getProduct(); if (product.getProductType().equals(TIME_SERIES_PRODUCT_TYPE)) { final TimeSeriesMapper timeSeriesMapper = TimeSeriesMapper.getInstance(); final AbstractTimeSeries timeSeries = timeSeriesMapper.getTimeSeries(product); final Product[] sourceProducts = timeSeries.getSourceProducts(); final ProductManager productManager = VisatApp.getApp().getProductManager(); for (Product sourceProduct : sourceProducts) { if (!productManager.contains(sourceProduct)) { sourceProduct.dispose(); } } timeSeriesMapper.remove(product); } } };
/** * Adds the given product to this product manager if it does not already exists and sets it's reference number one * biger than the greatest reference number in this product manager. * * @param product the product to be added, ignored if <code>null</code> */ public void addProduct(Product product) { if (product != null) { if (contains(product)) { return; } if (productList.add(product)) { setProductManager(product); if (product.getRefNo() <= 0) { product.setRefNo(getNextRefNo() + 1); } product.addProductNodeListener(productNodeNameChangeListener); fireEvent(product, PRODUCT_ADDED); } } }