diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobController.java
index 2792549a674af07471f6fed22e0995a5562a9ca6..f896bbbe7ce3ffe19bcfb074724a3269e1c70e38 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobController.java
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobController.java
@@ -1,6 +1,7 @@
 package cz.it4i.fiji.haas_spim_benchmark.ui;
 
 import java.awt.Window;
+import java.io.File;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -9,6 +10,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import cz.it4i.fiji.haas.ui.CloseableControl;
+import cz.it4i.fiji.haas.ui.FXFrame;
 import cz.it4i.fiji.haas.ui.InitiableControl;
 import cz.it4i.fiji.haas.ui.JavaFXRoutines;
 import javafx.beans.value.ObservableValue;
@@ -22,6 +24,7 @@ import javafx.scene.control.TextField;
 import javafx.scene.control.Toggle;
 import javafx.scene.control.ToggleGroup;
 import javafx.scene.layout.BorderPane;
+import javafx.stage.DirectoryChooser;
 
 public class NewJobController extends BorderPane implements CloseableControl, InitiableControl {
 
@@ -29,7 +32,8 @@ public class NewJobController extends BorderPane implements CloseableControl, In
 		DEMONSTRATION_ON_SERVER, WORK_DIRECTORY, CUSTOM_DIRECTORY
 	}
 
-	private static final Runnable EMPTY_NOTIFIER = () -> {};
+	private static final Runnable EMPTY_NOTIFIER = () -> {
+	};
 
 	@SuppressWarnings("unused")
 	private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas_spim_benchmark.ui.NewJobController.class);
@@ -59,16 +63,24 @@ public class NewJobController extends BorderPane implements CloseableControl, In
 
 	private DataLocation outputDataLocation;
 
-	private Window ownerWindow;
+	private FXFrame<?> ownerWindow;
 
-		private Runnable createPressedNotifier;
+	private Runnable createPressedNotifier;
 
+	@FXML
+	private Button bt_selectInput;
+
+	@FXML
+	private Button bt_selectOutput;
+	
 	public NewJobController() {
 		JavaFXRoutines.initRootAndController("NewJobView.fxml", this);
 		getStylesheets().add(getClass().getResource("NewJobView.css").toExternalForm());
 		bt_create.setOnMouseClicked(X -> createPressed());
 		tg_inputDataLocation.selectedToggleProperty().addListener((v, old, n) -> selected(v, old, n, rb_ownInput));
 		tg_outputDataLocation.selectedToggleProperty().addListener((v, o, n) -> selected(v, o, n, rb_ownOutput));
+		initSelectButton(et_inputDirectory, bt_selectInput);
+		initSelectButton(et_outputDirectory, bt_selectOutput);
 	}
 
 	@Override
@@ -77,25 +89,39 @@ public class NewJobController extends BorderPane implements CloseableControl, In
 
 	@Override
 	public void init(Window parameter) {
-		ownerWindow = parameter;
+		ownerWindow = (FXFrame<?>) parameter;
 	}
 
 	public Path getInputDirectory(Path workingDirectory) {
 		return getDirectory(inputDataLocation, et_inputDirectory.getText(), workingDirectory);
 	}
-	
+
 	public Path getOutputDirectory(Path workingDirectory) {
 		return getDirectory(outputDataLocation, et_outputDirectory.getText(), workingDirectory);
 	}
 
 	public void setCreatePressedNotifier(Runnable createPressedNotifier) {
-		if(createPressedNotifier != null) {
+		if (createPressedNotifier != null) {
 			this.createPressedNotifier = createPressedNotifier;
 		} else {
 			this.createPressedNotifier = EMPTY_NOTIFIER;
 		}
 	}
 
+	private void initSelectButton(TextField textField, Button button) {
+		button.setOnAction(x -> {
+			Path p = Paths.get(textField.getText());
+			DirectoryChooser dch = new DirectoryChooser();
+			if (Files.exists(p)) {
+				dch.setInitialDirectory(p.toAbsolutePath().toFile());
+			}
+			File result = dch.showDialog(ownerWindow.getFxPanel().getScene().getWindow());
+			if (result != null) {
+				textField.setText(result.toString());
+			}
+		});
+	}
+
 	private Path getDirectory(DataLocation dataLocation, String selectedDirectory, Path workingDirectory) {
 		switch (dataLocation) {
 		case DEMONSTRATION_ON_SERVER:
diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobView.fxml b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobView.fxml
index 5aa539c3f1535446c5be2a6530878adb701dc6f7..ff08e2151353137edf64fe9f6d1d96cce5d503c5 100644
--- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobView.fxml
+++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/NewJobView.fxml
@@ -39,8 +39,8 @@
                                  <graphic>
                                     <HBox disable="true">
                                        <children>
-                                          <TextField fx:id="et_inputDirectory" />
-                                          <Button mnemonicParsing="false" text="Select" />
+                                          <TextField fx:id="et_inputDirectory" prefWidth="350.0" />
+                                          <Button fx:id="bt_selectInput" mnemonicParsing="false" text="Select" />
                                        </children>
                                     </HBox>
                                  </graphic>
@@ -75,8 +75,8 @@
                                        <graphic>
                                           <HBox disable="true">
                                              <children>
-                                                <TextField fx:id="et_outputDirectory" />
-                                                <Button mnemonicParsing="false" text="Select" />
+                                                <TextField fx:id="et_outputDirectory" prefWidth="350.0" />
+                                                <Button fx:id="bt_selectOutput" mnemonicParsing="false" text="Select" />
                                              </children>
                                           </HBox>
                                        </graphic>