Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Eric Duminil
RegionChooser
Commits
298f5442
Commit
298f5442
authored
Feb 13, 2023
by
Eric Duminil
Browse files
Make sure Repository is defined, and it exists, before trying to import anything.
parent
155d5e85
Pipeline
#7228
passed with stage
in 33 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java
View file @
298f5442
...
...
@@ -42,8 +42,8 @@ public class RegionChooserBrowser extends Region
public
JavaScriptFXBridge
()
{
Preferences
userPrefs
=
Preferences
.
userRoot
().
node
(
"/eu/simstadt/desktop"
);
String
repoString
=
userPrefs
.
get
(
PREF_RECENT_REPOSITORY
,
"../TestRepository"
);
repo
=
Paths
.
get
(
repoString
);
String
repoString
=
userPrefs
.
get
(
PREF_RECENT_REPOSITORY
,
null
);
repo
=
repoString
==
null
?
null
:
Paths
.
get
(
repoString
);
}
/**
...
...
@@ -51,6 +51,9 @@ public JavaScriptFXBridge() {
* to the JS app in order to be displayed.
*/
public
void
refreshHulls
()
{
if
(
repo
==
null
||
!
Files
.
exists
(
repo
))
{
selectRepository
();
}
Task
<
Void
>
task
=
new
Task
<
Void
>()
{
@Override
public
Void
call
()
throws
IOException
{
...
...
@@ -62,7 +65,9 @@ public Void call() throws IOException {
task
.
setOnRunning
(
e
->
{
jsApp
.
call
(
"display"
,
"Importing citgyml. Please wait."
);
jsApp
.
call
(
"showRepositoryName"
,
repo
.
getFileName
().
toString
());
if
(
repo
!=
null
)
{
jsApp
.
call
(
"showRepositoryName"
,
repo
.
getFileName
().
toString
());
}
jsApp
.
call
(
"init"
);
});
...
...
@@ -105,13 +110,15 @@ public Integer call() throws IOException, XPathParseException, NavException, Par
public
void
selectRepository
()
{
//TODO: Check if it's really a repository, and not just a project
Preferences
userPrefs
=
Preferences
.
userRoot
().
node
(
"/eu/simstadt/desktop"
);
String
currentRepo
=
userPrefs
.
get
(
PREF_RECENT_REPOSITORY
,
"../TestRepository"
);
DirectoryChooser
fileChooser
=
new
DirectoryChooser
();
Stage
mainStage
=
(
Stage
)
RegionChooserBrowser
.
this
.
getScene
().
getWindow
();
fileChooser
.
setTitle
(
"Select Repository"
);
fileChooser
.
setInitialDirectory
(
new
File
(
currentRepo
));
if
(
repo
!=
null
&&
Files
.
exists
(
repo
))
{
fileChooser
.
setInitialDirectory
(
repo
.
toFile
());
}
File
repoLocation
=
fileChooser
.
showDialog
(
mainStage
);
if
(
repoLocation
!=
null
)
{
...
...
src/main/java/eu/simstadt/regionchooser/fast_xml_parser/ConvexHullCalculator.java
View file @
298f5442
...
...
@@ -89,6 +89,10 @@ public static Geometry calculateFromCityGML(Path citygmlPath) throws XPathParseE
* @throws IOException
*/
public
static
void
extractHullsForEveryCityGML
(
Path
repository
,
Consumer
<
String
>
callback
)
throws
IOException
{
if
(!
Files
.
exists
(
repository
))
{
LOGGER
.
warning
(
repository
+
" does not appear to exist."
);
return
;
}
LOGGER
.
info
(
"Parsing "
+
repository
);
RegionChooserUtils
.
everyCityGML
(
repository
)
.
map
(
gmlPath
->
{
...
...
src/test/java/eu/simstadt/regionchooser/fast_xml_parser/ConvexHullCalculatorTests.java
View file @
298f5442
package
eu.simstadt.regionchooser.fast_xml_parser
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertFalse
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
fail
;
import
java.io.File
;
import
java.io.IOException
;
import
java.nio.file.Files
;
...
...
@@ -22,6 +25,7 @@
{
private
static
final
GeometryFactory
gf
=
new
GeometryFactory
();
private
static
final
Path
repository
=
Paths
.
get
(
"src/test/resources/testdata"
);
private
static
final
Path
notExistingRepository
=
Paths
.
get
(
"src/test/resources/surely_not_here"
);
@Test
public
void
testExtractConvexHullFromOneBuilding
()
throws
IOException
,
XPathParseException
{
...
...
@@ -72,4 +76,12 @@ public void testExtractConvexHullFromEveryCitygmlInRepository() throws IOExcepti
assertTrue
(
gmlCount
>=
minHullCount
,
"At least "
+
minHullCount
+
" citygmls should be present in repository"
);
assertTrue
(
hullCount
.
get
()
>=
minHullCount
,
"At least "
+
minHullCount
+
" hulls should have been calculated"
);
}
@Test
public
void
testDontDoMuchWithBrokenRepo
()
throws
IOException
{
ConvexHullCalculator
.
extractHullsForEveryCityGML
(
notExistingRepository
,
kmlHull
->
{
fail
(
"I really shouldn't be called for any gml."
);
});
assertFalse
(
Files
.
exists
(
notExistingRepository
));
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment