Revision: 6077
http://sourceforge.net/p/jump-pilot/code/6077
Author: ma15569
Date: 2019-01-06 16:23:21 +0000 (Sun, 06 Jan 2019)
Log Message:
-----------
Reformatted numeric value in order that exported value on table (file .csv) are
correctly read from Excell/OpenOffiuce
Modified Paths:
--------------
core/trunk/src/org/openjump/core/ui/plugin/tools/statistics/StatisticOverViewPlugIn.java
Modified:
core/trunk/src/org/openjump/core/ui/plugin/tools/statistics/StatisticOverViewPlugIn.java
===================================================================
---
core/trunk/src/org/openjump/core/ui/plugin/tools/statistics/StatisticOverViewPlugIn.java
2019-01-06 16:19:32 UTC (rev 6076)
+++
core/trunk/src/org/openjump/core/ui/plugin/tools/statistics/StatisticOverViewPlugIn.java
2019-01-06 16:23:21 UTC (rev 6077)
@@ -27,17 +27,26 @@
*/
package org.openjump.core.ui.plugin.tools.statistics;
-import java.awt.Dimension;
+import java.awt.Color;
+import java.awt.Component;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import javax.swing.JScrollPane;
import javax.swing.JTable;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
import org.openjump.core.apitools.FeatureCollectionTools;
import org.openjump.sextante.gui.additionalResults.AdditionalResults;
import com.vividsolutions.jump.I18N;
+import com.vividsolutions.jump.feature.AttributeType;
import com.vividsolutions.jump.feature.Feature;
import com.vividsolutions.jump.feature.FeatureCollection;
+import com.vividsolutions.jump.feature.FeatureSchema;
+import com.vividsolutions.jump.util.StatisticIndices;
import com.vividsolutions.jump.workbench.WorkbenchContext;
import com.vividsolutions.jump.workbench.model.Layer;
import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn;
@@ -46,6 +55,8 @@
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
import com.vividsolutions.jump.workbench.ui.MenuNames;
+import de.fho.jump.pirol.utilities.attributes.AttributeInfo;
+
/**
* PlugIn that gives a quick impression on the value ranges, means (modes) and
* the deviation of the layer features' attribute values.
@@ -98,18 +109,18 @@
I18N.get("org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewPlugIn.Selected-layer-is-empty"));
return false;
}
- final StatisticOverViewTableModel tableModel = new
StatisticOverViewTableModel(
- features);
+ // final StatisticOverViewTableModel tableModel = new
StatisticOverViewTableModel(
+ // features);
// -- [Giuseppe Aruta 2018-3-12] Statistic table is opened into
// AdditionalResult frame
- final JTable table = new JTable(tableModel);
- table.setRowHeight(22);
+ // final JTable table = new JTable(tableModel);
+ // table.setRowHeight(22);
- final JScrollPane scrollPane = new JScrollPane(table);
- table.setPreferredScrollableViewportSize(new Dimension(500, 300));
+ // final JScrollPane scrollPane = new JScrollPane(table);
+ // table.setPreferredScrollableViewportSize(new Dimension(500, 300));
- AdditionalResults.addAdditionalResultAndShow(getName(), scrollPane);
+ // AdditionalResults.addAdditionalResultAndShow(getName(), scrollPane);
// StatisticOverViewDialog dialog = new
// StatisticOverViewDialog(context.getWorkbenchFrame(), this.getName(),
@@ -116,11 +127,120 @@
// false, features);
// dialog.setVisible(true);
-
+
+ AdditionalResults.addAdditionalResultAndShow(getName(),
+ pan(features, 3));
return true;
}
+ private static JScrollPane pan(Feature[] features, int scale) {
+ final DefaultTableModel dtm = new DefaultTableModel();
+ final JTable jTable = new JTable();
+
+ jTable.setGridColor(Color.WHITE);
+ jTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer()
{
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value, boolean isSelected, boolean hasFocus,
+ int row, int column) {
+ final Component c = super.getTableCellRendererComponent(table,
+ value, isSelected, hasFocus, row, column);
+ c.setBackground(row % 2 == 0 ? Color.white : new Color(230,
+ 230, 230));
+ if (isSelected) {
+ c.setBackground(Color.black);
+ }
+ return c;
+ };
+ });
+
+ jTable.setModel(dtm);
+ jTable.setEnabled(true);
+
+ final Feature feat = features[0];
+ final FeatureSchema fs = feat.getSchema();
+
+ final AttributeInfo[] attrInfos = AttributeInfo
+ .schema2AttributeInfoArray(fs);
+
+ // we don't use the Geometry
+ final String[] attrToWorkWith = new String[attrInfos.length - 1];
+ int saveAttrIndex = 0;
+
+ for (int i = 0; i < attrInfos.length; i++) {
+ if
(!attrInfos[i].getAttributeType().equals(AttributeType.GEOMETRY)) {
+ attrToWorkWith[saveAttrIndex] =
attrInfos[i].getAttributeName();
+ saveAttrIndex++;
+ }
+ }
+
+ saveAttrIndex = 0;
+
+ dtm.addColumn(I18N
+
.get("org.openjump.core.ui.plugin.queries.SimpleQuery.attribute"));
+ dtm.addColumn(I18N
+
.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Attribute-type"));
+
+ dtm.addColumn(I18N
+
.get("org.openjump.core.ui.plugin.tools.JoinAttributesSpatiallyPlugIn.minimum"));
+ dtm.addColumn(I18N
+
.get("org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewTableModel.mean-mode"));
+ dtm.addColumn(I18N
+
.get("org.openjump.core.ui.plugin.tools.JoinAttributesSpatiallyPlugIn.maximum"));
+ dtm.addColumn(I18N
+
.get("org.openjump.core.ui.plugin.tools.JoinAttributesSpatiallyPlugIn.standard-dev"));
+ dtm.addColumn(I18N
+
.get("org.openjump.core.ui.plugin.tools.JoinAttributesSpatiallyPlugIn.sum"));
+
+ for (final AttributeInfo attrInfo : attrInfos) {
+ if (attrInfo.getAttributeType().equals(AttributeType.GEOMETRY)) {
+ continue;
+ }
+ if (FeatureCollectionTools.isAttributeTypeNumeric(attrInfo
+ .getAttributeType())) {
+ // numeric
+
+ final StatisticIndices stat = FeatureCollectionTools
+ .getStatistics(features, fs,
+ attrInfo.getAttributeName());
+
+ dtm.addRow(new Object[] {
+ attrInfo.getAttributeName(),
+ attrInfo.getAttributeType(),
+ new BigDecimal(stat.getMin()).setScale(scale,
+ RoundingMode.CEILING),
+ new BigDecimal(stat.getMean()).setScale(scale,
+ RoundingMode.CEILING),
+ new BigDecimal(stat.getMax()).setScale(scale,
+ RoundingMode.CEILING),
+ new BigDecimal(stat.getStdDev()).setScale(scale,
+ RoundingMode.CEILING),
+ new BigDecimal(stat.getSum()).setScale(scale,
+ RoundingMode.CEILING) });
+
+ } else {
+ final Object[] meansModes = FeatureCollectionTools
+ .getMeanOrModeForAttributes(features, attrToWorkWith);
+
+ dtm.addRow(new Object[] { attrInfo.getAttributeName(),
+ attrInfo.getAttributeType(), null,
+ meansModes[saveAttrIndex], null, null, null });
+
+ }
+ saveAttrIndex++;
+ }
+
+ final JScrollPane pane = new JScrollPane(jTable,
+ ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
+ ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ return pane;
+
+ }
+
public MultiEnableCheck createEnableCheck(
final WorkbenchContext workbenchContext) {
final EnableCheckFactory checkFactory = new EnableCheckFactory(
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel