@Override public JComponent CreateOpTab(String operatorName, Map<String, Object> parameterMap, AppContext appContext) { OperatorSpi operatorSpi = GPF.getDefaultInstance().getOperatorSpiRegistry().getOperatorSpi(operatorName); if (operatorSpi == null) { throw new IllegalArgumentException("No SPI found for operator name '" + operatorName + "'"); } operatorDescriptor = operatorSpi.getOperatorDescriptor(); parameterSupport = new OperatorParameterSupport(operatorDescriptor); final PropertySet propertySet = parameterSupport.getPropertySet(); bindingContext = new BindingContext(propertySet); if (sourceProducts != null) { for (Band band : sourceProducts[0].getBands()) { listBands.add(band.getName()); } } initializeOperatorUI(operatorName, parameterMap); final JComponent panel = createPanel(); initParameters(); return new JScrollPane(panel); }
private void initForm() { form = new JTabbedPane(); form.add("I/O Parameters", ioParametersPanel); //if (bindingContext.getPropertySet().getProperties().length > 0) { // final PropertyPane parametersPane = new PropertyPane(bindingContext); // final JPanel parametersPanel = parametersPane.createPanel(); // parametersPanel.setBorder(new EmptyBorder(4, 4, 4, 4)); // form.add("Processing Parameters", new JScrollPane(parametersPanel)); // updateSourceProduct(); //} parametersPanel = opUI.CreateOpTab(operatorName, parameterSupport.getParameterMap(), appContext); parametersPanel.setBorder(new EmptyBorder(4, 4, 4, 4)); form.add("Processing Parameters", new JScrollPane(parametersPanel)); }
private void readFromFile(File selectedFile) throws Exception { try (FileReader reader = new FileReader(selectedFile)) { DomElement domElement = readXml(reader); parameterSupport.fromDomElement(domElement); } }
@Test public void testStoreAndLoadParameterWhenNotAllParamsAreGiven() throws IOException, ValidationException, ConversionException { final OperatorParameterSupport support = new OperatorParameterSupport(new TestOpSpi().getOperatorDescriptor()); PropertySet container = support.getPropertySet(); container.setValue("paramDouble", 0.42); final DomElement domElement = support.toDomElement(); // change container container.setValue("paramDouble", 23.67); container.setValue("paramString", "Another String"); container.setValue("paramComplex", new Complex(17)); support.fromDomElement(domElement); assertEquals(0.42, (double)support.getPropertySet().getValue("paramDouble"), 1.0e-6); assertEquals(null, support.getPropertySet().getValue("paramString")); assertEquals(null, support.getPropertySet().getValue("paramComplex")); }
final OperatorParameterSupport parameterSupport = new OperatorParameterSupport(operatorSpi.getOperatorDescriptor(), propertyContainer, parameterMap,
sourceProductMap.put(SOURCE_PRODUCT_FIELD, sourceProducts[0]); Operator op = GPF.getDefaultInstance().createOperator(operatorDescriptor.getAlias(), parameterSupport.getParameterMap(), sourceProductMap, null); for (Property property : parameterSupport.getPropertySet().getProperties()) { op.setParameter(property.getName(), property.getValue());
private void addParameters() { final PropertySet propertySet = parameterSupport.getPropertySet(); final List<SourceProductSelector> sourceProductSelectorList = ioParametersPanel.getSourceProductSelectorList();
@Override public void actionPerformed(ActionEvent event) { String parameterXml; try { DomElement domElement = parameterSupport.toDomElement(); parameterXml = domElement.toXml(); } catch (Exception e) { Debug.trace(e); Dialogs.showError(TITLE, "Failed to convert parameters to XML." + e.getMessage()); return; } JTextArea textArea = new JTextArea(parameterXml); textArea.setEditable(false); JScrollPane textAreaScrollPane = new JScrollPane(textArea); textAreaScrollPane.setPreferredSize(new Dimension(360, 360)); showInformationDialog(getOperatorName() + " Parameters", textAreaScrollPane); }
@Test public void testStoreAndLoadParameter() throws IOException, ValidationException, ConversionException { final OperatorParameterSupport support = new OperatorParameterSupport(new TestOpSpi().getOperatorDescriptor()); PropertySet container = support.getPropertySet(); container.setValue("paramDouble", 0.42); container.setValue("paramString", "A String!"); container.setValue("paramComplex", new Complex(25)); final DomElement domElement = support.toDomElement(); assertEquals("parameters", domElement.getName()); assertEquals(3, domElement.getChildCount()); assertNotNull(domElement.getChild("paramDouble")); assertEquals("0.42", domElement.getChild("paramDouble").getValue()); assertNotNull(domElement.getChild("paramString")); assertEquals("A String!", domElement.getChild("paramString").getValue()); assertNotNull(domElement.getChild("paramComplex")); assertNotNull(domElement.getChild("paramComplex").getChild("complexInt")); assertEquals("25", domElement.getChild("paramComplex").getChild("complexInt").getValue()); // change container container.setValue("paramDouble", 23.67); container.setValue("paramString", "Another String"); container.setValue("paramComplex", new Complex(17)); support.fromDomElement(domElement); assertEquals(0.42, (double)support.getPropertySet().getValue("paramDouble"), 1.0e-6); assertEquals("A String!", support.getPropertySet().getValue("paramString")); assertEquals(new Complex(25), support.getPropertySet().getValue("paramComplex")); }
ReprojectionDialog(boolean orthorectify, final String title, final String helpID, AppContext appContext) { super(appContext, title, ID_APPLY_CLOSE, helpID); form = new ReprojectionForm(getTargetProductSelector(), orthorectify, appContext); final OperatorSpi operatorSpi = GPF.getDefaultInstance().getOperatorSpiRegistry().getOperatorSpi(OPERATOR_NAME); ParameterUpdater parameterUpdater = new ReprojectionParameterUpdater(); OperatorParameterSupport parameterSupport = new OperatorParameterSupport(operatorSpi.getOperatorDescriptor(), null, null, parameterUpdater); OperatorMenu operatorMenu = new OperatorMenu(this.getJDialog(), operatorSpi.getOperatorDescriptor(), parameterSupport, appContext, helpID); getJDialog().setJMenuBar(operatorMenu.createDefaultMenu()); }
@Override public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser(); final FileNameExtensionFilter parameterFileFilter = createParameterFileFilter(); fileChooser.addChoosableFileFilter(parameterFileFilter); fileChooser.setFileFilter(parameterFileFilter); fileChooser.setDialogTitle(TITLE); fileChooser.setDialogType(JFileChooser.SAVE_DIALOG); applyCurrentDirectory(fileChooser); int response = fileChooser.showDialog(parentComponent, "Save"); if (JFileChooser.APPROVE_OPTION == response) { try { preserveCurrentDirectory(fileChooser); File selectedFile = fileChooser.getSelectedFile(); selectedFile = FileUtils.ensureExtension(selectedFile, "." + parameterFileFilter.getExtensions()[0]); DomElement domElement = parameterSupport.toDomElement(); escapeXmlElements(domElement); String xmlString = domElement.toXml(); writeToFile(xmlString, selectedFile); } catch (Exception e) { Debug.trace(e); Dialogs.showError(TITLE, "Could not load parameters.\n" + e.getMessage()); } } }
public CollocationDialog(AppContext appContext) { super(appContext, "Collocation", ID_APPLY_CLOSE, HELP_ID); final OperatorSpi operatorSpi = GPF.getDefaultInstance().getOperatorSpiRegistry().getOperatorSpi(CollocateOp.Spi.class.getName()); parameterSupport = new OperatorParameterSupport(operatorSpi.getOperatorDescriptor()); OperatorMenu operatorMenu = new OperatorMenu(this.getJDialog(), operatorSpi.getOperatorDescriptor(), parameterSupport, appContext, HELP_ID); getJDialog().setJMenuBar(operatorMenu.createDefaultMenu()); form = new CollocationForm(parameterSupport.getPropertySet(), getTargetProductSelector(), appContext); }
SpectralAngleMapperDialog(String title, String helpID, AppContext appContext) { super(appContext, title, helpID); final TargetProductSelector selector = getTargetProductSelector(); selector.getModel().setSaveToFileSelected(true); selector.getModel().setProductName("Spectral Angle Mapper"); selector.getSaveToFileCheckBox().setEnabled(false); final OperatorSpi operatorSpi = GPF.getDefaultInstance().getOperatorSpiRegistry().getOperatorSpi("SpectralAngleMapperOp"); if (operatorSpi == null) { throw new IllegalArgumentException("No SPI found for operator name '" + "SpectralAngleMapperOp" + "'"); } OperatorDescriptor operatorDescriptor = operatorSpi.getOperatorDescriptor(); form = new SpectralAngleMapperForm(operatorDescriptor, appContext, getTargetProductSelector()); SpectralAngleMapperFormModel formModel = form.getFormModel(); OperatorParameterSupport parameterSupport = new OperatorParameterSupport(operatorSpi.getOperatorDescriptor(), formModel.getPropertySet(), formModel.getParameterMap(), null); OperatorMenu operatorMenu = new OperatorMenu(this.getJDialog(), operatorSpi.getOperatorDescriptor(), parameterSupport, appContext, helpID); getJDialog().setJMenuBar(operatorMenu.createDefaultMenu()); }
@Override protected Product createTargetProduct() throws Exception { final HashMap<String, Product> sourceProducts = ioParametersPanel.createSourceProductsMap(); targetProduct = GPF.createProduct(operatorName, parameterSupport.getParameterMap(), sourceProducts); return targetProduct; }
ioParametersPanel = new DefaultIOParametersPanel(getAppContext(), operatorDescriptor, getTargetProductSelector(), targetProductSelectorDisplay); parameterSupport = new OperatorParameterSupport(operatorDescriptor); final ArrayList<SourceProductSelector> sourceProductSelectorList = ioParametersPanel.getSourceProductSelectorList(); final PropertySet propertySet = parameterSupport.getPropertySet(); bindingContext = new BindingContext(propertySet);
MosaicDialog(final String title, final String helpID, AppContext appContext) { super(appContext, title, ID_APPLY_CLOSE, helpID); final TargetProductSelector selector = getTargetProductSelector(); selector.getModel().setSaveToFileSelected(true); selector.getModel().setProductName("mosaic"); selector.getSaveToFileCheckBox().setEnabled(false); form = new MosaicForm(selector, appContext); final OperatorSpi operatorSpi = GPF.getDefaultInstance().getOperatorSpiRegistry().getOperatorSpi("Mosaic"); MosaicFormModel formModel = form.getFormModel(); OperatorParameterSupport parameterSupport = new OperatorParameterSupport(operatorSpi.getOperatorDescriptor(), formModel.getPropertySet(), formModel.getParameterMap(), null); OperatorMenu operatorMenu = new OperatorMenu(this.getJDialog(), operatorSpi.getOperatorDescriptor(), parameterSupport, appContext, helpID); getJDialog().setJMenuBar(operatorMenu.createDefaultMenu()); }
@Override protected Product createTargetProduct() throws Exception { final HashMap<String, Product> sourceProducts = ioParametersPanel.createSourceProductsMap(); return GPF.createProduct(operatorName, parameterSupport.getParameterMap(), sourceProducts); }
public ForestCoverChangeTargetProductDialog(String operatorName, AppContext appContext, String title, String helpID) { super(appContext, title, ID_APPLY_CLOSE, helpID); this.operatorName = operatorName; this.targetProductNameSuffix = ""; final TargetProductSelector selector = getTargetProductSelector(); selector.getModel().setSaveToFileSelected(false); selector.getSaveToFileCheckBox().setEnabled(true); processAnnotationsRec(ForestCoverChangeOp.class); this.operatorDescriptor = new OperatorDescriptorClass( this.parameterDescriptors.toArray(new ParameterDescriptor[0]), this.sourceProductDescriptors.toArray(new SourceProductDescriptor[0])); this.ioParametersPanel = new DefaultIOParametersPanel(getAppContext(), this.operatorDescriptor, getTargetProductSelector(), true); this.parameterSupport = new OperatorParameterSupport(this.operatorDescriptor); ArrayList<SourceProductSelector> sourceProductSelectorList = this.ioParametersPanel.getSourceProductSelectorList(); PropertySet propertySet = this.parameterSupport.getPropertySet(); this.bindingContext = new BindingContext(propertySet); SelectionChangeListener currentListenerProduct = new SelectionChangeListener() { public void selectionChanged(SelectionChangeEvent event) { Product product = sourceProductSelectorList.get(CURRENT_PRODUCT).getSelectedProduct(); if (product != null) { updateTargetProductName(product); } } public void selectionContextChanged(SelectionChangeEvent event) { } }; sourceProductSelectorList.get(CURRENT_PRODUCT).addSelectionChangeListener(currentListenerProduct); }
S2tbxMosaicDialog(final String title, final String helpID, AppContext appContext) { super(appContext, title, ID_APPLY_CLOSE, helpID); final TargetProductSelector selector = getTargetProductSelector(); selector.getModel().setSaveToFileSelected(false); selector.getModel().setProductName("Multi-size Mosaic"); selector.getSaveToFileCheckBox().setEnabled(true); form = new S2tbxMosaicForm(selector, appContext); final OperatorSpi operatorSpi = GPF.getDefaultInstance().getOperatorSpiRegistry().getOperatorSpi("Multi-size Mosaic"); S2tbxMosaicFormModel formModel = form.getFormModel(); OperatorParameterSupport parameterSupport = new OperatorParameterSupport(operatorSpi.getOperatorDescriptor(), formModel.getPropertySet(), formModel.getParameterMap(), null); OperatorMenu operatorMenu = new OperatorMenu(this.getJDialog(), operatorSpi.getOperatorDescriptor(), parameterSupport, appContext, helpID); getJDialog().setJMenuBar(operatorMenu.createDefaultMenu()); }
@Override protected Product createTargetProduct() throws Exception { HashMap<String, Product> sourceProducts = this.ioParametersPanel.createSourceProductsMap(); return GPF.createProduct(this.operatorName, this.parameterSupport.getParameterMap(), sourceProducts); }