@Override public Action createContextAwareInstance(Lookup actionContext) { return new CloseOtherProductsAction(actionContext); }
@Override public void resultChanged(LookupEvent ev) { setEnableState(); Lookup.Result result = (Lookup.Result) ev.getSource(); selectedProductList = result.allInstances(); }
private void setEnableState() { products = SnapApp.getDefault().getProductManager().getProducts(); ProductNode productNode = lkp.lookup(ProductNode.class); setEnabled(productNode != null && products.length > 1); }
@Override public void actionPerformed(final ActionEvent event) { final ProductNode productNode = lkp.lookup(ProductNode.class); products = SnapApp.getDefault().getProductManager().getProducts(); // final Product selectedProduct = productNode.getProduct(); List<Product> selectedProduct = (List<Product>) selectedProductList.stream().collect(Collectors.toList()); final Set<Product> productsToClose = new HashSet<>(); for (Product product : products) { if (!selectedProduct.contains(product)) { productsToClose.add(product); } } CloseProductAction.closeProducts(productsToClose); setEnableState(); }
public CloseOtherProductsAction(Lookup lkp) { super(Bundle.CTL_CloseAllOthersActionName()); this.lkp = lkp; Lookup.Result<ProductNode> lkpContext = lkp.lookupResult(ProductNode.class); lkpContext.addLookupListener(WeakListeners.create(LookupListener.class, this, lkpContext)); ProductManager productManager = SnapApp.getDefault().getProductManager(); productManager.addListener(new CloseOtherProductListener()); setEnableState(); }