private void importColorPaletteDef() { final ImageInfo targetImageInfo = getFormModel().getModifiedImageInfo(); if (targetImageInfo == null) { // Normally this code is unreachable because, the export Button // is disabled if the _contrastStretchPane has no ImageInfo. return; } final SnapFileChooser fileChooser = new SnapFileChooser(); fileChooser.setDialogTitle("Import Colour Palette"); /*I18N*/ fileChooser.setFileFilter(getOrCreateColorPaletteDefinitionFileFilter()); fileChooser.setCurrentDirectory(getIODir().toFile()); final int result = fileChooser.showOpenDialog(getToolViewPaneControl()); final File file = fileChooser.getSelectedFile(); if (file != null && file.getParentFile() != null) { setIODir(file.getParentFile()); } if (result == JFileChooser.APPROVE_OPTION) { if (file != null && file.canRead()) { try { final ColorPaletteDef colorPaletteDef = ColorPaletteDef.loadColorPaletteDef(file); colorPaletteDef.getFirstPoint().setLabel(file.getName()); applyColorPaletteDef(colorPaletteDef, getFormModel().getRaster(), targetImageInfo); getFormModel().setModifiedImageInfo(targetImageInfo); childForm.updateFormModel(getFormModel()); updateMultiApplyState(); } catch (IOException e) { showErrorDialog("Failed to import colour palette:\n" + e.getMessage()); } } } }
private void initContentPanel() { moreOptionsPane = new MoreOptionsPane(this, formModel.isMoreOptionsFormCollapsedOnInit()); resetButton = createButton("org/esa/snap/rcp/icons/Undo24.gif"); resetButton.setName("ResetButton"); resetButton.setToolTipText("Reset to defaults"); /*I18N*/ resetButton.addActionListener(wrapWithAutoApplyActionListener(e -> resetToDefaults())); multiApplyButton = createButton("org/esa/snap/rcp/icons/MultiAssignBands24.gif"); multiApplyButton.setName("MultiApplyButton"); multiApplyButton.setToolTipText("Apply to other bands"); /*I18N*/ multiApplyButton.addActionListener(e -> applyMultipleColorPaletteDef()); importButton = createButton("tango/22x22/actions/document-open.png"); importButton.setName("ImportButton"); importButton.setToolTipText("Import colour palette from text file."); /*I18N*/ importButton.addActionListener( e -> { importColorPaletteDef(); applyChanges(); }); importButton.setEnabled(true); exportButton = createButton("tango/22x22/actions/document-save-as.png"); exportButton.setName("ExportButton"); exportButton.setToolTipText("Save colour palette to text file."); /*I18N*/ exportButton.addActionListener( e -> { exportColorPaletteDef(); childForm.updateFormModel(getFormModel()); }); exportButton.setEnabled(true); helpButton = createButton("tango/22x22/apps/help-browser.png"); helpButton.setToolTipText("Help."); /*I18N*/ helpButton.setName("helpButton"); helpButton.addActionListener(e -> toolView.getHelpCtx().display()); editorPanel = new JPanel(new BorderLayout(4, 4)); toolButtonsPanel = GridBagUtils.createPanel(); contentPanel = new JPanel(new BorderLayout(4, 4)); contentPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); contentPanel.setPreferredSize(new Dimension(320, 200)); contentPanel.add(editorPanel, BorderLayout.CENTER); contentPanel.add(toolButtonsPanel, BorderLayout.EAST); setProductSceneView(SnapApp.getDefault().getSelectedProductSceneView()); SnapApp.getDefault().getSelectionSupport(ProductSceneView.class).addHandler(this); }
private void installChildForm() { final ColorManipulationChildForm oldForm = childForm; ColorManipulationChildForm newForm = emptyForm; if (getFormModel().isValid()) { if (getFormModel().isContinuous3BandImage()) { if (oldForm instanceof Continuous3BandGraphicalForm) { newForm = oldForm; } else { newForm = getContinuous3BandGraphicalForm(); } } else if (getFormModel().isContinuous1BandImage()) { if (oldForm instanceof Continuous1BandSwitcherForm) { newForm = oldForm; } else { newForm = getContinuous1BandSwitcherForm(); } } else if (getFormModel().isDiscrete1BandImage()) { if (oldForm instanceof Discrete1BandTabularForm) { newForm = oldForm; } else { newForm = getDiscrete1BandTabularForm(); } } else { if (oldForm instanceof Continuous1BandSwitcherForm) { newForm = oldForm; } else { newForm = getContinuous1BandSwitcherForm(); } } } if (newForm != oldForm) { childForm = newForm; installToolButtons(); installMoreOptions(); editorPanel.removeAll(); editorPanel.add(childForm.getContentPanel(), BorderLayout.CENTER); if (!(childForm instanceof EmptyImageInfoForm)) { editorPanel.add(moreOptionsPane.getContentPanel(), BorderLayout.SOUTH); } revalidateToolViewPaneControl(); if (oldForm != null) { oldForm.handleFormHidden(getFormModel()); } childForm.handleFormShown(getFormModel()); } else { childForm.updateFormModel(getFormModel()); } }