public void updateParameters() { OperatorUIUtils.updateParamList(bandList, paramMap, OperatorUIUtils.SOURCE_BAND_NAMES); final FilterOperator.Filter filter = getSelectedFilter(tree); if (filter != null) { paramMap.put("selectedFilterName", filter.toString()); } final String kernelFileStr = kernelFile.getText(); if (!kernelFileStr.isEmpty()) { paramMap.put("userDefinedKernelFile", new File(kernelFileStr)); } }
public void initParameters() { OperatorUIUtils.initParamList(bandList, getBandNames()); final String filterName = (String) paramMap.get("selectedFilterName"); if (filterName != null) { setSelectedFilter(filterName); } final File kFile = (File) paramMap.get("userDefinedKernelFile"); if (kFile != null) { kernelFile.setText(kFile.getAbsolutePath()); } }
private JTree createTree() { root = new DefaultMutableTreeNode("@root"); root.add(createNodes("Detect Lines", FilterOperator.LINE_DETECTION_FILTERS)); root.add(createNodes("Detect Gradients (Emboss)", FilterOperator.GRADIENT_DETECTION_FILTERS)); root.add(createNodes("Smooth and Blurr", FilterOperator.SMOOTHING_FILTERS)); root.add(createNodes("Sharpen", FilterOperator.SHARPENING_FILTERS)); root.add(createNodes("Enhance Discontinuities", FilterOperator.LAPLACIAN_FILTERS)); //root.add(createNodes("Non-Linear Filters", FilterOperator.NON_LINEAR_FILTERS)); final JTree tree = new JTree(root); tree.setRootVisible(false); tree.setShowsRootHandles(true); tree.setCellRenderer(new MyDefaultTreeCellRenderer()); tree.putClientProperty("JTree.lineStyle", "Angled"); expandAll(tree); return tree; }
public JComponent CreateOpTab(String operatorName, Map<String, Object> parameterMap, AppContext appContext) { initializeOperatorUI(operatorName, parameterMap); JComponent panel = createPanel(); initParameters(); kernelFile.setColumns(30); kernelFileBrowseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { final File file = Dialogs.requestFileForOpen("User Defined Kernel File", false, null, "snap.filterDir"); kernelFile.setText(file.getAbsolutePath()); } }); return panel; }
@Test public void testLoadParameters() { parameterMap.put("selectedFilterName", "High-Pass 5x5"); JComponent component = filterOpUI.CreateOpTab(operatorName, parameterMap, null); assertNotNull(component); FilterOperator.Filter filter = FilterOpUI.getSelectedFilter(filterOpUI.getTree()); assertNotNull(filter); filterOpUI.setSelectedFilter("Arithmetic 5x5 Mean"); filterOpUI.updateParameters(); Object o = parameterMap.get("selectedFilterName"); assertTrue(o.equals("Arithmetic 5x5 Mean")); }
public void setSelectedFilter(String filterName) { final DefaultMutableTreeNode item = findItem(root, filterName); if (item != null) { tree.setSelectionPath(new TreePath(item.getPath())); } }
private JComponent createPanel() { tree = createTree(); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); final JScrollPane treeView = new JScrollPane(tree); final JPanel contentPane = new JPanel(new BorderLayout(4, 4)); contentPane.setLayout(new GridBagLayout()); final GridBagConstraints gbc = DialogUtils.createGridBagConstraints(); contentPane.add(new JLabel("Source Bands:"), gbc); gbc.fill = GridBagConstraints.BOTH; gbc.gridx = 1; gbc.weighty = 2; contentPane.add(new JScrollPane(bandList), gbc); gbc.weighty = 4; gbc.gridy++; DialogUtils.addComponent(contentPane, gbc, filterLabel, treeView); gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weighty = 1; gbc.gridy++; DialogUtils.addComponent(contentPane, gbc, kernelFileLabel, kernelFile); DialogUtils.enableComponents(kernelFileLabel, kernelFile, true); gbc.gridx = 2; contentPane.add(kernelFileBrowseButton, gbc); DialogUtils.fillPanel(contentPane, gbc); return contentPane; }
@Test public void testCreateOpTab() { JComponent component = filterOpUI.CreateOpTab(operatorName, parameterMap, null); assertNotNull(component); }
private static DefaultMutableTreeNode findItem(DefaultMutableTreeNode parentItem, String filterName) { if (!parentItem.isLeaf()) { final Enumeration enumeration = parentItem.children(); while (enumeration.hasMoreElements()) { final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) enumeration.nextElement(); final DefaultMutableTreeNode found = findItem(treeNode, filterName); if (found != null) return found; } } if (parentItem.toString().equals(filterName)) return parentItem; return null; }
public UIValidation validateParameters() { if (sourceProducts != null) { if (getSelectedFilter(tree) == null && kernelFile.getText().equals("")) return new UIValidation(UIValidation.State.ERROR, "Filter not selected"); } return new UIValidation(UIValidation.State.OK, ""); }