Revision: 6682
http://sourceforge.net/p/jump-pilot/code/6682
Author: ma15569
Date: 2021-12-08 05:43:53 +0000 (Wed, 08 Dec 2021)
Log Message:
-----------
Substituded Utils.purgenoData methodwith rasterImageLayer.getValues method
Modified Paths:
--------------
core/trunk/src/org/openjump/core/rasterimage/styler/ui/IntervalPanel.java
core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java
Modified:
core/trunk/src/org/openjump/core/rasterimage/styler/ui/IntervalPanel.java
===================================================================
--- core/trunk/src/org/openjump/core/rasterimage/styler/ui/IntervalPanel.java
2021-12-08 05:39:14 UTC (rev 6681)
+++ core/trunk/src/org/openjump/core/rasterimage/styler/ui/IntervalPanel.java
2021-12-08 05:43:53 UTC (rev 6682)
@@ -21,7 +21,6 @@
import org.openjump.core.rasterimage.styler.ColorUtils;
import org.openjump.core.rasterimage.styler.RasterClassifier1D;
import org.openjump.core.rasterimage.styler.RasterStylesExtension;
-import org.openjump.core.rasterimage.styler.Utils;
import org.openjump.core.rasterimage.styler.ui.ColorsTablePanel.TableType;
import com.vividsolutions.jump.util.Range;
@@ -33,418 +32,438 @@
*/
public class IntervalPanel extends javax.swing.JPanel {
- /**
- * Creates new form IntervalPanel
- * @param parent parent Component
- * @param rasterImageLayer rasterImageLayer to symbolize
- * @param minMaxValues min and max pixel values for this image
- */
- public IntervalPanel(Component parent, RasterImageLayer rasterImageLayer,
Range minMaxValues) {
+ /**
+ * Creates new form IntervalPanel
+ *
+ * @param parent parent Component
+ * @param rasterImageLayer rasterImageLayer to symbolize
+ * @param minMaxValues min and max pixel values for this image
+ */
+ public IntervalPanel(Component parent, RasterImageLayer
rasterImageLayer, Range minMaxValues) {
- initComponents();
- this.parent = parent;
- this.rasterImageLayer = rasterImageLayer;
- this.minMaxValues = minMaxValues;
-
- fixComponents();
- }
+ initComponents();
+ this.parent = parent;
+ this.rasterImageLayer = rasterImageLayer;
+ this.minMaxValues = minMaxValues;
- public void reset() {
- try {
-
jComboBox_Method.setSelectedItem(classMethods_m.get(ClassificationMethod.JENKS));
- jTextField_Classes.setText("5");
- jComboBox_Gradient.setSelectedIndex(0);
- rampAll();
- } catch (Exception ex) {
- Logger.error(ex);
- }
- }
+ fixComponents();
+ }
- /**
- * This method is called from within the constructor to initialize the
form.
- * WARNING: Do NOT modify this code. The content of this method is always
- * regenerated by the Form Editor.
- */
- private void initComponents() {
- java.awt.GridBagConstraints gridBagConstraints;
+ public void reset() {
+ try {
+
jComboBox_Method.setSelectedItem(classMethods_m.get(ClassificationMethod.JENKS));
+ jTextField_Classes.setText("5");
+ jComboBox_Gradient.setSelectedIndex(0);
+ rampAll();
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
+ }
- jLabel_Method = new javax.swing.JLabel();
- jComboBox_Method = new javax.swing.JComboBox();
- jButton_Values = new javax.swing.JButton();
- jLabel_Classes = new javax.swing.JLabel();
- jTextField_Classes = new javax.swing.JTextField();
- jPanel_Table = new javax.swing.JPanel();
- jButton_AddRow = new javax.swing.JButton();
- jButton_RemoveRow = new javax.swing.JButton();
- jButton_Ramp = new javax.swing.JButton();
+ /**
+ * This method is called from within the constructor to initialize the
form.
+ * WARNING: Do NOT modify this code. The content of this method is
always
+ * regenerated by the Form Editor.
+ */
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
- setMinimumSize(new java.awt.Dimension(365, 160));
- setPreferredSize(new java.awt.Dimension(365, 160));
- addComponentListener(new java.awt.event.ComponentAdapter() {
- public void componentShown(java.awt.event.ComponentEvent evt) {
- formComponentShown(evt);
- }
- });
- java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
- layout.columnWidths = new int[] {0, 5, 0, 5, 0};
- layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0};
- setLayout(layout);
+ jLabel_Method = new javax.swing.JLabel();
+ jComboBox_Method = new javax.swing.JComboBox();
+ jButton_Values = new javax.swing.JButton();
+ jLabel_Classes = new javax.swing.JLabel();
+ jTextField_Classes = new javax.swing.JTextField();
+ jPanel_Table = new javax.swing.JPanel();
+ jButton_AddRow = new javax.swing.JButton();
+ jButton_RemoveRow = new javax.swing.JButton();
+ jButton_Ramp = new javax.swing.JButton();
- java.util.ResourceBundle bundle =
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle");
// NOI18N
-
jLabel_Method.setText(bundle.getString("IntervalPanel.jLabel.method")); //
NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 0;
- add(jLabel_Method, gridBagConstraints);
+ setMinimumSize(new java.awt.Dimension(365, 160));
+ setPreferredSize(new java.awt.Dimension(365, 160));
+ addComponentListener(new java.awt.event.ComponentAdapter() {
+ @Override
+ public void
componentShown(java.awt.event.ComponentEvent evt) {
+ formComponentShown(evt);
+ }
+ });
+ final java.awt.GridBagLayout layout = new
java.awt.GridBagLayout();
+ layout.columnWidths = new int[] { 0, 5, 0, 5, 0 };
+ layout.rowHeights = new int[] { 0, 5, 0, 5, 0, 5, 0, 5, 0 };
+ setLayout(layout);
- jComboBox_Method.setModel(new javax.swing.DefaultComboBoxModel<>(new
String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
-
jComboBox_Method.addActionListener(this::jComboBox_MethodActionPerformed);
+ final java.util.ResourceBundle bundle = java.util.ResourceBundle
+
.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle"); // NOI18N
+
jLabel_Method.setText(bundle.getString("IntervalPanel.jLabel.method")); //
NOI18N
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 0;
+ add(jLabel_Method, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 0;
- gridBagConstraints.gridwidth = 3;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.ipadx = 3;
- add(jComboBox_Method, gridBagConstraints);
+ jComboBox_Method.setModel(
+ new javax.swing.DefaultComboBoxModel<>(new
String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+
jComboBox_Method.addActionListener(this::jComboBox_MethodActionPerformed);
-
jButton_Values.setText(bundle.getString("IntervalPanel.jButton.RampAll")); //
NOI18N
- jButton_Values.addActionListener(this::jButton_ValuesActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridwidth = 3;
+ gridBagConstraints.fill =
java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.ipadx = 3;
+ add(jComboBox_Method, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 4;
- gridBagConstraints.gridy = 4;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- add(jButton_Values, gridBagConstraints);
+
jButton_Values.setText(bundle.getString("IntervalPanel.jButton.RampAll")); //
NOI18N
+
jButton_Values.addActionListener(this::jButton_ValuesActionPerformed);
-
jLabel_Classes.setText(bundle.getString("IntervalPanel.jLabel.Classes")); //
NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 2;
- add(jLabel_Classes, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 4;
+ gridBagConstraints.gridy = 4;
+ gridBagConstraints.fill =
java.awt.GridBagConstraints.HORIZONTAL;
+ add(jButton_Values, gridBagConstraints);
- jTextField_Classes.setText("5");
- jTextField_Classes.setMinimumSize(new java.awt.Dimension(70, 20));
- jTextField_Classes.setPreferredSize(new java.awt.Dimension(70, 20));
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 2;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.weightx = 1.0;
- add(jTextField_Classes, gridBagConstraints);
+
jLabel_Classes.setText(bundle.getString("IntervalPanel.jLabel.Classes")); //
NOI18N
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 2;
+ add(jLabel_Classes, gridBagConstraints);
- jPanel_Table.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jPanel_Table.setName(""); // NOI18N
- jPanel_Table.setLayout(new java.awt.BorderLayout());
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 8;
- gridBagConstraints.gridwidth = 5;
- gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
- gridBagConstraints.weighty = 0.5;
- add(jPanel_Table, gridBagConstraints);
+ jTextField_Classes.setText("5");
+ jTextField_Classes.setMinimumSize(new java.awt.Dimension(70,
20));
+ jTextField_Classes.setPreferredSize(new java.awt.Dimension(70,
20));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 2;
+ gridBagConstraints.fill =
java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.weightx = 1.0;
+ add(jTextField_Classes, gridBagConstraints);
-
jButton_AddRow.setText(bundle.getString("IntervalPanel.jButton.AddRow")); //
NOI18N
- jButton_AddRow.addActionListener(this::jButton_AddRowActionPerformed);
+
jPanel_Table.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jPanel_Table.setName(""); // NOI18N
+ jPanel_Table.setLayout(new java.awt.BorderLayout());
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 8;
+ gridBagConstraints.gridwidth = 5;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weighty = 0.5;
+ add(jPanel_Table, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 6;
- add(jButton_AddRow, gridBagConstraints);
+
jButton_AddRow.setText(bundle.getString("IntervalPanel.jButton.AddRow")); //
NOI18N
+
jButton_AddRow.addActionListener(this::jButton_AddRowActionPerformed);
-
jButton_RemoveRow.setText(bundle.getString("IntervalPanel.jButton.RemoveRow"));
// NOI18N
-
jButton_RemoveRow.addActionListener(this::jButton_RemoveRowActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 6;
+ add(jButton_AddRow, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 6;
- add(jButton_RemoveRow, gridBagConstraints);
+
jButton_RemoveRow.setText(bundle.getString("IntervalPanel.jButton.RemoveRow"));
// NOI18N
+
jButton_RemoveRow.addActionListener(this::jButton_RemoveRowActionPerformed);
- jButton_Ramp.setText(bundle.getString("IntervalPanel.jButton.Ramp"));
// NOI18N
- jButton_Ramp.addActionListener(this::jButton_RampActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 6;
+ add(jButton_RemoveRow, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 4;
- gridBagConstraints.gridy = 6;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- add(jButton_Ramp, gridBagConstraints);
- }
+
jButton_Ramp.setText(bundle.getString("IntervalPanel.jButton.Ramp")); // NOI18N
+
jButton_Ramp.addActionListener(this::jButton_RampActionPerformed);
- private void jButton_ValuesActionPerformed(java.awt.event.ActionEvent evt)
{
- try {
- rampAll();
- } catch (Exception ex) {
- Logger.error(ex);
- }
- }
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 4;
+ gridBagConstraints.gridy = 6;
+ gridBagConstraints.fill =
java.awt.GridBagConstraints.HORIZONTAL;
+ add(jButton_Ramp, gridBagConstraints);
+ }
- private void jButton_AddRowActionPerformed(java.awt.event.ActionEvent evt)
{
- addRow();
- }
+ private void jButton_ValuesActionPerformed(java.awt.event.ActionEvent
evt) {
+ try {
+ rampAll();
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
+ }
- private void jButton_RemoveRowActionPerformed(java.awt.event.ActionEvent
evt) {
- removeRow();
- }
+ private void jButton_AddRowActionPerformed(java.awt.event.ActionEvent
evt) {
+ addRow();
+ }
- private void jButton_RampActionPerformed(java.awt.event.ActionEvent evt) {
- try {
- rampColors();
- } catch (Exception ex) {
- Logger.error(ex);
- }
- }
+ private void
jButton_RemoveRowActionPerformed(java.awt.event.ActionEvent evt) {
+ removeRow();
+ }
- private void jComboBox_MethodActionPerformed(java.awt.event.ActionEvent
evt) {
- // TODO add your handling code here:
- }
+ private void jButton_RampActionPerformed(java.awt.event.ActionEvent
evt) {
+ try {
+ rampColors();
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
+ }
- private void formComponentShown(java.awt.event.ComponentEvent evt) {
-
- if(firstTimeShown) {
- firstTimeShown = false;
- try {
- rampAll();
- } catch (Exception ex) {
- Logger.error(ex);
- }
- }
-
- }
+ private void jComboBox_MethodActionPerformed(java.awt.event.ActionEvent
evt) {
+ // TODO add your handling code here:
+ }
+ private void formComponentShown(java.awt.event.ComponentEvent evt) {
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JButton jButton_AddRow;
- private javax.swing.JButton jButton_Ramp;
- private javax.swing.JButton jButton_RemoveRow;
- private javax.swing.JButton jButton_Values;
- private javax.swing.JComboBox jComboBox_Method;
- private javax.swing.JLabel jLabel_Classes;
- private javax.swing.JLabel jLabel_Method;
- private javax.swing.JPanel jPanel_Table;
- private javax.swing.JTextField jTextField_Classes;
- // End of variables declaration//GEN-END:variables
+ if (firstTimeShown) {
+ firstTimeShown = false;
+ try {
+ rampAll();
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
+ }
- private void fixComponents() {
-
- classMethods_m.put(ClassificationMethod.EQUAL_RANGE,
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.EqualInterval"));
- classMethods_m.put(ClassificationMethod.GIVEN_INTERVAL,
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.GivenInterval"));
- classMethods_m.put(ClassificationMethod.JENKS,
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.Jenks"));
- classMethods_m.put(ClassificationMethod.MAX_BREAKS,
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.MaxBreaks"));
- classMethods_m.put(ClassificationMethod.MEAN_STDEV,
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.MeanStDev"));
- classMethods_m.put(ClassificationMethod.QUANTILE,
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.Quantiles"));
-
- jComboBox_Method.removeAllItems();
-
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.EQUAL_RANGE));
-
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.GIVEN_INTERVAL));
-
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.JENKS));
-
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.MAX_BREAKS));
-
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.MEAN_STDEV));
-
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.QUANTILE));
-
jComboBox_Method.setSelectedItem(classMethods_m.get(ClassificationMethod.JENKS));
+ }
- // Listener
- jComboBox_Method.addActionListener (new ActionListener () {
- @Override
- public void actionPerformed(ActionEvent e) {
-
- ClassificationMethod classMethod =
getKeyByValue(classMethods_m, jComboBox_Method.getSelectedItem().toString());
- if(classMethod == ClassificationMethod.GIVEN_INTERVAL) {
-
jLabel_Classes.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.jLabel.classwidth"));
- } else {
-
jLabel_Classes.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.jLabel.Classes"));
- }
-
- }
- });
-
- // Color ramps
- jComboBox_Gradient = GUIUtils.createStandardGradientComboBox(200, 18);
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton jButton_AddRow;
+ private javax.swing.JButton jButton_Ramp;
+ private javax.swing.JButton jButton_RemoveRow;
+ private javax.swing.JButton jButton_Values;
+ private javax.swing.JComboBox jComboBox_Method;
+ private javax.swing.JLabel jLabel_Classes;
+ private javax.swing.JLabel jLabel_Method;
+ private javax.swing.JPanel jPanel_Table;
+ private javax.swing.JTextField jTextField_Classes;
+ // End of variables declaration//GEN-END:variables
- java.awt.GridBagConstraints gridBagConstraints = new
java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 4;
- gridBagConstraints.gridwidth = 1;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
- gridBagConstraints.weighty = 0.0;
- gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
- add(jComboBox_Gradient, gridBagConstraints);
-
- GUIUtils.addGradientComboBoxToList(jComboBox_Gradient);
-
- }
-
- private void rampAll() throws Exception {
-
- int classesCount = 5;
- try {
- classesCount = Integer.parseInt(jTextField_Classes.getText());
- } catch(Exception ex) {
- JOptionPane.showMessageDialog(
- this,
-
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
-
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.numberOfClassesError"),
- RasterStylesExtension.extensionName,
- JOptionPane.WARNING_MESSAGE);
- return;
- }
- double classWidth = 0;
-
- double[] breaks = null;
- double[] rasterData =
Utils.purgeNoData(rasterImageLayer.getActualRasterData(),rasterImageLayer);
-
- ClassificationMethod classMethod = getKeyByValue(classMethods_m,
jComboBox_Method.getSelectedItem().toString());
- switch (classMethod) {
-
- case EQUAL_RANGE:
- breaks = Classifier1D.classifyEqualRange(rasterData,
classesCount);
- break;
- case GIVEN_INTERVAL:
- breaks =
RasterClassifier1D.classifyGivenInterval(rasterImageLayer, 0, classesCount);
- classWidth = classesCount;
- classesCount = breaks.length;
- break;
- case JENKS:
- /* Sampling needed */
- int top = 1000;
- if(rasterData.length > top) {
- List<Double> sampled_l = new ArrayList<Double>();
- sampled_l.add((Double) minMaxValues.getMin());
- sampled_l.add((Double) minMaxValues.getMax());
- for(int v=0; v<rasterData.length; v=v+(rasterData.length /
top)) {
- sampled_l.add(rasterData[v]);
- }
- double[] sampledRasterData = new double[sampled_l.size()];
- for(int v=0; v<sampled_l.size(); v++) {
- sampledRasterData[v] = sampled_l.get(v);
- }
- breaks =
Classifier1D.classifyNaturalBreaks(sampledRasterData, classesCount);
- break;
- }
-
- breaks = Classifier1D.classifyNaturalBreaks(rasterData,
classesCount);
- break;
- case MAX_BREAKS:
- breaks = Classifier1D.classifyMaxBreaks(rasterData,
classesCount);
- break;
- case MEAN_STDEV:
- breaks =
Classifier1D.classifyMeanStandardDeviation(rasterData, classesCount);
- break;
- case QUANTILE:
- breaks = Classifier1D.classifyEqualNumber(rasterData,
classesCount);
- break;
- }
+ private void fixComponents() {
- if(breaks == null) {
- throw new
Exception(java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.message.ErrorWhileClassifying"));
- }
+ classMethods_m.put(ClassificationMethod.EQUAL_RANGE,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.EqualInterval"));
+ classMethods_m.put(ClassificationMethod.GIVEN_INTERVAL,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.GivenInterval"));
+ classMethods_m.put(ClassificationMethod.JENKS,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.Jenks"));
+ classMethods_m.put(ClassificationMethod.MAX_BREAKS,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.MaxBreaks"));
+ classMethods_m.put(ClassificationMethod.MEAN_STDEV,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.MeanStDev"));
+ classMethods_m.put(ClassificationMethod.QUANTILE,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.Quantiles"));
- ColorMapEntry[] paletteColorMapEntries = ((GradientCanvas)
jComboBox_Gradient.getSelectedItem()).getColorMapEntries();
-
- /* Calculate colors */
- ColorUtils colorUtils = new ColorUtils();
- ColorMapEntry[] colorMapEntries = new ColorMapEntry[classesCount];
- int colorsCount = paletteColorMapEntries.length;
-
- double minVal = (Double) minMaxValues.getMin();
- if(classMethod == ClassificationMethod.GIVEN_INTERVAL) {
- minVal = Math.floor((Double) minMaxValues.getMin() / classWidth) *
classWidth;
- }
-
- colorMapEntries[0] = new ColorMapEntry(minVal,
paletteColorMapEntries[0].getColor());
- for(int c=1; c<classesCount; c++) {
-
- double cellRelDistance = (double) c / (double) (classesCount-1);
- double colorRelDistance = cellRelDistance * (colorsCount - 1);
-
- Color startColor = paletteColorMapEntries[(int)
Math.floor(colorRelDistance)].getColor();
- Color endColor = paletteColorMapEntries[(int)
Math.ceil(colorRelDistance)].getColor();
-
- Color color = colorUtils.interpolateColor(startColor, endColor,
cellRelDistance);
- colorMapEntries[c] = new ColorMapEntry(breaks[c-1], color);
- }
-
- updateTable(colorMapEntries);
-
- }
-
- private void addRow() {
- colorsTablePanel.addRows();
- }
-
- private void removeRow() {
- colorsTablePanel.removeRow();
- }
-
- private void rampColors() throws Exception {
- if(colorsTablePanel.getSelectedRowsCount() != 2) {
- JOptionPane.showMessageDialog(
- this,
-
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.EqualInterval.SelectTowRowsToRamp"),
- RasterStylesExtension.extensionName,
- JOptionPane.WARNING_MESSAGE);
- }
- colorsTablePanel.rampColors();
- }
-
- public static <T, E> T getKeyByValue(Map<T, E> map, E value) {
- for (Entry<T, E> entry : map.entrySet()) {
- if (value.equals(entry.getValue())) {
- return entry.getKey();
- }
- }
- return null;
- }
-
- public void plugRasterSymbology(RasterSymbology rasterSymbology) {
-
- updateTable(rasterSymbology.getColorMapEntries());
-
- }
-
- private void updateTable(ColorMapEntry[] colorMapEntries) {
-
- /* Update table */
- if(colorsTablePanel == null) {
- colorsTablePanel = new ColorsTablePanel(parent,
TableType.INTERVALS,
- colorMapEntries, rasterImageLayer.getNoDataValue(), false);
- GridBagLayout layout = (GridBagLayout)getLayout();
- GridBagConstraints gbc = layout.getConstraints(jPanel_Table);
- remove(jPanel_Table);
- add(colorsTablePanel, gbc, 5);
- validate();
- } else {
- colorsTablePanel.updateTable(colorMapEntries);
- }
-
- }
-
- public RasterSymbology getRasterStyler() throws Exception{
-
- RasterSymbology rasterSymbolizer = new
RasterSymbology(RasterSymbology.TYPE_INTERVALS);
- for (ColorMapEntry colorMapEntry :
colorsTablePanel.getColorMapEntries()) {
- rasterSymbolizer.addColorMapEntry(colorMapEntry.getUpperValue(),
colorMapEntry.getColor());
- }
-
- return rasterSymbolizer;
- }
-
- private final java.util.ResourceBundle bundle =
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle");
- private final Component parent;
- private final Map<ClassificationMethod,String> classMethods_m = new
EnumMap<ClassificationMethod,String>(ClassificationMethod.class);
- private RasterImageLayer rasterImageLayer = null;
- private ColorsTablePanel colorsTablePanel = null;
- private final Range minMaxValues;
- private GradientComboBox jComboBox_Gradient;
- private boolean firstTimeShown = true;
-
- public enum ClassificationMethod {
-
- UNIQUE_VALUE, EQUAL_RANGE, GIVEN_INTERVAL, QUANTILE, MEAN_STDEV,
MAX_BREAKS, JENKS;
-
- }
+ jComboBox_Method.removeAllItems();
+
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.EQUAL_RANGE));
+
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.GIVEN_INTERVAL));
+
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.JENKS));
+
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.MAX_BREAKS));
+
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.MEAN_STDEV));
+
jComboBox_Method.addItem(classMethods_m.get(ClassificationMethod.QUANTILE));
+
jComboBox_Method.setSelectedItem(classMethods_m.get(ClassificationMethod.JENKS));
- public GradientComboBox getjComboBox_Gradient() {
- return jComboBox_Gradient;
- }
+ // Listener
+ jComboBox_Method.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ final ClassificationMethod classMethod =
getKeyByValue(classMethods_m,
+
jComboBox_Method.getSelectedItem().toString());
+ if (classMethod ==
ClassificationMethod.GIVEN_INTERVAL) {
+ jLabel_Classes.setText(bundle
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.jLabel.classwidth"));
+ } else {
+ jLabel_Classes.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.jLabel.Classes"));
+ }
+
+ }
+ });
+
+ // Color ramps
+ jComboBox_Gradient =
GUIUtils.createStandardGradientComboBox(200, 18);
+
+ final java.awt.GridBagConstraints gridBagConstraints = new
java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 4;
+ gridBagConstraints.gridwidth = 1;
+ gridBagConstraints.anchor =
java.awt.GridBagConstraints.LINE_START;
+ gridBagConstraints.weighty = 0.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ add(jComboBox_Gradient, gridBagConstraints);
+
+ GUIUtils.addGradientComboBoxToList(jComboBox_Gradient);
+
+ }
+
+ private void rampAll() throws Exception {
+
+ int classesCount = 5;
+ try {
+ classesCount =
Integer.parseInt(jTextField_Classes.getText());
+ } catch (final Exception ex) {
+ JOptionPane.showMessageDialog(this,
+
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.numberOfClassesError"),
+ RasterStylesExtension.extensionName,
JOptionPane.WARNING_MESSAGE);
+ return;
+ }
+ double classWidth = 0;
+
+ double[] breaks = null;
+ final double[] rasterData = rasterImageLayer.getValues(0);//
Utils.purgeNoData(rasterImageLayer.getActualRasterData(),rasterImageLayer);
+
+ final ClassificationMethod classMethod =
getKeyByValue(classMethods_m,
+ jComboBox_Method.getSelectedItem().toString());
+ switch (classMethod) {
+
+ case EQUAL_RANGE:
+ breaks = Classifier1D.classifyEqualRange(rasterData,
classesCount);
+ break;
+ case GIVEN_INTERVAL:
+ breaks =
RasterClassifier1D.classifyGivenInterval(rasterImageLayer, 0, classesCount);
+ classWidth = classesCount;
+ classesCount = breaks.length;
+ break;
+ case JENKS:
+ /* Sampling needed */
+ final int top = 1000;
+ if (rasterData.length > top) {
+ final List<Double> sampled_l = new
ArrayList<>();
+ sampled_l.add((Double) minMaxValues.getMin());
+ sampled_l.add((Double) minMaxValues.getMax());
+ for (int v = 0; v < rasterData.length; v = v +
(rasterData.length / top)) {
+ sampled_l.add(rasterData[v]);
+ }
+ final double[] sampledRasterData = new
double[sampled_l.size()];
+ for (int v = 0; v < sampled_l.size(); v++) {
+ sampledRasterData[v] = sampled_l.get(v);
+ }
+ breaks =
Classifier1D.classifyNaturalBreaks(sampledRasterData, classesCount);
+ break;
+ }
+
+ breaks = Classifier1D.classifyNaturalBreaks(rasterData,
classesCount);
+ break;
+ case MAX_BREAKS:
+ breaks = Classifier1D.classifyMaxBreaks(rasterData,
classesCount);
+ break;
+ case MEAN_STDEV:
+ breaks =
Classifier1D.classifyMeanStandardDeviation(rasterData, classesCount);
+ break;
+ case QUANTILE:
+ breaks = Classifier1D.classifyEqualNumber(rasterData,
classesCount);
+ break;
+ }
+
+ if (breaks == null) {
+ throw new Exception(java.util.ResourceBundle
+
.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.IntervalPanel.message.ErrorWhileClassifying"));
+ }
+
+ final ColorMapEntry[] paletteColorMapEntries =
((GradientCanvas) jComboBox_Gradient.getSelectedItem())
+ .getColorMapEntries();
+
+ /* Calculate colors */
+ final ColorUtils colorUtils = new ColorUtils();
+ final ColorMapEntry[] colorMapEntries = new
ColorMapEntry[classesCount];
+ final int colorsCount = paletteColorMapEntries.length;
+
+ double minVal = (Double) minMaxValues.getMin();
+ if (classMethod == ClassificationMethod.GIVEN_INTERVAL) {
+ minVal = Math.floor((Double) minMaxValues.getMin() /
classWidth) * classWidth;
+ }
+
+ colorMapEntries[0] = new ColorMapEntry(minVal,
paletteColorMapEntries[0].getColor());
+ for (int c = 1; c < classesCount; c++) {
+
+ final double cellRelDistance = (double) c / (double)
(classesCount - 1);
+ final double colorRelDistance = cellRelDistance *
(colorsCount - 1);
+
+ final Color startColor = paletteColorMapEntries[(int)
Math.floor(colorRelDistance)].getColor();
+ final Color endColor = paletteColorMapEntries[(int)
Math.ceil(colorRelDistance)].getColor();
+
+ final Color color =
colorUtils.interpolateColor(startColor, endColor, cellRelDistance);
+ colorMapEntries[c] = new ColorMapEntry(breaks[c - 1],
color);
+ }
+
+ updateTable(colorMapEntries);
+
+ }
+
+ private void addRow() {
+ colorsTablePanel.addRows();
+ }
+
+ private void removeRow() {
+ colorsTablePanel.removeRow();
+ }
+
+ private void rampColors() throws Exception {
+ if (colorsTablePanel.getSelectedRowsCount() != 2) {
+ JOptionPane.showMessageDialog(this,
java.util.ResourceBundle
+
.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle").getString(
+
"org.openjump.core.rasterimage.styler.ui.IntervalPanel.classMethods.EqualInterval.SelectTowRowsToRamp"),
+ RasterStylesExtension.extensionName,
JOptionPane.WARNING_MESSAGE);
+ }
+ colorsTablePanel.rampColors();
+ }
+
+ public static <T, E> T getKeyByValue(Map<T, E> map, E value) {
+ for (final Entry<T, E> entry : map.entrySet()) {
+ if (value.equals(entry.getValue())) {
+ return entry.getKey();
+ }
+ }
+ return null;
+ }
+
+ public void plugRasterSymbology(RasterSymbology rasterSymbology) {
+
+ updateTable(rasterSymbology.getColorMapEntries());
+
+ }
+
+ private void updateTable(ColorMapEntry[] colorMapEntries) {
+
+ /* Update table */
+ if (colorsTablePanel == null) {
+ colorsTablePanel = new ColorsTablePanel(parent,
TableType.INTERVALS, colorMapEntries,
+ rasterImageLayer.getNoDataValue(),
false);
+ final GridBagLayout layout = (GridBagLayout)
getLayout();
+ final GridBagConstraints gbc =
layout.getConstraints(jPanel_Table);
+ remove(jPanel_Table);
+ add(colorsTablePanel, gbc, 5);
+ validate();
+ } else {
+ colorsTablePanel.updateTable(colorMapEntries);
+ }
+
+ }
+
+ public RasterSymbology getRasterStyler() throws Exception {
+
+ final RasterSymbology rasterSymbolizer = new
RasterSymbology(RasterSymbology.TYPE_INTERVALS);
+ for (final ColorMapEntry colorMapEntry :
colorsTablePanel.getColorMapEntries()) {
+
rasterSymbolizer.addColorMapEntry(colorMapEntry.getUpperValue(),
colorMapEntry.getColor());
+ }
+
+ return rasterSymbolizer;
+ }
+
+ private final java.util.ResourceBundle bundle = java.util.ResourceBundle
+
.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle");
+ private final Component parent;
+ private final Map<ClassificationMethod, String> classMethods_m = new
EnumMap<>(
+ ClassificationMethod.class);
+ private RasterImageLayer rasterImageLayer = null;
+ private ColorsTablePanel colorsTablePanel = null;
+ private final Range minMaxValues;
+ private GradientComboBox jComboBox_Gradient;
+ private boolean firstTimeShown = true;
+
+ public enum ClassificationMethod {
+
+ UNIQUE_VALUE, EQUAL_RANGE, GIVEN_INTERVAL, QUANTILE,
MEAN_STDEV, MAX_BREAKS, JENKS;
+
+ }
+
+ public GradientComboBox getjComboBox_Gradient() {
+ return jComboBox_Gradient;
+ }
}
-
Modified:
core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java
===================================================================
---
core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java
2021-12-08 05:39:14 UTC (rev 6681)
+++
core/trunk/src/org/openjump/core/rasterimage/styler/ui/RasterStylesDialog.java
2021-12-08 05:43:53 UTC (rev 6682)
@@ -1,6 +1,9 @@
package org.openjump.core.rasterimage.styler.ui;
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.NoninvertibleTransformException;
@@ -20,7 +23,6 @@
import org.openjump.core.rasterimage.Stats;
import org.openjump.core.rasterimage.styler.RasterStylesExtension;
import org.openjump.core.rasterimage.styler.SLDHandler;
-import org.openjump.core.rasterimage.styler.Utils;
import org.openjump.core.ui.io.file.FileNameExtensionFilter;
import com.vividsolutions.jump.util.Range;
@@ -27,8 +29,8 @@
import com.vividsolutions.jump.util.StringUtil;
import com.vividsolutions.jump.workbench.Logger;
import com.vividsolutions.jump.workbench.WorkbenchContext;
+import com.vividsolutions.jump.workbench.model.LayerEventType;
import com.vividsolutions.jump.workbench.model.Layerable;
-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;
@@ -41,584 +43,609 @@
*/
public class RasterStylesDialog extends javax.swing.JDialog {
- /**
- * Creates new form SymbologyDialog
- * @param parent parent frame
- * @param modal true if Dialog is modal
- * @param context Workbench Context
- * @param rasterImageLayer one of the selected RasterImageLayer
- * @param band raster band to symbolize
- */
- public RasterStylesDialog(java.awt.Frame parent, boolean modal,
- WorkbenchContext context, RasterImageLayer rasterImageLayer, int
band) throws Exception {
-
- super(parent, modal);
- this.context = context;
- this.rasterImageLayer = rasterImageLayer;
- this.band = band;
-
- try {
- initComponents();
- fixComponents();
- } catch (Exception e) {
- // survive exception during initialization
- Logger.error(e);
- context.getErrorHandler().handleThrowable(e);
- }
- }
+ /**
+ * Creates new form SymbologyDialog
+ *
+ * @param parent parent frame
+ * @param modal true if Dialog is modal
+ * @param context Workbench Context
+ * @param rasterImageLayer one of the selected RasterImageLayer
+ * @param band raster band to symbolize
+ */
+ public RasterStylesDialog(java.awt.Frame parent, boolean modal,
WorkbenchContext context,
+ RasterImageLayer rasterImageLayer, int band) throws
Exception {
+ super(parent, modal);
+ this.context = context;
+ this.rasterImageLayer = rasterImageLayer;
+ this.band = band;
- /**
- * This method is called from within the constructor to initialize the
form.
- * WARNING: Do NOT modify this code. The content of this method is always
- * regenerated by the Form Editor.
- */
- //@SuppressWarnings("unchecked")
- private void initComponents() {
- java.awt.GridBagConstraints gridBagConstraints;
+ try {
+ initComponents();
+ fixComponents();
+ } catch (final Exception e) {
+ // survive exception during initialization
+ Logger.error(e);
+ context.getErrorHandler().handleThrowable(e);
+ }
+ }
- jTabbedPane_Type = new javax.swing.JTabbedPane();
- jPanel_OtherParams = new javax.swing.JPanel();
- jButton_NoDataValueColor = new javax.swing.JButton();
- jLabel_Transparency = new javax.swing.JLabel();
- jLabel_Transp_0 = new javax.swing.JLabel();
- jSlider_Transparency = new javax.swing.JSlider();
- jLabel_Transp_100 = new javax.swing.JLabel();
- jCheckBox_NoDataValue = new javax.swing.JCheckBox();
- jTextField_TranspValue = new javax.swing.JTextField();
- jButton_Load = new javax.swing.JButton();
- jButton_Save = new javax.swing.JButton();
- jButton_Cancel = new javax.swing.JButton();
- jButton_Restore = new javax.swing.JButton();
- jButton_Apply = new javax.swing.JButton();
- jButton_OK = new javax.swing.JButton();
+ /**
+ * This method is called from within the constructor to initialize the
form.
+ * WARNING: Do NOT modify this code. The content of this method is
always
+ * regenerated by the Form Editor.
+ */
+ // @SuppressWarnings("unchecked")
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
- setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
- setMinimumSize(new java.awt.Dimension(420, 450));
- getContentPane().setLayout(new java.awt.GridBagLayout());
+ jTabbedPane_Type = new javax.swing.JTabbedPane();
+ jPanel_OtherParams = new javax.swing.JPanel();
+ jButton_NoDataValueColor = new javax.swing.JButton();
+ jLabel_Transparency = new javax.swing.JLabel();
+ jLabel_Transp_0 = new javax.swing.JLabel();
+ jSlider_Transparency = new javax.swing.JSlider();
+ jLabel_Transp_100 = new javax.swing.JLabel();
+ jCheckBox_NoDataValue = new javax.swing.JCheckBox();
+ jTextField_TranspValue = new javax.swing.JTextField();
+ jButton_Load = new javax.swing.JButton();
+ jButton_Save = new javax.swing.JButton();
+ jButton_Cancel = new javax.swing.JButton();
+ jButton_Restore = new javax.swing.JButton();
+ jButton_Apply = new javax.swing.JButton();
+ jButton_OK = new javax.swing.JButton();
- jTabbedPane_Type.setAlignmentX(1.0F);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridwidth = 6;
- gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
- gridBagConstraints.weighty = 1.0;
- getContentPane().add(jTabbedPane_Type, gridBagConstraints);
+
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setMinimumSize(new java.awt.Dimension(420, 450));
+ getContentPane().setLayout(new java.awt.GridBagLayout());
-
jPanel_OtherParams.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jPanel_OtherParams.setMinimumSize(new java.awt.Dimension(400, 100));
- jPanel_OtherParams.setPreferredSize(new java.awt.Dimension(400, 100));
- jPanel_OtherParams.setLayout(new java.awt.GridBagLayout());
+ jTabbedPane_Type.setAlignmentX(1.0F);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridwidth = 6;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weighty = 1.0;
+ getContentPane().add(jTabbedPane_Type, gridBagConstraints);
- jButton_NoDataValueColor.setBackground(new java.awt.Color(204, 204,
204));
- jButton_NoDataValueColor.setForeground(new java.awt.Color(204, 204,
204));
- java.util.ResourceBundle bundle =
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle");
// NOI18N
-
jButton_NoDataValueColor.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_NoDataValueColor.text"));
// NOI18N
-
jButton_NoDataValueColor.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jButton_NoDataValueColor.setContentAreaFilled(false);
- jButton_NoDataValueColor.setDoubleBuffered(true);
- jButton_NoDataValueColor.setMaximumSize(new java.awt.Dimension(40,
25));
- jButton_NoDataValueColor.setMinimumSize(new java.awt.Dimension(40,
25));
- jButton_NoDataValueColor.setOpaque(true);
- jButton_NoDataValueColor.setPreferredSize(new java.awt.Dimension(40,
25));
-
jButton_NoDataValueColor.addActionListener(this::jButton_NoDataValueColorActionPerformed);
+
jPanel_OtherParams.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jPanel_OtherParams.setMinimumSize(new java.awt.Dimension(400,
100));
+ jPanel_OtherParams.setPreferredSize(new java.awt.Dimension(400,
100));
+ jPanel_OtherParams.setLayout(new java.awt.GridBagLayout());
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 1;
- gridBagConstraints.gridy = 0;
- gridBagConstraints.gridwidth = 2;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(6, 6, 6, 6);
- jPanel_OtherParams.add(jButton_NoDataValueColor, gridBagConstraints);
+ jButton_NoDataValueColor.setBackground(new java.awt.Color(204,
204, 204));
+ jButton_NoDataValueColor.setForeground(new java.awt.Color(204,
204, 204));
+ final java.util.ResourceBundle bundle = java.util.ResourceBundle
+
.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle"); // NOI18N
+ jButton_NoDataValueColor.setText(bundle
+
.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_NoDataValueColor.text"));
// NOI18N
+
jButton_NoDataValueColor.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jButton_NoDataValueColor.setContentAreaFilled(false);
+ jButton_NoDataValueColor.setDoubleBuffered(true);
+ jButton_NoDataValueColor.setMaximumSize(new
java.awt.Dimension(40, 25));
+ jButton_NoDataValueColor.setMinimumSize(new
java.awt.Dimension(40, 25));
+ jButton_NoDataValueColor.setOpaque(true);
+ jButton_NoDataValueColor.setPreferredSize(new
java.awt.Dimension(40, 25));
+
jButton_NoDataValueColor.addActionListener(this::jButton_NoDataValueColorActionPerformed);
-
jLabel_Transparency.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jLabel_Transparency.text"));
// NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
- jPanel_OtherParams.add(jLabel_Transparency, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridwidth = 2;
+ gridBagConstraints.anchor =
java.awt.GridBagConstraints.LINE_START;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(6, 6, 6, 6);
+ jPanel_OtherParams.add(jButton_NoDataValueColor,
gridBagConstraints);
- jLabel_Transp_0.setBackground(new java.awt.Color(0, 0, 0));
-
jLabel_Transp_0.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jLabel_Transp_0.text"));
// NOI18N
-
jLabel_Transp_0.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jLabel_Transp_0.setMaximumSize(new java.awt.Dimension(10, 10));
- jLabel_Transp_0.setMinimumSize(new java.awt.Dimension(10, 10));
- jLabel_Transp_0.setOpaque(true);
- jLabel_Transp_0.setPreferredSize(new java.awt.Dimension(10, 10));
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 1;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
- jPanel_OtherParams.add(jLabel_Transp_0, gridBagConstraints);
+ jLabel_Transparency.setText(bundle
+
.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jLabel_Transparency.text"));
// NOI18N
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 5);
+ jPanel_OtherParams.add(jLabel_Transparency, gridBagConstraints);
- jSlider_Transparency.setFont(new java.awt.Font("Tahoma", Font.PLAIN,
5)); // NOI18N
- jSlider_Transparency.setForeground(new java.awt.Color(102, 102, 102));
- jSlider_Transparency.setMajorTickSpacing(20);
- jSlider_Transparency.setMinorTickSpacing(5);
- jSlider_Transparency.setPaintTicks(true);
- jSlider_Transparency.setSnapToTicks(true);
- jSlider_Transparency.setValue(0);
- jSlider_Transparency.setMinimumSize(new java.awt.Dimension(150, 31));
- jSlider_Transparency.setPreferredSize(new java.awt.Dimension(150, 31));
-
jSlider_Transparency.addChangeListener(this::jSlider_TransparencyStateChanged);
+ jLabel_Transp_0.setBackground(new java.awt.Color(0, 0, 0));
+ jLabel_Transp_0.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jLabel_Transp_0.text"));
// NOI18N
+
jLabel_Transp_0.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jLabel_Transp_0.setMaximumSize(new java.awt.Dimension(10, 10));
+ jLabel_Transp_0.setMinimumSize(new java.awt.Dimension(10, 10));
+ jLabel_Transp_0.setOpaque(true);
+ jLabel_Transp_0.setPreferredSize(new java.awt.Dimension(10,
10));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.anchor =
java.awt.GridBagConstraints.LINE_END;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
+ jPanel_OtherParams.add(jLabel_Transp_0, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
- gridBagConstraints.weightx = 0.5;
- gridBagConstraints.insets = new java.awt.Insets(9, 0, 0, 0);
- jPanel_OtherParams.add(jSlider_Transparency, gridBagConstraints);
+ jSlider_Transparency.setFont(new java.awt.Font("Tahoma",
Font.PLAIN, 5)); // NOI18N
+ jSlider_Transparency.setForeground(new java.awt.Color(102, 102,
102));
+ jSlider_Transparency.setMajorTickSpacing(20);
+ jSlider_Transparency.setMinorTickSpacing(5);
+ jSlider_Transparency.setPaintTicks(true);
+ jSlider_Transparency.setSnapToTicks(true);
+ jSlider_Transparency.setValue(0);
+ jSlider_Transparency.setMinimumSize(new java.awt.Dimension(150,
31));
+ jSlider_Transparency.setPreferredSize(new
java.awt.Dimension(150, 31));
+
jSlider_Transparency.addChangeListener(this::jSlider_TransparencyStateChanged);
-
jLabel_Transp_100.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jLabel_Transp_100.text"));
// NOI18N
-
jLabel_Transp_100.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jLabel_Transp_100.setMaximumSize(new java.awt.Dimension(10, 10));
- jLabel_Transp_100.setMinimumSize(new java.awt.Dimension(10, 10));
- jLabel_Transp_100.setPreferredSize(new java.awt.Dimension(10, 10));
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 3;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
- jPanel_OtherParams.add(jLabel_Transp_100, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.fill =
java.awt.GridBagConstraints.HORIZONTAL;
+ gridBagConstraints.anchor =
java.awt.GridBagConstraints.LINE_START;
+ gridBagConstraints.weightx = 0.5;
+ gridBagConstraints.insets = new java.awt.Insets(9, 0, 0, 0);
+ jPanel_OtherParams.add(jSlider_Transparency,
gridBagConstraints);
-
jCheckBox_NoDataValue.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jCheckBox_NoDataValue.text"));
// NOI18N
- jCheckBox_NoDataValue.setMaximumSize(new java.awt.Dimension(70, 23));
- jCheckBox_NoDataValue.setMinimumSize(new java.awt.Dimension(70, 23));
-
jCheckBox_NoDataValue.addActionListener(this::jCheckBox_NoDataValueActionPerformed);
+ jLabel_Transp_100.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jLabel_Transp_100.text"));
// NOI18N
+
jLabel_Transp_100.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jLabel_Transp_100.setMaximumSize(new java.awt.Dimension(10,
10));
+ jLabel_Transp_100.setMinimumSize(new java.awt.Dimension(10,
10));
+ jLabel_Transp_100.setPreferredSize(new java.awt.Dimension(10,
10));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 3;
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.anchor =
java.awt.GridBagConstraints.LINE_START;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
+ jPanel_OtherParams.add(jLabel_Transp_100, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 0;
- jPanel_OtherParams.add(jCheckBox_NoDataValue, gridBagConstraints);
+ jCheckBox_NoDataValue.setText(bundle
+
.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jCheckBox_NoDataValue.text"));
// NOI18N
+ jCheckBox_NoDataValue.setMaximumSize(new java.awt.Dimension(70,
23));
+ jCheckBox_NoDataValue.setMinimumSize(new java.awt.Dimension(70,
23));
+
jCheckBox_NoDataValue.addActionListener(this::jCheckBox_NoDataValueActionPerformed);
-
jTextField_TranspValue.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jTextField_TranspValue.text"));
// NOI18N
- jTextField_TranspValue.setMinimumSize(new java.awt.Dimension(40, 20));
- jTextField_TranspValue.setPreferredSize(new java.awt.Dimension(40,
20));
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 4;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 20);
- jPanel_OtherParams.add(jTextField_TranspValue, gridBagConstraints);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 0;
+ jPanel_OtherParams.add(jCheckBox_NoDataValue,
gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 1;
- gridBagConstraints.gridwidth = 6;
- getContentPane().add(jPanel_OtherParams, gridBagConstraints);
+ jTextField_TranspValue.setText(bundle
+
.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jTextField_TranspValue.text"));
// NOI18N
+ jTextField_TranspValue.setMinimumSize(new
java.awt.Dimension(40, 20));
+ jTextField_TranspValue.setPreferredSize(new
java.awt.Dimension(40, 20));
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 4;
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 20);
+ jPanel_OtherParams.add(jTextField_TranspValue,
gridBagConstraints);
-
jButton_Load.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Load.text"));
// NOI18N
- jButton_Load.addActionListener(this::jButton_LoadActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.gridwidth = 6;
+ getContentPane().add(jPanel_OtherParams, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 2;
- getContentPane().add(jButton_Load, gridBagConstraints);
+ jButton_Load.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Load.text"));
// NOI18N
+
jButton_Load.addActionListener(this::jButton_LoadActionPerformed);
-
jButton_Save.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Save.text"));
// NOI18N
- jButton_Save.addActionListener(this::jButton_SaveActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 2;
+ getContentPane().add(jButton_Load, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 1;
- gridBagConstraints.gridy = 2;
- getContentPane().add(jButton_Save, gridBagConstraints);
+ jButton_Save.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Save.text"));
// NOI18N
+
jButton_Save.addActionListener(this::jButton_SaveActionPerformed);
-
jButton_Cancel.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Cancel.text"));
// NOI18N
- jButton_Cancel.addActionListener(this::jButton_CancelActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridy = 2;
+ getContentPane().add(jButton_Save, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 2;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
- gridBagConstraints.weightx = 1.0;
- gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 10);
- getContentPane().add(jButton_Cancel, gridBagConstraints);
+ jButton_Cancel.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Cancel.text"));
// NOI18N
+
jButton_Cancel.addActionListener(this::jButton_CancelActionPerformed);
-
jButton_Restore.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Restore.text"));
// NOI18N
-
jButton_Restore.addActionListener(this::jButton_RestoreActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 0;
+ gridBagConstraints.gridy = 2;
+ gridBagConstraints.anchor =
java.awt.GridBagConstraints.LINE_START;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.insets = new java.awt.Insets(5, 20, 5, 10);
+ getContentPane().add(jButton_Cancel, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 3;
- gridBagConstraints.gridy = 2;
- gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
- getContentPane().add(jButton_Restore, gridBagConstraints);
+ jButton_Restore.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Restore.text"));
// NOI18N
+
jButton_Restore.addActionListener(this::jButton_RestoreActionPerformed);
-
jButton_Apply.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Apply.text"));
// NOI18N
- jButton_Apply.addActionListener(this::jButton_ApplyActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 3;
+ gridBagConstraints.gridy = 2;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ getContentPane().add(jButton_Restore, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 4;
- gridBagConstraints.gridy = 2;
- gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
- getContentPane().add(jButton_Apply, gridBagConstraints);
+ jButton_Apply.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_Apply.text"));
// NOI18N
+
jButton_Apply.addActionListener(this::jButton_ApplyActionPerformed);
-
jButton_OK.setText(bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_OK.text"));
// NOI18N
- jButton_OK.addActionListener(this::jButton_OKActionPerformed);
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 4;
+ gridBagConstraints.gridy = 2;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ getContentPane().add(jButton_Apply, gridBagConstraints);
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 5;
- gridBagConstraints.gridy = 2;
- gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
- getContentPane().add(jButton_OK, gridBagConstraints);
+ jButton_OK.setText(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.jButton_OK.text"));
// NOI18N
+ jButton_OK.addActionListener(this::jButton_OKActionPerformed);
- pack();
- }
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridx = 5;
+ gridBagConstraints.gridy = 2;
+ gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
+ getContentPane().add(jButton_OK, gridBagConstraints);
- private void
jButton_NoDataValueColorActionPerformed(java.awt.event.ActionEvent evt) {
+ pack();
+ }
- if(jCheckBox_NoDataValue.isSelected()){
- noDataColor = JColorChooser.showDialog(
- this,
-
ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
-
.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.chooseNoDataColor"),
- jButton_NoDataValueColor.getBackground()
- );
-
- if(noDataColor!=null){
- jButton_NoDataValueColor.setBackground(noDataColor);
- }
- }
-
- }
+ private void
jButton_NoDataValueColorActionPerformed(java.awt.event.ActionEvent evt) {
- private void
jCheckBox_NoDataValueActionPerformed(java.awt.event.ActionEvent evt) {
-
-
jButton_NoDataValueColor.setEnabled(jCheckBox_NoDataValue.isSelected());
-
- }
+ if (jCheckBox_NoDataValue.isSelected()) {
+ noDataColor = JColorChooser.showDialog(this,
+
ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle")
+
.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.chooseNoDataColor"),
+
jButton_NoDataValueColor.getBackground());
- private void jButton_LoadActionPerformed(java.awt.event.ActionEvent evt) {
-
- loadSld();
-
- }
+ if (noDataColor != null) {
+
jButton_NoDataValueColor.setBackground(noDataColor);
+ }
+ }
- private void jButton_SaveActionPerformed(java.awt.event.ActionEvent evt) {
-
- saveSld();
-
- }
+ }
- private void jButton_CancelActionPerformed(java.awt.event.ActionEvent evt)
{
-
- closeDialog();
-
- }
+ private void
jCheckBox_NoDataValueActionPerformed(java.awt.event.ActionEvent evt) {
- private void jButton_ApplyActionPerformed(java.awt.event.ActionEvent evt) {
-
- //Update raster image
- try {
- updateRasterImageLayer();
- } catch (Exception ex) {
- Logger.error(ex);
- }
-
- }
+
jButton_NoDataValueColor.setEnabled(jCheckBox_NoDataValue.isSelected());
- private void
jSlider_TransparencyStateChanged(javax.swing.event.ChangeEvent evt) {
+ }
-
jTextField_TranspValue.setText(Integer.toString(jSlider_Transparency.getValue()));
-
- }
+ private void jButton_LoadActionPerformed(java.awt.event.ActionEvent
evt) {
- private void jButton_RestoreActionPerformed(java.awt.event.ActionEvent
evt) {
-
- try {
- Collection<Layerable> layerables =
context.getLayerableNamePanel().getSelectedLayerables();
- for (Layerable lyr : layerables) {
- jButton_NoDataValueColor.setBackground(new java.awt.Color(204,
204, 204));
- jButton_NoDataValueColor.setForeground(new java.awt.Color(204,
204, 204));
- jSlider_Transparency.setValue(0);
- jTextField_TranspValue.setText("0");
- jCheckBox_NoDataValue.setSelected(false);
- stretchedPanel.reset();
- intervalPanel.reset();
- singleValuesPanel.reset();
-
finalRasterSymbolizer.setColorMapType(RasterSymbology.TYPE_RAMP);
- if (lyr instanceof RasterImageLayer)
restoreToOriginal((RasterImageLayer)lyr);
- }
- } catch (Exception ex) {
- Logger.error(ex);
- }
-
- }
+ loadSld();
- private void jButton_OKActionPerformed(java.awt.event.ActionEvent evt) {
-
- //Update raster image and close
- try {
- updateRasterImageLayer();
- closeDialog();
- } catch (Exception ex) {
- Logger.error( ex);
- }
-
- }
-
- private void fixComponents() throws Exception{
-
- this.setTitle(RasterStylesExtension.extensionName);
-
- /* Transparency text field */
- jTextField_TranspValue.setInputVerifier(verifier);
- jTextField_TranspValue.addActionListener(verifier);
-
jTextField_TranspValue.setText(Integer.toString(jSlider_Transparency.getValue()));
-
- Stats stats = rasterImageLayer.getMetadata().getStats();
- Range minMaxValues = new Range(stats.getMin(band), true,
stats.getMax(band), true);
+ }
- stretchedPanel = new StretchedPanel(minMaxValues);
- intervalPanel = new IntervalPanel(
- this,
- rasterImageLayer,
- minMaxValues);
- singleValuesPanel = new SingleValuesPanel(this,
Utils.purgeNoData(rasterImageLayer.getActualRasterData(), rasterImageLayer),
rasterImageLayer);
-
- 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();
-
- /* Startup symbology */
- if(rasterImageLayer.getSymbology() != null) {
-
- this.finalRasterSymbolizer = rasterImageLayer.getSymbology();
- updateGUI();
-
- }
-
- //add RasterSymbolizer Object in BlackBoard, the key is the name of
raster plus suffixBBoardKey var.
- String bboardKey =
GUIUtils.getBBKey(String.valueOf(rasterImageLayer.getUUID()));
- context.getBlackboard().put(bboardKey, this);
-
- }
-
- public void updateRasterImageLayer() throws Exception {
-
- if(jTabbedPane_Type.getSelectedComponent() instanceof StretchedPanel) {
- finalRasterSymbolizer = stretchedPanel.getRasterStyler();
- } else if(jTabbedPane_Type.getSelectedComponent() instanceof
IntervalPanel) {
- finalRasterSymbolizer = intervalPanel.getRasterStyler();
- } else if(jTabbedPane_Type.getSelectedComponent() instanceof
SingleValuesPanel) {
- finalRasterSymbolizer = singleValuesPanel.getRasterStyler();
-
- }
-
-
finalRasterSymbolizer.setTransparency(GUIUtils.getAlpha_DecimalRange(Integer.parseInt(jTextField_TranspValue.getText())));
-
- if(jCheckBox_NoDataValue.isSelected()){
-
finalRasterSymbolizer.addColorMapEntry(rasterImageLayer.getNoDataValue(),
jButton_NoDataValueColor.getBackground());
- } else {
-
finalRasterSymbolizer.addColorMapEntry(rasterImageLayer.getNoDataValue(), null);
- }
+ private void jButton_SaveActionPerformed(java.awt.event.ActionEvent
evt) {
- Collection<Layerable> layerables =
context.getLayerableNamePanel().getSelectedLayerables();
- for (Layerable lyr : layerables) {
- if (lyr instanceof RasterImageLayer) apply((RasterImageLayer)lyr);
- }
+ saveSld();
- }
+ }
- public void apply(RasterImageLayer rasterImageLayer) throws Exception {
- rasterImageLayer.setSymbology(finalRasterSymbolizer);
- context.getLayerManager().fireLayerChanged(rasterImageLayer,
LayerEventType.APPEARANCE_CHANGED);
- }
+ private void jButton_CancelActionPerformed(java.awt.event.ActionEvent
evt) {
- private void restoreToOriginal(RasterImageLayer rasterImageLayer) throws
NoninvertibleTransformException {
- rasterImageLayer.setSymbology(null);
- }
-
- private void saveSld() {
-
- if(finalRasterSymbolizer == null) {
- return;
- }
-
- JFileChooser chooser = new
JFileChooser(PirolPlugInSettings.configDirectory());
- String extension = "sld";
- FileNameExtensionFilter filter = new FileNameExtensionFilter(
-
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.fileChooser.sld"),
extension);
- chooser.setFileFilter(filter);
- int returnVal = chooser.showSaveDialog(this);
-
- if (returnVal == JFileChooser.APPROVE_OPTION) {
-
- try {
- File sldFile = chooser.getSelectedFile();
- if(!sldFile.getAbsolutePath().endsWith(extension)){
- sldFile = new File(sldFile + "." + extension);
- }
-
- SLDHandler.write(finalRasterSymbolizer, null, sldFile);
- } catch (Exception ex) {
- ErrorDialog.show(this, StringUtil.toFriendlyName(
- ex.getClass().getName()),
- ex.toString(),
- StringUtil.stackTrace(ex));
- }
- }
-
- }
-
- private void loadSld() {
-
- JFileChooser chooser = new
JFileChooser(PirolPlugInSettings.configDirectory());
- FileNameExtensionFilter filter = new FileNameExtensionFilter(
-
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.fileChooser.sld"),
"sld");
- chooser.setFileFilter(filter);
- chooser.setMultiSelectionEnabled(false);
-
- int returnVal = chooser.showOpenDialog(this);
-
- if (returnVal == JFileChooser.APPROVE_OPTION) {
-
- try {
- File sldFile = chooser.getSelectedFile();
- finalRasterSymbolizer = SLDHandler.read(sldFile);
+ closeDialog();
- // Update GUI
- updateGUI();
-
- } catch (Exception ex) {
- ErrorDialog.show(this, StringUtil.toFriendlyName(
- ex.getClass().getName()),
- ex.toString(),
- StringUtil.stackTrace(ex));
- }
- }
-
- }
-
- private void closeDialog() {
-
- GUIUtils.clearRasterStylerFromBlackBoard(context);
- setVisible(false);
-
- }
-
- public double getNoDataValue() {
- return rasterImageLayer.getNoDataValue();
- }
-
- private void updateGUI() throws Exception {
-
-
if(finalRasterSymbolizer.getColorMapType().equals(RasterSymbology.TYPE_RAMP)) {
- stretchedPanel.plugRasterSymbology(finalRasterSymbolizer);
- jTabbedPane_Type.setSelectedIndex(0);
- } else
if(finalRasterSymbolizer.getColorMapType().equals(RasterSymbology.TYPE_INTERVALS))
{
- intervalPanel.plugRasterSymbology(finalRasterSymbolizer);
- jTabbedPane_Type.setSelectedIndex(1);
- } else
if(finalRasterSymbolizer.getColorMapType().equals(RasterSymbology.TYPE_SINGLE))
{
- singleValuesPanel.plugRasterSymbology(finalRasterSymbolizer);
- jTabbedPane_Type.setSelectedIndex(2);
- }
- }
+ }
- // Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JButton jButton_Apply;
- private javax.swing.JButton jButton_Cancel;
- private javax.swing.JButton jButton_Load;
- private javax.swing.JButton jButton_NoDataValueColor;
- private javax.swing.JButton jButton_OK;
- private javax.swing.JButton jButton_Restore;
- private javax.swing.JButton jButton_Save;
- private javax.swing.JCheckBox jCheckBox_NoDataValue;
- private javax.swing.JLabel jLabel_Transp_0;
- private javax.swing.JLabel jLabel_Transp_100;
- private javax.swing.JLabel jLabel_Transparency;
- private javax.swing.JPanel jPanel_OtherParams;
- private javax.swing.JSlider jSlider_Transparency;
- private javax.swing.JTabbedPane jTabbedPane_Type;
- private javax.swing.JTextField jTextField_TranspValue;
- // End of variables declaration//GEN-END:variables
+ private void jButton_ApplyActionPerformed(java.awt.event.ActionEvent
evt) {
- private Color noDataColor;
- java.util.ResourceBundle bundle =
java.util.ResourceBundle.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle");
// NOI18N
- private final WorkbenchContext context;
- private final RasterImageLayer rasterImageLayer;
- private final int band;
- private StretchedPanel stretchedPanel;
- private IntervalPanel intervalPanel;
- private SingleValuesPanel singleValuesPanel;
-
- private final MyVerifier verifier = new MyVerifier();
- private RasterSymbology finalRasterSymbolizer;
+ // Update raster image
+ try {
+ updateRasterImageLayer();
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
- public RasterSymbology getFinalRasterSymbolizer() {
- return finalRasterSymbolizer;
- }
-
- class MyVerifier extends InputVerifier
- implements ActionListener {
+ }
- @Override
- public boolean verify(JComponent input) {
-
- String value = jTextField_TranspValue.getText();
- String sliderValue =
Integer.toString(jSlider_Transparency.getValue());
- if(value == null || value.equals("")){ //NOI18N
- jTextField_TranspValue.setText(sliderValue);
- } else {
- try {
- int number = Integer.parseInt(value);
- if(number < 0 || number > 100) {
- jTextField_TranspValue.setText(sliderValue);
- } else {
- jSlider_Transparency.setValue(number);
- }
- } catch(NumberFormatException ex) {
- jTextField_TranspValue.setText(sliderValue);
- }
- }
- return true;
- }
+ private void
jSlider_TransparencyStateChanged(javax.swing.event.ChangeEvent evt) {
- @Override
- public void actionPerformed(ActionEvent e) {
- throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates. //NOI18N
- }
-
- }
-
- private class DummyPanel extends JPanel implements StylePanel {
+
jTextField_TranspValue.setText(Integer.toString(jSlider_Transparency.getValue()));
- private static final long serialVersionUID = 2217457292163045134L;
+ }
- private DummyPanel(String label) {
- // GridBagLayout so it gets centered. [Jon Aquino]
- super(new GridBagLayout());
- add(new JLabel(label));
- }
+ private void jButton_RestoreActionPerformed(java.awt.event.ActionEvent
evt) {
- @Override
- public String getTitle() {
- return ColorThemingStylePanel.TITLE;
- }
+ try {
+ final Collection<Layerable> layerables =
context.getLayerableNamePanel().getSelectedLayerables();
+ for (final Layerable lyr : layerables) {
+ jButton_NoDataValueColor.setBackground(new
java.awt.Color(204, 204, 204));
+ jButton_NoDataValueColor.setForeground(new
java.awt.Color(204, 204, 204));
+ jSlider_Transparency.setValue(0);
+ jTextField_TranspValue.setText("0");
+ jCheckBox_NoDataValue.setSelected(false);
+ stretchedPanel.reset();
+ intervalPanel.reset();
+ singleValuesPanel.reset();
+
finalRasterSymbolizer.setColorMapType(RasterSymbology.TYPE_RAMP);
+ if (lyr instanceof RasterImageLayer) {
+ restoreToOriginal((RasterImageLayer)
lyr);
+ }
+ }
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
- @Override
- public void updateStyles() {
- // unused but defined in the interface
- }
+ }
- @Override
- public String validateInput() {
- return null;
- }
- }
+ private void jButton_OKActionPerformed(java.awt.event.ActionEvent evt) {
+
+ // Update raster image and close
+ try {
+ updateRasterImageLayer();
+ closeDialog();
+ } catch (final Exception ex) {
+ Logger.error(ex);
+ }
+
+ }
+
+ private void fixComponents() throws Exception {
+
+ this.setTitle(RasterStylesExtension.extensionName);
+
+ /* Transparency text field */
+ jTextField_TranspValue.setInputVerifier(verifier);
+ jTextField_TranspValue.addActionListener(verifier);
+
jTextField_TranspValue.setText(Integer.toString(jSlider_Transparency.getValue()));
+
+ final Stats stats = rasterImageLayer.getMetadata().getStats();
+ final Range minMaxValues = new Range(stats.getMin(band), true,
stats.getMax(band), true);
+
+ stretchedPanel = new StretchedPanel(minMaxValues);
+ intervalPanel = new IntervalPanel(this, rasterImageLayer,
minMaxValues);
+ singleValuesPanel = new SingleValuesPanel(this,
rasterImageLayer.getValues(0), rasterImageLayer);//
Utils.purgeNoData(rasterImageLayer.getActualRasterData(),
+
// rasterImageLayer),
+
// rasterImageLayer);
+
+ 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();
+
+ /* Startup symbology */
+ if (rasterImageLayer.getSymbology() != null) {
+
+ this.finalRasterSymbolizer =
rasterImageLayer.getSymbology();
+ updateGUI();
+
+ }
+
+ // add RasterSymbolizer Object in BlackBoard, the key is the
name of raster plus
+ // suffixBBoardKey var.
+ final String bboardKey =
GUIUtils.getBBKey(String.valueOf(rasterImageLayer.getUUID()));
+ context.getBlackboard().put(bboardKey, this);
+
+ }
+
+ public void updateRasterImageLayer() throws Exception {
+
+ if (jTabbedPane_Type.getSelectedComponent() instanceof
StretchedPanel) {
+ finalRasterSymbolizer =
stretchedPanel.getRasterStyler();
+ } else if (jTabbedPane_Type.getSelectedComponent() instanceof
IntervalPanel) {
+ finalRasterSymbolizer = intervalPanel.getRasterStyler();
+ } else if (jTabbedPane_Type.getSelectedComponent() instanceof
SingleValuesPanel) {
+ finalRasterSymbolizer =
singleValuesPanel.getRasterStyler();
+
+ }
+
+ finalRasterSymbolizer
+
.setTransparency(GUIUtils.getAlpha_DecimalRange(Integer.parseInt(jTextField_TranspValue.getText())));
+
+ if (jCheckBox_NoDataValue.isSelected()) {
+
finalRasterSymbolizer.addColorMapEntry(rasterImageLayer.getNoDataValue(),
+
jButton_NoDataValueColor.getBackground());
+ } else {
+
finalRasterSymbolizer.addColorMapEntry(rasterImageLayer.getNoDataValue(), null);
+ }
+
+ final Collection<Layerable> layerables =
context.getLayerableNamePanel().getSelectedLayerables();
+ for (final Layerable lyr : layerables) {
+ if (lyr instanceof RasterImageLayer) {
+ apply((RasterImageLayer) lyr);
+ }
+ }
+
+ }
+
+ public void apply(RasterImageLayer rasterImageLayer) throws Exception {
+ rasterImageLayer.setSymbology(finalRasterSymbolizer);
+ context.getLayerManager().fireLayerChanged(rasterImageLayer,
LayerEventType.APPEARANCE_CHANGED);
+ }
+
+ private void restoreToOriginal(RasterImageLayer rasterImageLayer)
throws NoninvertibleTransformException {
+ rasterImageLayer.setSymbology(null);
+ }
+
+ private void saveSld() {
+
+ if (finalRasterSymbolizer == null) {
+ return;
+ }
+
+ final JFileChooser chooser = new
JFileChooser(PirolPlugInSettings.configDirectory());
+ final String extension = "sld";
+ final FileNameExtensionFilter filter = new
FileNameExtensionFilter(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.fileChooser.sld"),
+ extension);
+ chooser.setFileFilter(filter);
+ final int returnVal = chooser.showSaveDialog(this);
+
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+
+ try {
+ File sldFile = chooser.getSelectedFile();
+ if
(!sldFile.getAbsolutePath().endsWith(extension)) {
+ sldFile = new File(sldFile + "." +
extension);
+ }
+
+ SLDHandler.write(finalRasterSymbolizer, null,
sldFile);
+ } catch (final Exception ex) {
+ ErrorDialog.show(this,
StringUtil.toFriendlyName(ex.getClass().getName()), ex.toString(),
+ StringUtil.stackTrace(ex));
+ }
+ }
+
+ }
+
+ private void loadSld() {
+
+ final JFileChooser chooser = new
JFileChooser(PirolPlugInSettings.configDirectory());
+ final FileNameExtensionFilter filter = new
FileNameExtensionFilter(
+
bundle.getString("org.openjump.core.rasterimage.styler.ui.RasterStylesDialog.fileChooser.sld"),
"sld");
+ chooser.setFileFilter(filter);
+ chooser.setMultiSelectionEnabled(false);
+
+ final int returnVal = chooser.showOpenDialog(this);
+
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+
+ try {
+ final File sldFile = chooser.getSelectedFile();
+ finalRasterSymbolizer =
SLDHandler.read(sldFile);
+
+ // Update GUI
+ updateGUI();
+
+ } catch (final Exception ex) {
+ ErrorDialog.show(this,
StringUtil.toFriendlyName(ex.getClass().getName()), ex.toString(),
+ StringUtil.stackTrace(ex));
+ }
+ }
+
+ }
+
+ private void closeDialog() {
+
+ GUIUtils.clearRasterStylerFromBlackBoard(context);
+ setVisible(false);
+
+ }
+
+ public double getNoDataValue() {
+ return rasterImageLayer.getNoDataValue();
+ }
+
+ private void updateGUI() throws Exception {
+
+ if
(finalRasterSymbolizer.getColorMapType().equals(RasterSymbology.TYPE_RAMP)) {
+
stretchedPanel.plugRasterSymbology(finalRasterSymbolizer);
+ jTabbedPane_Type.setSelectedIndex(0);
+ } else if
(finalRasterSymbolizer.getColorMapType().equals(RasterSymbology.TYPE_INTERVALS))
{
+
intervalPanel.plugRasterSymbology(finalRasterSymbolizer);
+ jTabbedPane_Type.setSelectedIndex(1);
+ } else if
(finalRasterSymbolizer.getColorMapType().equals(RasterSymbology.TYPE_SINGLE)) {
+
singleValuesPanel.plugRasterSymbology(finalRasterSymbolizer);
+ jTabbedPane_Type.setSelectedIndex(2);
+ }
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton jButton_Apply;
+ private javax.swing.JButton jButton_Cancel;
+ private javax.swing.JButton jButton_Load;
+ private javax.swing.JButton jButton_NoDataValueColor;
+ private javax.swing.JButton jButton_OK;
+ private javax.swing.JButton jButton_Restore;
+ private javax.swing.JButton jButton_Save;
+ private javax.swing.JCheckBox jCheckBox_NoDataValue;
+ private javax.swing.JLabel jLabel_Transp_0;
+ private javax.swing.JLabel jLabel_Transp_100;
+ private javax.swing.JLabel jLabel_Transparency;
+ private javax.swing.JPanel jPanel_OtherParams;
+ private javax.swing.JSlider jSlider_Transparency;
+ private javax.swing.JTabbedPane jTabbedPane_Type;
+ private javax.swing.JTextField jTextField_TranspValue;
+ // End of variables declaration//GEN-END:variables
+
+ private Color noDataColor;
+ java.util.ResourceBundle bundle = java.util.ResourceBundle
+
.getBundle("org/openjump/core/rasterimage/styler/resources/Bundle"); // NOI18N
+ private final WorkbenchContext context;
+ private final RasterImageLayer rasterImageLayer;
+ private final int band;
+ private StretchedPanel stretchedPanel;
+ private IntervalPanel intervalPanel;
+ private SingleValuesPanel singleValuesPanel;
+
+ private final MyVerifier verifier = new MyVerifier();
+ private RasterSymbology finalRasterSymbolizer;
+
+ public RasterSymbology getFinalRasterSymbolizer() {
+ return finalRasterSymbolizer;
+ }
+
+ class MyVerifier extends InputVerifier implements ActionListener {
+
+ @Override
+ public boolean verify(JComponent input) {
+
+ final String value = jTextField_TranspValue.getText();
+ final String sliderValue =
Integer.toString(jSlider_Transparency.getValue());
+ if (value == null || value.equals("")) { // NOI18N
+ jTextField_TranspValue.setText(sliderValue);
+ } else {
+ try {
+ final int number =
Integer.parseInt(value);
+ if (number < 0 || number > 100) {
+
jTextField_TranspValue.setText(sliderValue);
+ } else {
+
jSlider_Transparency.setValue(number);
+ }
+ } catch (final NumberFormatException ex) {
+
jTextField_TranspValue.setText(sliderValue);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ throw new UnsupportedOperationException("Not supported
yet."); // To change body of generated methods,
+
//
choose Tools | Templates. //NOI18N
+ }
+
+ }
+
+ 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel