Revision: 5290
http://sourceforge.net/p/jump-pilot/code/5290
Author: edso
Date: 2016-12-28 14:11:48 +0000 (Wed, 28 Dec 2016)
Log Message:
-----------
make GML/JML reader cancellable and show already parsed featcount
Modified Paths:
--------------
core/trunk/ChangeLog
core/trunk/src/com/vividsolutions/jump/io/GMLReader.java
core/trunk/src/com/vividsolutions/jump/io/JMLReader.java
core/trunk/src/com/vividsolutions/jump/io/geojson/GeoJSONReader.java
core/trunk/src/language/jump.properties
core/trunk/src/language/jump_cz.properties
core/trunk/src/language/jump_de.properties
core/trunk/src/language/jump_es.properties
core/trunk/src/language/jump_fi.properties
core/trunk/src/language/jump_fr.properties
core/trunk/src/language/jump_hu.properties
core/trunk/src/language/jump_it.properties
core/trunk/src/language/jump_ja_JP.properties
core/trunk/src/language/jump_ml.properties
core/trunk/src/language/jump_pt.properties
core/trunk/src/language/jump_pt_BR.properties
core/trunk/src/language/jump_ta_IN.properties
core/trunk/src/language/jump_te.properties
core/trunk/src/language/jump_zh_CN.properties
core/trunk/src/language/jump_zh_HK.properties
Modified: core/trunk/ChangeLog
===================================================================
--- core/trunk/ChangeLog 2016-12-28 13:06:00 UTC (rev 5289)
+++ core/trunk/ChangeLog 2016-12-28 14:11:48 UTC (rev 5290)
@@ -3,6 +3,9 @@
# 2. make sure that lines break at 80 chars for constricted display situations
#<-------------------------------- 80 chars
---------------------------------->#
+2016-12-28 ede
+ * make GML/JML reader cancellable and show already parsed featcount
+
2016-12-28 mmichaud <[email protected]>
* fix #449 severe regression in "save project as" introduced in r5178
Modified: core/trunk/src/com/vividsolutions/jump/io/GMLReader.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/io/GMLReader.java 2016-12-28
13:06:00 UTC (rev 5289)
+++ core/trunk/src/com/vividsolutions/jump/io/GMLReader.java 2016-12-28
14:11:48 UTC (rev 5290)
@@ -32,7 +32,12 @@
package com.vividsolutions.jump.io;
import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jump.I18N;
import com.vividsolutions.jump.feature.*;
+import com.vividsolutions.jump.task.TaskMonitor;
+import com.vividsolutions.jump.task.TaskMonitorSupport;
+import com.vividsolutions.jump.task.TaskMonitorUtil;
+import com.vividsolutions.jump.util.Timer;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
@@ -216,7 +221,7 @@
* ['...1...','...2...','...3...']
*
*/
-public class GMLReader extends DefaultHandler implements JUMPReader {
+public class GMLReader extends DefaultHandler implements JUMPReader,
TaskMonitorSupport {
private static int STATE_GET_COLUMNS = 3;
private Collection<Exception> exceptions;
@@ -382,6 +387,10 @@
*/
public void endElement(String uri, String name, String qName)
throws SAXException {
+
+ // allow cancellation
+ if (getTaskMonitor().isCancelRequested()) throw new
SAXCancelledException();
+
try {
int index;
@@ -527,6 +536,8 @@
}
fc.add(currentFeature);
+ report(fc.size());
+
currentFeature = null;
return;
@@ -754,6 +765,9 @@
try {
xr.parse(is);
+ } catch (SAXCancelledException e){
+ // we were cancelled
+ fc = null;
} catch (SAXParseException e) {
throw new ParseException(e.getMessage() + " Last Opened Tag: "
+ lastStartTag_qName + ". Reader reports last line read as "
@@ -797,6 +811,10 @@
*/
public void startElement(String uri, String name, String qName,
Attributes atts) throws SAXException {
+
+ // allow cancellation
+ if (getTaskMonitor().isCancelRequested()) throw new
SAXCancelledException();
+
try {
// System.out.println("Start element: " + qName);
tagBody = new StringBuffer();
@@ -1077,4 +1095,32 @@
exceptions = new ArrayList<>();
return exceptions;
}
+
+ private TaskMonitor taskMonitor = null;
+
+ public void setTaskMonitor(TaskMonitor taskMonitor) {
+ this.taskMonitor = taskMonitor;
+ }
+
+ public TaskMonitor getTaskMonitor() {
+ return taskMonitor;
+ }
+
+ private long milliSeconds = 0;
+
+ private void report( int num ){
+ long now = Timer.milliSecondsSince(0);
+ // show status every .5s
+ if (now - 500 >= milliSeconds) {
+ milliSeconds = now;
+ TaskMonitorUtil.report(
+ getTaskMonitor(),
+ I18N.getMessage("Reader.parsed-{0}-features",
+ String.format("%,10d", num)));
+ }
+ }
}
+
+class SAXCancelledException extends SAXException{
+ // dummy to allow proper cancellation
+}
\ No newline at end of file
Modified: core/trunk/src/com/vividsolutions/jump/io/JMLReader.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/io/JMLReader.java 2016-12-28
13:06:00 UTC (rev 5289)
+++ core/trunk/src/com/vividsolutions/jump/io/JMLReader.java 2016-12-28
14:11:48 UTC (rev 5290)
@@ -110,6 +110,7 @@
}
gmlReader = new GMLReader();
+ gmlReader.setTaskMonitor(getTaskMonitor());
return gmlReader.read(dp);
}
Modified: core/trunk/src/com/vividsolutions/jump/io/geojson/GeoJSONReader.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/io/geojson/GeoJSONReader.java
2016-12-28 13:06:00 UTC (rev 5289)
+++ core/trunk/src/com/vividsolutions/jump/io/geojson/GeoJSONReader.java
2016-12-28 14:11:48 UTC (rev 5290)
@@ -87,7 +87,7 @@
private Stack valueStack;
private Object featsId = null;
private GeoJSONFeatureCollectionWrapper fcwrap = null;
- private long milliSeconds = 0;;
+ private long milliSeconds = 0;
public Transformer(GeoJSONFeatureCollectionWrapper fcwrap) {
this.fcwrap = fcwrap;
@@ -120,7 +120,7 @@
milliSeconds = now;
TaskMonitorUtil.report(
monitor,
- I18N.getMessage("GeoJSONReader.parsed-{0}-features",
+ I18N.getMessage("Reader.parsed-{0}-features",
String.format("%,10d", fcwrap.size())));
}
} catch (Exception e) {
Modified: core/trunk/src/language/jump.properties
===================================================================
--- core/trunk/src/language/jump.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2777,4 +2777,4 @@
org.openjump.core.ui.plugin.layer.ExtractLayersByGeometry.empty=empty
org.openjump.core.ui.plugin.layer.ExtractLayersByGeometry.line=Line
GeoJSONWriter.writing-features=Writing features...
-GeoJSONReader.parsed-{0}-features=Parsed {0} features.
\ No newline at end of file
+Reader.parsed-{0}-features=Parsed {0} features.
\ No newline at end of file
Modified: core/trunk/src/language/jump_cz.properties
===================================================================
--- core/trunk/src/language/jump_cz.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_cz.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2749,7 +2749,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_de.properties
===================================================================
--- core/trunk/src/language/jump_de.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_de.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2745,7 +2745,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=Schreibe Objekte...
-GeoJSONReader.parsed-{0}-features={0} Objekte gelesen.
+Reader.parsed-{0}-features={0} Objekte gelesen.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_es.properties
===================================================================
--- core/trunk/src/language/jump_es.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_es.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2728,7 +2728,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_fi.properties
===================================================================
--- core/trunk/src/language/jump_fi.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_fi.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2722,7 +2722,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_fr.properties
===================================================================
--- core/trunk/src/language/jump_fr.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_fr.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2752,7 +2752,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=Supprimer les petits
trous
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=Simplifier
(Supprimer les petits segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=le point int\xE9rieur intersecte
ui.GenericNames.intersects-interior-point=intersecte le point int\xE9rieur
org.openjump.core.ui.plugin.queries.Operator.intip=intersecte le point
int\xE9rieur
Modified: core/trunk/src/language/jump_hu.properties
===================================================================
--- core/trunk/src/language/jump_hu.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_hu.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2745,7 +2745,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_it.properties
===================================================================
--- core/trunk/src/language/jump_it.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_it.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2728,7 +2728,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=Rimuovi piccoli buchi
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=Simplifica (Rimuovi
piccoli segmenti)
GeoJSONWriter.writing-features=Scrivendo elementi...
-GeoJSONReader.parsed-{0}-features=Analizzati {0} elementi.
+Reader.parsed-{0}-features=Analizzati {0} elementi.
ui.GenericNames.interior-point-intersects=Intersezioni punto interiore
ui.GenericNames.intersects-interior-point=Interseca punto interiore
org.openjump.core.ui.plugin.queries.Operator.intip=Intersezioni punto interiore
Modified: core/trunk/src/language/jump_ja_JP.properties
===================================================================
--- core/trunk/src/language/jump_ja_JP.properties 2016-12-28 13:06:00 UTC
(rev 5289)
+++ core/trunk/src/language/jump_ja_JP.properties 2016-12-28 14:11:48 UTC
(rev 5290)
@@ -2747,7 +2747,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_ml.properties
===================================================================
--- core/trunk/src/language/jump_ml.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_ml.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -4018,7 +4018,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_pt.properties
===================================================================
--- core/trunk/src/language/jump_pt.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_pt.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -2743,7 +2743,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_pt_BR.properties
===================================================================
--- core/trunk/src/language/jump_pt_BR.properties 2016-12-28 13:06:00 UTC
(rev 5289)
+++ core/trunk/src/language/jump_pt_BR.properties 2016-12-28 14:11:48 UTC
(rev 5290)
@@ -2744,7 +2744,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_ta_IN.properties
===================================================================
--- core/trunk/src/language/jump_ta_IN.properties 2016-12-28 13:06:00 UTC
(rev 5289)
+++ core/trunk/src/language/jump_ta_IN.properties 2016-12-28 14:11:48 UTC
(rev 5290)
@@ -2746,7 +2746,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_te.properties
===================================================================
--- core/trunk/src/language/jump_te.properties 2016-12-28 13:06:00 UTC (rev
5289)
+++ core/trunk/src/language/jump_te.properties 2016-12-28 14:11:48 UTC (rev
5290)
@@ -3252,7 +3252,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_zh_CN.properties
===================================================================
--- core/trunk/src/language/jump_zh_CN.properties 2016-12-28 13:06:00 UTC
(rev 5289)
+++ core/trunk/src/language/jump_zh_CN.properties 2016-12-28 14:11:48 UTC
(rev 5290)
@@ -2907,7 +2907,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (Remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=#T:intersects interior point
org.openjump.core.ui.plugin.queries.Operator.intip=#T:intersects interior point
Modified: core/trunk/src/language/jump_zh_HK.properties
===================================================================
--- core/trunk/src/language/jump_zh_HK.properties 2016-12-28 13:06:00 UTC
(rev 5289)
+++ core/trunk/src/language/jump_zh_HK.properties 2016-12-28 14:11:48 UTC
(rev 5290)
@@ -2908,7 +2908,7 @@
ui.plugin.analysis.GeometryFunction.Remove-Small-Holes=#T:Remove Small Holes
ui.plugin.analysis.GeometryFunction.Remove-Small-Segments=#T:Simplify (remove
small segments)
GeoJSONWriter.writing-features=#T:Writing features...
-GeoJSONReader.parsed-{0}-features=#T:Parsed {0} features.
+Reader.parsed-{0}-features=#T:Parsed {0} features.
ui.GenericNames.interior-point-intersects=#T:interior point intersects
ui.GenericNames.intersects-interior-point=
org.openjump.core.ui.plugin.queries.Operator.ipint=#T:interior point intersects
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel