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
2948aaf1
Commit
2948aaf1
authored
Nov 13, 2024
by
Riegel
Browse files
Unify FeatureTab ContextMenu setup
parent
0dfb11c1
Changes
1
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java
View file @
2948aaf1
...
@@ -733,40 +733,12 @@ public class MainWindow extends Application {
...
@@ -733,40 +733,12 @@ public class MainWindow extends Application {
buildingsView
.
setShowRoot
(
true
);
buildingsView
.
setShowRoot
(
true
);
setupSelectListener
(
buildingsView
);
setupSelectListener
(
buildingsView
);
buildingsView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
buildingsView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
setupBuildingTabContextMenu
();
/*
ContextMenu cMenu = new ContextMenu();
MenuItem mi = new MenuItem(Localization.getText("MainWindow.export"));
mi.setOnAction(ea -> {
Renderable render = buildingsView.getSelectionModel().getSelectedItem().getValue();
if (render instanceof BuildingNode node) {
controller.export(node.getBuilding());
}
});
cMenu.getItems().add(mi);
MenuItem clipMi = new MenuItem(Localization.getText("MainWindow.copyId"));
clipMi.setOnAction(ea -> {
Renderable render = buildingsView.getSelectionModel().getSelectedItem().getValue();
if (render instanceof BuildingNode node) {
Clipboard clipboard = getSystemClipboard();
ClipboardContent content = new ClipboardContent();
content.putString(node.getBuilding().getGmlId().toString());
clipboard.setContent(content);
}
});
cMenu.getItems().add(clipMi);
MenuItem deleteMi = new MenuItem("Delete");
deleteMi.setOnAction(ae -> controller.delete(buildingsView.getSelectionModel().getSelectedItem()));
cMenu.getItems().add(deleteMi);
buildingsView.setContextMenu(cMenu);
*/
vegetationView
.
setShowRoot
(
true
);
vegetationView
.
setShowRoot
(
true
);
setupSelectListener
(
vegetationView
);
setupSelectListener
(
vegetationView
);
vegetationView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
vegetationView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
setupVegetationTabContextMenu
();
transView
.
setShowRoot
(
true
);
transView
.
setShowRoot
(
true
);
setupSelectListener
(
transView
);
setupSelectListener
(
transView
);
...
@@ -776,30 +748,31 @@ public class MainWindow extends Application {
...
@@ -776,30 +748,31 @@ public class MainWindow extends Application {
tunnelView
.
setShowRoot
(
true
);
tunnelView
.
setShowRoot
(
true
);
setupSelectListener
(
tunnelView
);
setupSelectListener
(
tunnelView
);
tunnelView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
tunnelView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
setupFeatureTabContextMenu
(
tunnelView
);
bridgeView
.
setShowRoot
(
true
);
bridgeView
.
setShowRoot
(
true
);
setupSelectListener
(
bridgeView
);
setupSelectListener
(
bridgeView
);
bridgeView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
bridgeView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
setupFeatureTabContextMenu
(
bridgeView
);
waterView
.
setShowRoot
(
true
);
waterView
.
setShowRoot
(
true
);
setupSelectListener
(
waterView
);
setupSelectListener
(
waterView
);
waterView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
waterView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
terrainView
.
setShowRoot
(
true
);
terrainView
.
setShowRoot
(
true
);
setupSelectListener
(
terrainView
);
setupSelectListener
(
terrainView
);
terrainView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
terrainView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
cityFurnitureView
.
setShowRoot
(
true
);
cityFurnitureView
.
setShowRoot
(
true
);
setupSelectListener
(
cityFurnitureView
);
setupSelectListener
(
cityFurnitureView
);
cityFurnitureView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
cityFurnitureView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
setupFeatureTabContextMenu
(
cityFurnitureView
);
otherObjectsView
.
setShowRoot
(
true
);
otherObjectsView
.
setShowRoot
(
true
);
setupSelectListener
(
otherObjectsView
);
setupSelectListener
(
otherObjectsView
);
otherObjectsView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
otherObjectsView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
setupFeatureTabContextMenu
(
otherObjectsView
);
setupSelectListener
(
vertexView
);
setupSelectListener
(
vertexView
);
vertexView
.
setRoot
(
new
TreeItem
<>());
vertexView
.
setRoot
(
new
TreeItem
<>());
...
@@ -817,90 +790,20 @@ public class MainWindow extends Application {
...
@@ -817,90 +790,20 @@ public class MainWindow extends Application {
attributeView
.
setRoot
(
new
TreeItem
<>());
attributeView
.
setRoot
(
new
TreeItem
<>());
attributeView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
attributeView
.
setCellFactory
(
param
->
new
RenderableTreeCell
());
}
setupContextMenus
();
private
void
setupBuildingTabContextMenu
()
{
ContextMenu
menu
=
new
ContextMenu
();
MenuItem
mi
=
new
MenuItem
(
Localization
.
getText
(
"MainWindow.export"
));
mi
.
setOnAction
(
ea
->
{
Renderable
render
=
buildingsView
.
getSelectionModel
().
getSelectedItem
().
getValue
();
if
(
render
instanceof
FeatureNode
node
)
{
try
{
controller
.
export
(
node
.
getFeature
());
logger
.
info
(
Localization
.
getText
(
"CityDoctorController.export"
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"Export failed: Unexpected error occurred"
);
logger
.
error
(
e
);
}
}
else
{
logger
.
info
(
Localization
.
getText
(
"MainWindow.infoTopLevelExport"
));
}
});
menu
.
getItems
().
add
(
mi
);
MenuItem
clipMi
=
new
MenuItem
(
Localization
.
getText
(
"MainWindow.copyId"
));
clipMi
.
setOnAction
(
ea
->
{
Renderable
render
=
buildingsView
.
getSelectionModel
().
getSelectedItem
().
getValue
();
if
(
render
instanceof
FeatureNode
node
)
{
Clipboard
clipboard
=
getSystemClipboard
();
ClipboardContent
content
=
new
ClipboardContent
();
content
.
putString
(
node
.
getFeature
().
getGmlId
().
toString
());
if
(!
clipboard
.
setContent
(
content
))
{
logger
.
warn
(
Localization
.
getText
(
"MainWindow.warnCopyIdFailed"
));
}
}
else
{
logger
.
info
(
Localization
.
getText
(
"MainWindow.infoTopLevelCopyID"
));
}
});
menu
.
getItems
().
add
(
clipMi
);
MenuItem
deleteMi
=
new
MenuItem
(
Localization
.
getText
(
"MainWindow.delete"
));
deleteMi
.
setOnAction
(
ae
->
controller
.
delete
(
buildingsView
.
getSelectionModel
().
getSelectedItem
()));
menu
.
getItems
().
add
(
deleteMi
);
buildingsView
.
setContextMenu
(
menu
);
}
}
private
void
setupVegetationTabContextMenu
()
{
private
void
setupContextMenus
(){
ContextMenu
menu
=
new
ContextMenu
();
setupFeatureTabContextMenu
(
buildingsView
);
MenuItem
mi
=
new
MenuItem
(
Localization
.
getText
(
"MainWindow.export"
));
setupFeatureTabContextMenu
(
vegetationView
);
mi
.
setOnAction
(
ea
->
{
setupFeatureTabContextMenu
(
transView
);
Renderable
render
=
vegetationView
.
getSelectionModel
().
getSelectedItem
().
getValue
();
setupFeatureTabContextMenu
(
tunnelView
);
if
(
render
instanceof
FeatureNode
node
)
{
setupFeatureTabContextMenu
(
bridgeView
);
try
{
setupFeatureTabContextMenu
(
waterView
);
controller
.
export
(
node
.
getFeature
());
setupFeatureTabContextMenu
(
terrainView
);
logger
.
info
(
Localization
.
getText
(
"CityDoctorController.export"
));
setupFeatureTabContextMenu
(
cityFurnitureView
);
}
catch
(
Exception
e
)
{
setupFeatureTabContextMenu
(
otherObjectsView
);
logger
.
error
(
"Export failed: Unexpected error occurred"
);
logger
.
error
(
e
);
}
}
else
{
logger
.
info
(
Localization
.
getText
(
"MainWindow.infoTopLevelExport"
));
}
});
menu
.
getItems
().
add
(
mi
);
MenuItem
clipMi
=
new
MenuItem
(
Localization
.
getText
(
"MainWindow.copyId"
));
clipMi
.
setOnAction
(
ea
->
{
Renderable
render
=
vegetationView
.
getSelectionModel
().
getSelectedItem
().
getValue
();
if
(
render
instanceof
FeatureNode
node
)
{
Clipboard
clipboard
=
getSystemClipboard
();
ClipboardContent
content
=
new
ClipboardContent
();
content
.
putString
(
node
.
getFeature
().
getGmlId
().
toString
());
if
(!
clipboard
.
setContent
(
content
))
{
logger
.
warn
(
Localization
.
getText
(
"MainWindow.warnCopyIdFailed"
));
}
}
else
{
logger
.
info
(
Localization
.
getText
(
"MainWindow.infoTopLevelCopyID"
));
}
});
menu
.
getItems
().
add
(
clipMi
);
MenuItem
deleteMi
=
new
MenuItem
(
Localization
.
getText
(
"MainWindow.delete"
));
deleteMi
.
setOnAction
(
ae
->
controller
.
delete
(
vegetationView
.
getSelectionModel
().
getSelectedItem
()));
menu
.
getItems
().
add
(
deleteMi
);
vegetationView
.
setContextMenu
(
menu
);
}
}
private
void
setupFeatureTabContextMenu
(
TreeView
<
Renderable
>
featureView
)
{
private
void
setupFeatureTabContextMenu
(
TreeView
<
Renderable
>
featureView
)
{
...
...
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