3333import drrename .strategy .RenamingConfig ;
3434import drrename .strategy .RenamingStrategy ;
3535import drrename .strategy .SimpleRenamingConfig ;
36+ import drrename .ui .mainview .controller .TabController ;
3637import drrename .util .FXUtil ;
3738import drrename .ui .settingsview .SettingsController ;
3839import drrename .ui .mainview .controller .FileListComponentController ;
4647import javafx .beans .property .SimpleBooleanProperty ;
4748import javafx .beans .property .SimpleListProperty ;
4849import javafx .beans .value .ChangeListener ;
50+ import javafx .beans .value .ObservableValue ;
4951import javafx .collections .FXCollections ;
5052import javafx .collections .ListChangeListener ;
5153import javafx .concurrent .Service ;
7779@ RequiredArgsConstructor
7880@ Slf4j
7981@ Component
80- @ FxmlView ("/fxml/MainView .fxml" )
81- public class MainController implements Initializable {
82+ @ FxmlView ("/fxml/RenameView .fxml" )
83+ public class RenameController implements Initializable {
8284
8385 private static final String RENAMING_FILES = "mainview.status.renaming_files" ;
8486
@@ -88,6 +90,8 @@ public class MainController implements Initializable {
8890
8991 private static final String LOADING_FILE_TYPES = "mainview.status.loading_filetypes" ;
9092
93+ private final TabController tabController ;
94+
9195 private final AppConfig config ;
9296
9397 private final LoadPathsService loadPathsService ;
@@ -108,8 +112,6 @@ public class MainController implements Initializable {
108112
109113 public VBox fileListComponent ;
110114
111- public BorderPane startDirectoryComponent ;
112-
113115 public HBox replacementStringComponent ;
114116
115117 private final RenamingService renamingService ;
@@ -168,8 +170,6 @@ public class MainController implements Initializable {
168170
169171 @ FXML
170172 private ProgressBar progressBar ;
171- @ FXML
172- MenuBar menuBar ;
173173
174174 @ FXML
175175 Node layer01 ;
@@ -194,8 +194,6 @@ public class MainController implements Initializable {
194194
195195 public GoCancelButtonsComponentController goCancelButtonsComponentController ;
196196
197- public StartDirectoryComponentController startDirectoryComponentController ;
198-
199197 public FileListComponentController fileListComponentController ;
200198
201199 public ReplacementStringComponentController replacementStringComponentController ;
@@ -217,7 +215,7 @@ public void initialize(URL url, ResourceBundle resourceBundle) {
217215 textFieldReplacementStringTo = replacementStringComponentController .textFieldReplacementStringTo ;
218216 textFieldReplacementStringFrom = replacementStringComponentController .textFieldReplacementStringFrom ;
219217
220- FXUtil . initAppMenu ( menuBar );
218+
221219
222220 initRenamingStrategies ();
223221
@@ -229,8 +227,6 @@ public void initialize(URL url, ResourceBundle resourceBundle) {
229227
230228 configureStatusLabels ();
231229
232- initDragAndDrop ();
233-
234230 progressBar .visibleProperty ().bind (loadPathsService .runningProperty ().or (previewService .runningProperty ().or (renamingService .runningProperty ())));
235231
236232 if (config .isDebug ())
@@ -261,43 +257,6 @@ public void initialize(URL url, ResourceBundle resourceBundle) {
261257
262258 }
263259
264- private void initDragAndDrop () {
265- startDirectoryComponentController .textFieldDirectory .setOnDragEntered (this ::handleDragEvent );
266- startDirectoryComponentController .textFieldDirectory .setOnDragEntered (this ::handleDragEvent );
267- startDirectoryComponentController .textFieldDirectory .setOnDragOver (this ::handleDragEvent );
268- startDirectoryComponentController .textFieldDirectory .setOnDragDropped (this ::handleDragEvent );
269- startDirectoryComponentController .textFieldDirectory .setOnDragExited (this ::handleDragEvent );
270-
271- leftContent .setOnDragEntered (this ::handleDragEvent );
272- leftContent .setOnDragEntered (this ::handleDragEvent );
273- leftContent .setOnDragOver (this ::handleDragEvent );
274- leftContent .setOnDragDropped (this ::handleDragEvent );
275- leftContent .setOnDragExited (this ::handleDragEvent );
276- }
277-
278- private void handleDragEvent (DragEvent event ) {
279- if (DragEvent .DRAG_ENTERED .equals (event .getEventType ()) && event .getGestureSource () == null ) {
280- draggingOver .set (true );
281- } else if (DragEvent .DRAG_OVER .equals (event .getEventType ()) && event .getGestureSource () == null && event .getDragboard ().hasFiles ()) {
282- event .acceptTransferModes (TransferMode .ANY );
283- } else if (DragEvent .DRAG_DROPPED .equals (event .getEventType ()) && event .getGestureSource () == null && event .getDragboard ().hasFiles ()) {
284-
285- if (event .getDragboard ().getFiles ().size () == 1 && event .getDragboard ().getFiles ().iterator ().next ().isDirectory ()) {
286- // Only update the input field, this will trigger a loading
287- startDirectoryComponentController .textFieldDirectory .setText (event .getDragboard ().getFiles ().iterator ().next ().toString ());
288- } else {
289- Set <Path > vaultPaths = event .getDragboard ().getFiles ().stream ().map (File ::toPath ).collect (Collectors .toSet ());
290- loadedPaths .setAll (vaultPaths );
291- startDirectoryComponentController .textFieldDirectory .setText (null );
292- Platform .runLater (this ::updateInputView );
293- }
294- event .setDropCompleted (true );
295- event .consume ();
296- } else if (DragEvent .DRAG_EXITED .equals (event .getEventType ())) {
297- draggingOver .set (false );
298- }
299- }
300-
301260 private void configureStatusLabels () {
302261 statusLabelLoaded .textProperty ().bind (entriesService .statusLoadedProperty ());
303262 statusLabelLoadedFileTypes .textProperty ().bind (entriesService .statusLoadedFileTypesProperty ());
@@ -328,16 +287,18 @@ private void initRenamingStrategies() {
328287 private void registerInputChangeListener () {
329288 replaceStringFromChangeListener = (e , o , n ) -> Platform .runLater (this ::updatePreview );
330289 replaceStringToChangeListener = (e , o , n ) -> Platform .runLater (this ::updatePreview );
331- textFieldChangeListener = (e , o , n ) -> Platform .runLater (() -> {
332- if (n != null ) loadedPaths .setAll (Path .of (n ));
333- updateInputView ();
290+ tabController .startDirectoryComponentController .inputPathProperty ().addListener (new ChangeListener <Path >() {
291+ @ Override
292+ public void changed (ObservableValue <? extends Path > observable , Path oldValue , Path n ) {
293+ if (n != null ) loadedPaths .setAll (n );
294+ updateInputView ();
295+ }
334296 });
335297 ignoreDirectoriesChangeListener = (e , o , n ) -> entriesService .setFilterDirectories (n );
336298 ignoreHiddenFilesChangeListener = (e , o , n ) -> entriesService .setFilterHiddenFiles (n );
337299 showOnlyChangingChangeListener = (e , o , n ) -> entriesService .setShowOnlyChainging (n );
338300 textFieldReplacementStringFrom .textProperty ().addListener (replaceStringFromChangeListener );
339301 textFieldReplacementStringTo .textProperty ().addListener (replaceStringToChangeListener );
340- startDirectoryComponentController .textFieldDirectory .textProperty ().addListener (textFieldChangeListener );
341302 ignoreDirectories .selectedProperty ().addListener (ignoreDirectoriesChangeListener );
342303 ignoreHiddenFiles .selectedProperty ().addListener (ignoreHiddenFilesChangeListener );
343304 showOnlyChanging .selectedProperty ().addListener (showOnlyChangingChangeListener );
0 commit comments