Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
845dd0a6
Commit
845dd0a6
authored
May 06, 2025
by
Matthias Betz
Browse files
Merge remote-tracking branch 'remotes/origin/dev' into 111-update-dependencies
parents
8a94994e
ffe66fd4
Pipeline
#11079
passed with stage
in 1 minute and 24 seconds
Changes
162
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TransportationObjectNode.java
deleted
100644 → 0
View file @
8a94994e
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.TransportationObject
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
TransportationObjectNode
extends
Renderable
{
private
final
TransportationObject
to
;
public
TransportationObjectNode
(
TransportationObject
to
)
{
this
.
to
=
to
;
}
@Override
public
String
getText
()
{
return
to
.
getGmlId
().
getGmlString
();
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
to
);
}
@Override
public
void
refreshTextColor
()
{
if
(!
to
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
to
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TunnelConstructiveElementNode.java
deleted
100644 → 0
View file @
8a94994e
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.TunnelConstructiveElement
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
TunnelConstructiveElementNode
extends
Renderable
{
private
final
TunnelConstructiveElement
tce
;
public
TunnelConstructiveElementNode
(
TunnelConstructiveElement
tce
)
{
this
.
tce
=
tce
;
}
@Override
public
String
getText
()
{
return
tce
.
getGmlId
().
getGmlString
();
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
tce
);
}
@Override
public
void
refreshTextColor
()
{
if
(!
tce
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
tce
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TunnelNode.java
deleted
100644 → 0
View file @
8a94994e
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.datastructure.Tunnel
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
TunnelNode
extends
Renderable
implements
FeatureNode
{
private
final
Tunnel
tunnel
;
public
TunnelNode
(
Tunnel
tunnel
)
{
this
.
tunnel
=
tunnel
;
}
@Override
public
String
getText
()
{
return
tunnel
.
getGmlId
().
getGmlString
();
}
public
Tunnel
getTunnel
()
{
return
tunnel
;
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
tunnel
);
}
@Override
public
void
refreshTextColor
()
{
if
(!
tunnel
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
tunnel
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
@Override
public
CityObject
getFeature
()
{
return
tunnel
;
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TunnelPartNode.java
deleted
100644 → 0
View file @
8a94994e
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.TunnelPart
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
TunnelPartNode
extends
Renderable
{
private
final
TunnelPart
tp
;
public
TunnelPartNode
(
TunnelPart
tp
)
{
this
.
tp
=
tp
;
}
@Override
public
String
getText
()
{
return
tp
.
getGmlId
().
getGmlString
();
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
tp
);
}
@Override
public
void
refreshTextColor
()
{
if
(!
tp
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
tp
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VegetationNode.java
deleted
100644 → 0
View file @
8a94994e
/*-
* Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart
*
* This file is part of CityDoctor2.
*
* CityDoctor2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CityDoctor2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vegetation
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
public
class
VegetationNode
extends
Renderable
implements
FeatureNode
{
private
final
Vegetation
veg
;
private
final
String
text
;
public
VegetationNode
(
Vegetation
veg
)
{
this
.
veg
=
veg
;
text
=
"["
+
veg
.
getVegetationType
()
+
"] "
+
veg
.
getGmlId
().
getGmlString
();
}
@Override
public
void
refreshTextColor
()
{
if
(!
veg
.
isValidated
())
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
veg
.
containsAnyError
())
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
@Override
public
String
getText
()
{
return
text
;
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
veg
);
}
@Override
public
CityObject
getFeature
()
{
return
veg
;
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryListCell.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
import
de.hft.stuttgart.citydoctor2.gui.tree.node.ZipEntryNode
;
import
javafx.scene.control.ListCell
;
public
class
ZipEntryListCell
extends
ListCell
<
ZipEntryNode
>
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
CityFurniture
Node.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/CityObjectGroup
Node.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.
datastructure.CityFurnitur
e
;
import
de.hft.stuttgart.citydoctor2.
check.Checkabl
e
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
import
javafx.scene.paint.Color
;
public
class
CityFurnitureNode
extends
Renderable
implements
FeatureNode
{
import
java.util.List
;
private
final
CityFurniture
cityFurniture
;
public
CityFurnitureNode
(
CityFurniture
cityFurniture
)
{
this
.
cityFurniture
=
cityFurniture
;
}
@Override
public
String
getText
()
{
return
cityFurniture
.
getGmlId
().
getGmlString
();
}
public
class
CityObjectGroupNode
extends
Renderable
{
private
final
List
<?
extends
CityObject
>
cityObjects
;
private
final
Color
renderColor
;
private
final
String
nodeText
;
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
render
(
cityFurniture
);
public
CityObjectGroupNode
(
List
<?
extends
CityObject
>
cityObjects
,
String
nodeText
,
Color
renderColor
)
{
this
.
cityObjects
=
cityObjects
;
this
.
nodeText
=
nodeText
;
this
.
renderColor
=
renderColor
;
}
@Override
public
void
refreshTextColor
()
{
if
(
!
city
Furniture
.
isValidated
())
{
if
(
city
Objects
.
stream
().
anyMatch
(
cityObject
->
!
cityObject
.
isValidated
())
)
{
setStatus
(
CheckStatus
.
NOT_CHECKED
);
}
else
if
(
city
Furniture
.
containsAnyError
(
))
{
}
else
if
(
city
Objects
.
stream
().
anyMatch
(
Checkable:
:
containsAnyError
))
{
setStatus
(
CheckStatus
.
ERROR
);
}
else
{
setStatus
(
CheckStatus
.
OK
);
}
}
@Override
public
CityObject
getFeature
()
{
return
cityFurniture
;
public
String
getText
()
{
return
nodeText
;
}
@Override
public
void
visit
(
Renderer
renderer
)
{
renderer
.
renderCityObjects
(
cityObjects
,
renderColor
);
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/CityObjectNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
CityObjectNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
public
class
CityObjectNode
extends
Renderable
implements
FeatureNode
{
public
class
CityObjectNode
extends
Renderable
{
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
CityObjectNode
.
class
);
private
final
CityObject
co
;
...
...
@@ -25,7 +30,7 @@ public class CityObjectNode extends Renderable implements FeatureNode{
@Override
public
String
getText
()
{
return
co
.
get
GmlId
().
getGmlString
();
return
co
.
get
DisplayText
();
}
@Override
...
...
@@ -33,7 +38,6 @@ public class CityObjectNode extends Renderable implements FeatureNode{
renderer
.
render
(
co
);
}
@Override
public
CityObject
getFeature
()
{
return
co
;
}
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/EdgeNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
EdgeNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
...
...
@@ -6,6 +6,7 @@ import java.text.DecimalFormatSymbols;
import
de.hft.stuttgart.citydoctor2.datastructure.Edge
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
EdgeNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
ErrorNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
ErrorNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/GenericAttributeNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
GenericAttributeNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.GenericAttribute
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
GenericAttributeNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/GeometryNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
GeometryNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.ImplicitGeometryHolder
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
GeometryNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LinearRingNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
LinearRingNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
LinearRingNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/OpeningNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
OpeningNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.Opening
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
OpeningNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/PolygonNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
PolygonNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.gui.CheckStatus
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
PolygonNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TextNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
TextNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
TextNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/node/TopLevelCityObjectNode.java
0 → 100644
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree.node
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.gui.MainWindow
;
import
de.hft.stuttgart.citydoctor2.utils.Localization
;
import
javafx.scene.input.Clipboard
;
import
javafx.scene.input.ClipboardContent
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
static
javafx
.
scene
.
input
.
Clipboard
.
getSystemClipboard
;
public
class
TopLevelCityObjectNode
extends
CityObjectNode
{
private
static
final
Logger
logger
=
LogManager
.
getLogger
(
TopLevelCityObjectNode
.
class
);
public
TopLevelCityObjectNode
(
CityObject
co
)
{
super
(
co
);
}
@Override
public
void
getClipboardAction
(
MainWindow
mainWindow
)
{
Clipboard
clipboard
=
getSystemClipboard
();
ClipboardContent
content
=
new
ClipboardContent
();
content
.
putString
(
this
.
getFeature
().
getGmlId
().
toString
());
if
(!
clipboard
.
setContent
(
content
))
{
if
(
logger
.
isWarnEnabled
())
{
logger
.
warn
(
Localization
.
getText
(
"MainWindow.warnCopyIdFailed"
));
}
}
}
@Override
public
void
getFeatureExportAction
(
MainWindow
mainWindow
)
{
try
{
mainWindow
.
getController
().
export
(
this
.
getFeature
());
if
(
logger
.
isWarnEnabled
())
{
logger
.
info
(
Localization
.
getText
(
"CityDoctorController.exportSuccess"
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"Export failed: Unexpected error occurred"
);
logger
.
error
(
e
);
}
}
}
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VertexNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
VertexNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormatSymbols
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.gui.Renderer
;
import
de.hft.stuttgart.citydoctor2.gui.tree.Renderable
;
public
class
VertexNode
extends
Renderable
{
...
...
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryNode.java
→
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/
node/
ZipEntryNode.java
View file @
845dd0a6
package
de.hft.stuttgart.citydoctor2.gui.tree
;
package
de.hft.stuttgart.citydoctor2.gui.tree
.node
;
import
de.hft.stuttgart.citydoctor2.zip.CityGmlZipEntry
;
import
javafx.scene.paint.Color
;
...
...
CityDoctorParent/Extensions/CityDoctorHealer/src/main/java/de/hft/stuttgart/citydoctor2/healer/Healer.java
View file @
845dd0a6
...
...
@@ -263,7 +263,7 @@ public class Healer {
co
.
reCreateGeometries
(
factory
,
checker
.
getConfig
().
getParserConfiguration
());
byte
[]
gml
=
writeCityGml
(
co
.
getGmlObject
());
// remove them again to save memory
co
.
unset
GmlGeometries
();
co
.
clear
GmlGeometries
();
SvrlContentHandler
handler
=
Checker
.
executeSchematronValidationIfAvailable
(
config
,
new
ByteArrayInputStream
(
gml
));
if
(
handler
!=
null
)
{
...
...
Prev
1
…
4
5
6
7
8
9
Next
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