From 4a700dca88539a7f37e060f73110140054fb3be4 Mon Sep 17 00:00:00 2001 From: Diana Date: Sat, 7 Mar 2026 22:48:07 +0300 Subject: [PATCH 1/4] commander: wanna see tests --- .../hse/java/commander/MainController.java | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/commander/src/main/java/hse/java/commander/MainController.java b/commander/src/main/java/hse/java/commander/MainController.java index 5de3b66d..2a4800ef 100644 --- a/commander/src/main/java/hse/java/commander/MainController.java +++ b/commander/src/main/java/hse/java/commander/MainController.java @@ -4,6 +4,8 @@ import javafx.scene.control.Button; import javafx.scene.control.ListView; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; public class MainController { @@ -17,9 +19,17 @@ public class MainController { @FXML public Button move; + @FXML + public Button copy; + + @FXML + public Button delete; + private Path leftDir; private Path rightDir; + private boolean leftAct; + // for testing public void setInitialDirs(Path leftStart, Path rightStart) { this.leftDir = leftStart; @@ -27,13 +37,17 @@ public void setInitialDirs(Path leftStart, Path rightStart) { } public void initialize() { - move.setOnMouseClicked(event -> { + move.setOnMouseClicked(event -> move()); + + copy.setOnMouseClicked(event -> copy()); + + delete.setOnMouseClicked(event -> delete()); - }); System.out.println(System.getProperty("user.home")); left.getItems().add("Kek"); left.setOnMouseClicked(event -> { + leftAct = true; if (event.getClickCount() == 2) { int index = left.getSelectionModel().getSelectedIndex(); if (index >= 0) { @@ -41,5 +55,39 @@ public void initialize() { } } }); + right.setOnMouseClicked(event -> leftAct = false); + } + + + private void move() { + String name = leftAct ? left.getSelectionModel().getSelectedItem() : right.getSelectionModel().getSelectedItem(); + + Path source = leftAct ? leftDir.resolve(name) : rightDir.resolve(name); + Path target = leftAct ? rightDir.resolve(name) : leftDir.resolve(name); + + try { + Files.move(source, target); + } catch (IOException e) {} + } + + private void copy() { + String name = leftAct ? left.getSelectionModel().getSelectedItem() : right.getSelectionModel().getSelectedItem(); + + Path source = leftAct ? leftDir.resolve(name) : rightDir.resolve(name); + Path target = leftAct ? rightDir.resolve(name) : leftDir.resolve(name); + + try { + Files.copy(source, target); + } catch (IOException e) {} + } + + private void delete() { + String name = leftAct ? left.getSelectionModel().getSelectedItem() : right.getSelectionModel().getSelectedItem(); + + Path source = leftAct ? leftDir.resolve(name) : rightDir.resolve(name); + + try { + Files.delete(source); + } catch (IOException e) {} } } From 7b8546e3d751d07ca017153297b6680788af56fa Mon Sep 17 00:00:00 2001 From: Diana Date: Sun, 8 Mar 2026 11:15:20 +0300 Subject: [PATCH 2/4] commander: first try --- .../hse/java/commander/MainController.java | 65 +++++++++++++++++-- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/commander/src/main/java/hse/java/commander/MainController.java b/commander/src/main/java/hse/java/commander/MainController.java index 2a4800ef..0fd000db 100644 --- a/commander/src/main/java/hse/java/commander/MainController.java +++ b/commander/src/main/java/hse/java/commander/MainController.java @@ -4,9 +4,11 @@ import javafx.scene.control.Button; import javafx.scene.control.ListView; +import java.awt.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Objects; public class MainController { @@ -34,6 +36,24 @@ public class MainController { public void setInitialDirs(Path leftStart, Path rightStart) { this.leftDir = leftStart; this.rightDir = rightStart; + + refresh(left, leftDir); + refresh(right, rightDir); + } + + private void refresh(ListView part, Path dir) { + part.getItems().clear(); + + try { + if (dir.getParent() != null) { + part.getItems().add(".."); + } + + Files.list(dir).map(p -> p.getFileName().toString()).forEach(part.getItems()::add); + } catch (IOException e) {} + + + //part.getItems().addAll(dir.toFile().list()); } public void initialize() { @@ -49,13 +69,15 @@ public void initialize() { left.setOnMouseClicked(event -> { leftAct = true; if (event.getClickCount() == 2) { - int index = left.getSelectionModel().getSelectedIndex(); - if (index >= 0) { - left.getItems().set(index, "clicked"); - } + open(left); + } + }); + right.setOnMouseClicked(event -> { + leftAct = false; + if (event.getClickCount() == 2) { + open(right); } }); - right.setOnMouseClicked(event -> leftAct = false); } @@ -67,6 +89,8 @@ private void move() { try { Files.move(source, target); + refresh(left, leftDir); + refresh(right, rightDir); } catch (IOException e) {} } @@ -78,6 +102,8 @@ private void copy() { try { Files.copy(source, target); + refresh(left, leftDir); + refresh(right, rightDir); } catch (IOException e) {} } @@ -88,6 +114,35 @@ private void delete() { try { Files.delete(source); + refresh(left, leftDir); + refresh(right, rightDir); } catch (IOException e) {} } + + private void open(ListView part) { + String name = part.getSelectionModel().getSelectedItem(); + Path dir = leftAct ? leftDir : rightDir; + + if (name.equals("..")) { + dir = dir.getParent(); + } + else { + Path fullPath = dir.resolve(name); + if (Files.isDirectory(fullPath)) { + dir = fullPath; + } + else { + return; + } + } + + if (part == left) { + leftDir = dir; + refresh(left, leftDir); + } + else { + rightDir = dir; + refresh(right, rightDir); + } + } } From a186c0f19e2ae720841d0e8a3fe733915d58c09f Mon Sep 17 00:00:00 2001 From: Diana Date: Sun, 8 Mar 2026 11:19:16 +0300 Subject: [PATCH 3/4] commander: delete import --- commander/src/main/java/hse/java/commander/MainController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/commander/src/main/java/hse/java/commander/MainController.java b/commander/src/main/java/hse/java/commander/MainController.java index 0fd000db..946a3dba 100644 --- a/commander/src/main/java/hse/java/commander/MainController.java +++ b/commander/src/main/java/hse/java/commander/MainController.java @@ -3,8 +3,6 @@ import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.ListView; - -import java.awt.*; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; From f5c4378b9b8c3d8b43343b1f4ea8952d6ba7c37a Mon Sep 17 00:00:00 2001 From: Diana Date: Sun, 8 Mar 2026 11:23:38 +0300 Subject: [PATCH 4/4] commander: add null check --- .../src/main/java/hse/java/commander/MainController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/commander/src/main/java/hse/java/commander/MainController.java b/commander/src/main/java/hse/java/commander/MainController.java index 946a3dba..ef63bb18 100644 --- a/commander/src/main/java/hse/java/commander/MainController.java +++ b/commander/src/main/java/hse/java/commander/MainController.java @@ -62,7 +62,6 @@ public void initialize() { delete.setOnMouseClicked(event -> delete()); System.out.println(System.getProperty("user.home")); - left.getItems().add("Kek"); left.setOnMouseClicked(event -> { leftAct = true; @@ -121,6 +120,10 @@ private void open(ListView part) { String name = part.getSelectionModel().getSelectedItem(); Path dir = leftAct ? leftDir : rightDir; + if (name == null) { + return; + } + if (name.equals("..")) { dir = dir.getParent(); }