Commit 2948aaf1 authored by Riegel's avatar Riegel
Browse files

Unify FeatureTab ContextMenu setup

parent 0dfb11c1
......@@ -733,40 +733,12 @@ public class MainWindow extends Application {
buildingsView.setShowRoot(true);
setupSelectListener(buildingsView);
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);
setupSelectListener(vegetationView);
vegetationView.setCellFactory(param -> new RenderableTreeCell());
setupVegetationTabContextMenu();
transView.setShowRoot(true);
setupSelectListener(transView);
......@@ -776,30 +748,31 @@ public class MainWindow extends Application {
tunnelView.setShowRoot(true);
setupSelectListener(tunnelView);
tunnelView.setCellFactory(param -> new RenderableTreeCell());
setupFeatureTabContextMenu(tunnelView);
bridgeView.setShowRoot(true);
setupSelectListener(bridgeView);
bridgeView.setCellFactory(param -> new RenderableTreeCell());
setupFeatureTabContextMenu(bridgeView);
waterView.setShowRoot(true);
setupSelectListener(waterView);
waterView.setCellFactory(param -> new RenderableTreeCell());
terrainView.setShowRoot(true);
setupSelectListener(terrainView);
terrainView.setCellFactory(param -> new RenderableTreeCell());
cityFurnitureView.setShowRoot(true);
setupSelectListener(cityFurnitureView);
cityFurnitureView.setCellFactory(param -> new RenderableTreeCell());
setupFeatureTabContextMenu(cityFurnitureView);
otherObjectsView.setShowRoot(true);
setupSelectListener(otherObjectsView);
otherObjectsView.setCellFactory(param -> new RenderableTreeCell());
setupFeatureTabContextMenu(otherObjectsView);
setupSelectListener(vertexView);
vertexView.setRoot(new TreeItem<>());
......@@ -817,90 +790,20 @@ public class MainWindow extends Application {
attributeView.setRoot(new TreeItem<>());
attributeView.setCellFactory(param -> new RenderableTreeCell());
}
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);
setupContextMenus();
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() {
ContextMenu menu = new ContextMenu();
MenuItem mi = new MenuItem(Localization.getText("MainWindow.export"));
mi.setOnAction(ea -> {
Renderable render = vegetationView.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 = 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 setupContextMenus(){
setupFeatureTabContextMenu(buildingsView);
setupFeatureTabContextMenu(vegetationView);
setupFeatureTabContextMenu(transView);
setupFeatureTabContextMenu(tunnelView);
setupFeatureTabContextMenu(bridgeView);
setupFeatureTabContextMenu(waterView);
setupFeatureTabContextMenu(terrainView);
setupFeatureTabContextMenu(cityFurnitureView);
setupFeatureTabContextMenu(otherObjectsView);
}
private void setupFeatureTabContextMenu(TreeView<Renderable> featureView) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment