Revision: 6022 http://sourceforge.net/p/jump-pilot/code/6022 Author: ma15569 Date: 2018-12-20 15:30:15 +0000 (Thu, 20 Dec 2018) Log Message: ----------- Disable Stretch panel on RasterStyleDialog if selected raster has only one value
Modified Paths: -------------- core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java Modified: core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java =================================================================== --- core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java 2018-12-20 15:22:42 UTC (rev 6021) +++ core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java 2018-12-20 15:30:15 UTC (rev 6022) @@ -1,6 +1,8 @@ package org.openjump.core.rasterimage.styler.ui; import java.awt.Color; +import java.awt.Component; +import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.NoninvertibleTransformException; @@ -11,6 +13,8 @@ import javax.swing.JColorChooser; import javax.swing.JComponent; import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JPanel; import org.openjump.core.rasterimage.RasterImageLayer; import org.openjump.core.rasterimage.RasterSymbology; @@ -27,6 +31,8 @@ import com.vividsolutions.jump.workbench.WorkbenchContext; import com.vividsolutions.jump.workbench.model.LayerEventType; import com.vividsolutions.jump.workbench.ui.ErrorDialog; +import com.vividsolutions.jump.workbench.ui.renderer.style.ColorThemingStylePanel; +import com.vividsolutions.jump.workbench.ui.style.StylePanel; import de.fho.jump.pirol.utilities.settings.PirolPlugInSettings; @@ -384,8 +390,17 @@ minMaxValues); singleValuesPanel = new SingleValuesPanel(this, Utils.purgeNoData(rasterImageLayer.getActualRasterData(), rasterImageLayer), rasterImageLayer); - jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabStretched"), stretchedPanel); - jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabIntervals"), intervalPanel); + if (stats.getMin(band) == stats.getMax(band)) { + final DummyPanel pan = new DummyPanel("No stretched classification available, this raster has only one value: " + stats.getMax(band)); + jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabStretched"), pan); + jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabIntervals"), intervalPanel); + for (final Component c2 : intervalPanel.getComponents()) { + c2.setEnabled(false); + } + } else { + jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabStretched"), stretchedPanel); + jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabIntervals"), intervalPanel); + } jTabbedPane_Type.addTab(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.tabSingleValues"), singleValuesPanel); pack(); @@ -593,4 +608,33 @@ } } + + private class DummyPanel extends JPanel implements StylePanel { + + private static final long serialVersionUID = 2217457292163045134L; + + /** + * + */ + private DummyPanel(String label) { + // GridBagLayout so it gets centered. [Jon Aquino] + super(new GridBagLayout()); + add(new JLabel(label)); + } + + @Override + public String getTitle() { + return ColorThemingStylePanel.TITLE; + } + + @Override + public void updateStyles() { + // unused but defined in the interface + } + + @Override + public String validateInput() { + return null; + } + } } _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel