Skip to content

Commit 6101bc8

Browse files
committed
Merge pull request #164 from scijava/file-chooser-titles
Add API to give explicit file chooser title
2 parents fd8a932 + 0fd01f6 commit 6101bc8

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed

src/main/java/org/scijava/ui/AbstractUserInterface.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
package org.scijava.ui;
3333

34+
import java.io.File;
3435
import java.util.List;
3536

3637
import org.scijava.app.StatusService;
@@ -47,6 +48,7 @@
4748
import org.scijava.ui.console.ConsolePane;
4849
import org.scijava.ui.viewer.DisplayViewer;
4950
import org.scijava.ui.viewer.DisplayWindow;
51+
import org.scijava.widget.FileWidget;
5052

5153
/**
5254
* Abstract superclass for {@link UserInterface} implementations.
@@ -186,6 +188,19 @@ public ConsolePane<?> getConsolePane() {
186188
return null;
187189
}
188190

191+
@Override
192+
public File chooseFile(final File file, final String style) {
193+
return chooseFile(fileChooserTitle(style), file, style);
194+
}
195+
196+
@Deprecated
197+
@Override
198+
public File chooseFile(final String title, final File file,
199+
final String style)
200+
{
201+
throw new UnsupportedOperationException("No default implementation.");
202+
}
203+
189204
@Override
190205
public void saveLocation() {
191206
final ApplicationFrame appFrame = getApplicationFrame();
@@ -216,4 +231,12 @@ protected void createUI() {
216231
restoreLocation();
217232
}
218233

234+
/** Gets a default file chooser title to use when none is given. */
235+
protected String fileChooserTitle(final String style) {
236+
if (style.equals(FileWidget.DIRECTORY_STYLE)) return "Choose a directory";
237+
if (style.equals(FileWidget.OPEN_STYLE)) return "Open";
238+
if (style.equals(FileWidget.SAVE_STYLE)) return "Save";
239+
return "Choose a file";
240+
}
241+
219242
}

src/main/java/org/scijava/ui/DefaultUIService.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,15 @@ public File chooseFile(final File file, final String style) {
340340
return ui.chooseFile(file, style);
341341
}
342342

343+
@Override
344+
public File
345+
chooseFile(final String title, final File file, final String style)
346+
{
347+
final UserInterface ui = getDefaultUI();
348+
if (ui == null) return null;
349+
return ui.chooseFile(title, file, style);
350+
}
351+
343352
@Override
344353
public void showContextMenu(final String menuRoot, final Display<?> display,
345354
final int x, final int y)

src/main/java/org/scijava/ui/UIService.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,23 @@ DialogPrompt.Result showDialog(String message, String title,
276276
*/
277277
File chooseFile(File file, String style);
278278

279+
/**
280+
* Prompts the user to choose a file.
281+
* <p>
282+
* The prompt is displayed in the default user interface.
283+
* </p>
284+
*
285+
* @param title Title to use in the file chooser dialog.
286+
* @param file The initial value displayed in the file chooser prompt.
287+
* @param style The style of chooser to use:
288+
* <ul>
289+
* <li>{@link FileWidget#OPEN_STYLE}</li>
290+
* <li>{@link FileWidget#SAVE_STYLE}</li>
291+
* <li>{@link FileWidget#DIRECTORY_STYLE}</li>
292+
* </ul>
293+
*/
294+
File chooseFile(String title, File file, String style);
295+
279296
/**
280297
* Displays a popup context menu for the given display at the specified
281298
* position.

src/main/java/org/scijava/ui/UserInterface.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,20 @@ DialogPrompt dialogPrompt(String message, String title,
133133
*/
134134
File chooseFile(File file, String style);
135135

136+
/**
137+
* Prompts the user to choose a file.
138+
*
139+
* @param title Title to use in the file chooser dialog.
140+
* @param file The initial value displayed in the file chooser prompt.
141+
* @param style The style of chooser to use:
142+
* <ul>
143+
* <li>{@link FileWidget#OPEN_STYLE}</li>
144+
* <li>{@link FileWidget#SAVE_STYLE}</li>
145+
* <li>{@link FileWidget#DIRECTORY_STYLE}</li>
146+
* </ul>
147+
*/
148+
File chooseFile(String title, File file, String style);
149+
136150
/**
137151
* Displays a popup context menu for the given display at the specified
138152
* position.

0 commit comments

Comments
 (0)