package GUI.Components; import Logger.Level; import Logger.Logger; import Maus.Maus; import Server.ClientObject; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.input.MouseEvent; import javafx.scene.layout.HBox; import javafx.stage.DirectoryChooser; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; public class FileContextMenu { public static String selectedDirectory; public static void getFileContextMenu(HBox fileIcon, String fileName, MouseEvent e, ClientObject client) { ContextMenu cm = new ContextMenu(); MenuItem sb1 = new MenuItem("Delete File"); MenuItem sb2 = new MenuItem("Download File"); sb2.setOnAction(event -> { DirectoryChooser directoryChooser = new DirectoryChooser(); directoryChooser.setTitle("Select download location"); File selectedDirectory = directoryChooser.showDialog(Maus.getPrimaryStage()); FileContextMenu.selectedDirectory = selectedDirectory.getAbsolutePath(); try { client.clientCommunicate("DOWNLOAD"); client.clientCommunicate(fileName); } catch (IOException e1) { Logger.log(Level.ERROR, e1.toString()); } }); cm.getItems().addAll(sb1, sb2); cm.show(fileIcon, e.getScreenX(), e.getScreenY()); } public static void getDirectoryMenu(HBox fileIcon, String fileName, MouseEvent e, ClientObject client) { ContextMenu cm = new ContextMenu(); MenuItem sb2 = new MenuItem("Open Folder"); sb2.setOnAction(event -> { try { client.clientCommunicate("CHNGDIR"); DataOutputStream dos = new DataOutputStream(client.getClient().getOutputStream()); dos.writeUTF(fileName); } catch (IOException e1) { Logger.log(Level.ERROR, e1.toString()); } }); cm.getItems().addAll(sb2); cm.show(fileIcon, e.getScreenX(), e.getScreenY()); } }