diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java index 19395273dc96ea3a564ad93a598637bc276a02ce..e90172e51283865b83f2d5fe55d6f4e25049c2d9 100644 --- a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java +++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java @@ -1,9 +1,12 @@ package de.hft.stuttgart.citydoctor2.gui; +import de.hft.stuttgart.citydoctor2.datastructure.*; +import de.hft.stuttgart.citydoctor2.gui.tree.FeatureNode; +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.scene.input.Clipboard; +import javafx.scene.input.ClipboardContent; import org.locationtech.proj4j.ProjCoordinate; -import de.hft.stuttgart.citydoctor2.datastructure.Polygon; -import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.gui.tree.Renderable; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import javafx.scene.control.ContextMenu; @@ -15,6 +18,8 @@ import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; import javafx.stage.Stage; +import static javafx.scene.input.Clipboard.getSystemClipboard; + public class VertexClickHandler implements ClickHandler { private TreeView<Renderable> errorView; @@ -38,8 +43,21 @@ public class VertexClickHandler implements ClickHandler { errorView.getSelectionModel().clearSelection(); renderer.highlight(p); } else if (me.getButton() == MouseButton.SECONDARY) { - MenuItem mi = new MenuItem(p.getGmlId().getGmlString()); - ContextMenu cMenu = new ContextMenu(mi); + ContextMenu cMenu = new ContextMenu(); + + MenuItem clipMi = new MenuItem(Localization.getText("MainWindow.copyId")); + clipMi.setOnAction(ea -> { + CityObject parent = p.getParent().getParent(); + if (parent instanceof BoundarySurface bs) { + parent = bs.getParent(); + + } + Clipboard clipboard = getSystemClipboard(); + ClipboardContent content = new ClipboardContent(); + content.putString(parent.getGmlId().toString()); + clipboard.setContent(content); + }); + cMenu.getItems().add(clipMi); cMenu.show(stage, me.getScreenX(), me.getScreenY()); } }