public void setSourceProduct(final Product product) { if (sourceProductSelector != null) { sourceProductSelector.setSelectedProduct(product); if (product != null && product.getFileLocation() != null) { paramMap.put(FILE_PARAMETER, product.getFileLocation()); } } }
srcProduct = CommonReaders.readProduct(file); sourceProductSelector.setSelectedProduct(srcProduct); } catch (IOException e) {
@Override protected void done() { Product product = null; try { product = get(); if (product == null) { throw new IOException(MessageFormat.format("File ''{0}'' could not be read.", this.file.getPath())); } if (productFilter.accept(product)) { setSelectedProduct(product); } else { final String message = String.format("Product [%s] is not a valid source.", product.getFileLocation().getCanonicalPath()); handleError(message); product.dispose(); } } catch (InterruptedException | IOException | ExecutionException e) { if (product != null) { product.dispose(); } handleError(e.getMessage()); e.printStackTrace(); } finally { window.setCursor(defaultCursor); } }
S2tbxMosaicIOPanel(AppContext appContext, S2tbxMosaicFormModel mosaicModel, TargetProductSelector selector) { this.appContext = appContext; this.mosaicModel = mosaicModel; propertySet = mosaicModel.getPropertySet(); final S2tbxFileArrayEditor.EditorParent context = new S2tbxFileArrayEditorContext(appContext); sourceFileEditor = new S2tbxFileArrayEditor(context, "Source products") { @Override protected JFileChooser createFileChooserDialog() { final JFileChooser fileChooser = super.createFileChooserDialog(); fileChooser.setDialogTitle("Multi-size Mosaic - Open Source Product(s)"); return fileChooser; } }; targetProductSelector = selector; updateProductSelector = new SourceProductSelector(appContext); updateProductSelector.setProductFilter(new UpdateProductFilter()); init(); propertySet.addPropertyChangeListener(S2tbxMosaicFormModel.PROPERTY_UPDATE_MODE, evt -> { if (Boolean.TRUE.equals(evt.getNewValue())) { propertySet.setValue(S2tbxMosaicFormModel.PROPERTY_UPDATE_PRODUCT, updateProductSelector.getSelectedProduct()); } else { updateProductSelector.setSelectedProduct(null); } }); propertySet.addPropertyChangeListener(S2tbxMosaicFormModel.PROPERTY_UPDATE_PRODUCT, new TargetProductSelectorUpdater()); }
MosaicIOPanel(AppContext appContext, MosaicFormModel mosaicModel, TargetProductSelector selector) { this.appContext = appContext; this.mosaicModel = mosaicModel; propertySet = mosaicModel.getPropertySet(); final FileArrayEditor.EditorParent context = new FileArrayEditorContext(appContext); sourceFileEditor = new FileArrayEditor(context, "Source products") { @Override protected JFileChooser createFileChooserDialog() { final JFileChooser fileChooser = super.createFileChooserDialog(); fileChooser.setDialogTitle("Mosaic - Open Source Product(s)"); return fileChooser; } }; targetProductSelector = selector; updateProductSelector = new SourceProductSelector(appContext); updateProductSelector.setProductFilter(new UpdateProductFilter()); init(); propertySet.addPropertyChangeListener(MosaicFormModel.PROPERTY_UPDATE_MODE, evt -> { if (Boolean.TRUE.equals(evt.getNewValue())) { propertySet.setValue(MosaicFormModel.PROPERTY_UPDATE_PRODUCT, updateProductSelector.getSelectedProduct()); } else { updateProductSelector.setSelectedProduct(null); } }); propertySet.addPropertyChangeListener(MosaicFormModel.PROPERTY_UPDATE_PRODUCT, new TargetProductSelectorUpdater()); }
@Test public void testNewProductIsDisposed() throws Exception { SourceProductSelector selector = new SourceProductSelector(appContext, "Source"); selector.initProducts(); Product newProduct = new Product("new", "T1", 0, 0); newProduct.setFileLocation(new File("")); selector.setSelectedProduct(newProduct); assertSame(newProduct, selector.getSelectedProduct()); selector.setSelectedProduct(defaultProducts[0]); assertSame(defaultProducts[0], selector.getSelectedProduct()); Assert.assertNotNull(newProduct.getFileLocation()); selector.releaseProducts(); Assert.assertNull(newProduct.getFileLocation()); // assert that new product is disposed, because it is not selected }
@Test public void testNewProductIsNotDisposed() throws Exception { SourceProductSelector selector = new SourceProductSelector(appContext, "Source"); selector.initProducts(); selector.setSelectedProduct(defaultProducts[0]); assertSame(defaultProducts[0], selector.getSelectedProduct()); Product newProduct = new Product("new", "T1", 0, 0); newProduct.setFileLocation(new File("")); selector.setSelectedProduct(newProduct); assertSame(newProduct, selector.getSelectedProduct()); Assert.assertNotNull(newProduct.getFileLocation()); selector.releaseProducts(); Assert.assertNotNull(newProduct.getFileLocation()); // assert that new product is not disposed while it is selected }
@Test public void testSetSelectedProduct() throws Exception { SourceProductSelector selector = new SourceProductSelector(appContext, "Source"); selector.initProducts(); Product selectedProduct = selector.getSelectedProduct(); assertSame(appContext.getSelectedProduct(), selectedProduct); selector.setSelectedProduct(defaultProducts[1]); selectedProduct = selector.getSelectedProduct(); assertSame(defaultProducts[1], selectedProduct); Product oldProduct = new Product("new", "T1", 0, 0); oldProduct.setFileLocation(new File("")); selector.setSelectedProduct(oldProduct); selectedProduct = selector.getSelectedProduct(); assertSame(oldProduct, selectedProduct); Product newProduct = new Product("new", "T2", 0, 0); selector.setSelectedProduct(newProduct); selectedProduct = selector.getSelectedProduct(); assertSame(newProduct, selectedProduct); Assert.assertNull(oldProduct.getFileLocation()); // assert that old product is disposed }
bindingContext.getPropertySet().getProperty(TARGET_RESOLUTION_PROPERTY_NAME).getDescriptor().setValueRange(valueRange); productChangedHandler = new ProductChangedHandler(); sourceProductSelectorList.get(0).setSelectedProduct(product); sourceProductSelectorList.get(0).addSelectionChangeListener(productChangedHandler);