Ticket #2341: fileFilters-design.patch
File fileFilters-design.patch, 57.4 KB (added by pap, 15 years ago) |
---|
-
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/imports/ResourceImportManager.java
### Eclipse Workspace Patch 1.0 #P sophie
7 7 import java.util.List; 8 8 import java.util.Map; 9 9 10 import javax.swing.filechooser.FileFilter;11 12 10 import org.sophie2.base.commons.util.ImmList; 13 11 import org.sophie2.base.commons.util.position.ImmPoint; 14 12 import org.sophie2.base.commons.util.position.ImmSize; … … 47 45 public abstract class ResourceImportManager<D> { 48 46 49 47 /** 50 * File filter used when user imports multiple resources from the file51 * system.52 */53 public static final FileFilter ALL_RESOURCE_FILTER = null;54 55 /**56 48 * Retrieves the import role of this <code>ResourceImportManager</code>. 57 49 * 58 50 * @return The import role of the manager. … … 124 116 protected FileContainer getFilesContainer(ResourceImportProvider provider, 125 117 ResourceH parentResource) { 126 118 FileDialogInput input = new FileDialogInput(null, 127 "Import resource", provider.getFileFilter(),128 "", FileDialogInput.Kind.OPEN, true, getFileAccessory(parentResource));119 "Import resource", "", 120 FileDialogInput.Kind.OPEN, true, getFileAccessory(parentResource), provider.getFilterInfo()); 129 121 130 122 return DialogManager.get().showDialog(input); 131 123 } -
modules/org.sophie2.main.func.text/src/main/java/org/sophie2/main/func/text/rtf/RtfModule.java
6 6 import org.sophie2.core.modularity.SophieExtension; 7 7 import org.sophie2.core.modularity.SophieExtensionPoint; 8 8 import org.sophie2.core.modularity.SophieModule; 9 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 9 10 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; 10 11 11 12 /** … … 25 26 AutoVisualProvider.fillExtensions(res, InsertRtfItem.class); 26 27 27 28 SimpleResourceImportProvider.register(res, new RtfTextImportManager(), 28 RtfTextImportManager.FILE_FILTER);29 new FileFilterInfo(RtfTextImportManager.FILE_FILTER)); 29 30 } 30 31 } -
modules/org.sophie2.main.func.resources/src/test/java/org/sophie2/main/func/resources/imports/bindata/BinDataChooserDemo.java
17 17 import org.sophie2.main.dialogs.input.FileExtensionFilter; 18 18 import org.sophie2.main.dialogs.input.MessageDialogInput; 19 19 import org.sophie2.main.dialogs.input.FileDialogInput.FileContainer; 20 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 20 21 import org.sophie2.main.dialogs.input.FileDialogInput.Kind; 21 22 import org.sophie2.main.func.file.FileFunctionalityModule; 22 23 import org.sophie2.main.func.resources.MainFuncResourcesModule; … … 49 50 MainAppModule.class, 50 51 MainFuncResourcesModule.class, 51 52 FileFunctionalityModule.class); 52 53 53 } 54 54 }); 55 55 … … 57 57 new FileExtensionFilter("Audio (*.mp3, *.mpg)", "mp3", "mpg"); 58 58 59 59 final FileDialogInput input = new FileDialogInput(null, "Import data", 60 filter, "", Kind.OPEN, true,61 new BinDataChooser(filter));60 "", Kind.OPEN, true, new BinDataChooser(filter), 61 new FileFilterInfo(filter)); 62 62 63 63 SwingUtilities.invokeLater(new Runnable() { 64 64 public void run() { -
modules/org.sophie2.main.func.resources/src/test/java/org/sophie2/main/func/resources/imports/ResourceImportUtilTest.java
38 38 import org.sophie2.main.app.commons.testing.AppTestBase; 39 39 import org.sophie2.main.dialogs.input.FileDialogInput; 40 40 import org.sophie2.main.dialogs.input.FileDialogInput.FileContainer; 41 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 41 42 import org.sophie2.main.func.file.FileFunctionalityModule; 42 43 import org.sophie2.main.func.resources.dummy.ColdTextData; 43 44 import org.sophie2.main.func.resources.dummy.ColdTextFrame; … … 126 127 127 128 this.provider = new SimpleResourceImportProvider( 128 129 new ColdTextImportManager(), 129 ColdTextImportManager.FILE_FILTER);130 new FileFilterInfo(ColdTextImportManager.FILE_FILTER)); 130 131 } 131 132 132 133 private void testOneText(ResourceAccess bookAccess, File resFile, -
modules/org.sophie2.main.func.help/src/main/java/org/sophie2/main/func/help/bugreport/BugReportLogic.java
37 37 import org.sophie2.main.dialogs.input.FileDialogInput; 38 38 import org.sophie2.main.dialogs.input.FileExtensionFilter; 39 39 import org.sophie2.main.dialogs.input.MessageDialogInput; 40 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 40 41 import org.sophie2.main.dialogs.input.FileDialogInput.Kind; 41 42 import org.sophie2.main.func.help.bugreport.BugReportDialog.AttachFileButton; 42 43 import org.sophie2.main.func.help.bugreport.BugReportDialog.CancelBugReportButton; … … 89 90 90 91 FileFilter txtFilter = new FileExtensionFilter("TXT file", "txt"); 91 92 FileDialogInput input = new FileDialogInput( 92 bugReportForm.swingComponent().get(), "Save", txtFilter, FileDialogInput.Kind.SAVE);93 bugReportForm.swingComponent().get(), "Save", FileDialogInput.Kind.SAVE, new FileFilterInfo(txtFilter)); 93 94 File file = DialogManager.get().showDialog(input).getSelectedFile(); 94 95 if (file != null) { 95 96 file = FileDialogInput.appendFileExtension(file, txtFilter); … … 178 179 BugReportDialog bugReportForm = event.getContext(BugReportDialog.class); 179 180 180 181 FileDialogInput input = 181 new FileDialogInput(bugReportForm.swingComponent().get(), null, Kind.OPEN);182 new FileDialogInput(bugReportForm.swingComponent().get(), Kind.OPEN, new FileFilterInfo()); 182 183 File file = DialogManager.get().showDialog(input).getSelectedFile(); 183 184 184 185 long maxSize = ConfigurationManager.get().getValue(BugReportDialog.MAX_ATTACHMENT_SIZE); -
modules/org.sophie2.main.func.resources/src/test/java/org/sophie2/main/func/resources/imports/ResourceImportManagerTest.java
37 37 import org.sophie2.main.dialogs.input.FileDialogInput; 38 38 import org.sophie2.main.dialogs.input.MessageDialogInput; 39 39 import org.sophie2.main.dialogs.input.FileDialogInput.FileContainer; 40 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 40 41 import org.sophie2.main.func.file.FileFunctionalityModule; 41 42 import org.sophie2.main.func.resources.dummy.ColdTextImportManager; 42 43 import org.sophie2.main.func.resources.dummy.ColdTextModule; … … 78 79 79 80 this.provider = new SimpleResourceImportProvider( 80 81 new ColdTextImportManager(), 81 ColdTextImportManager.FILE_FILTER);82 new FileFilterInfo(ColdTextImportManager.FILE_FILTER)); 82 83 } 83 84 84 85 /** -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/logic/ResourceDeleteLogic.java
19 19 import org.sophie2.main.app.commons.book.BookView; 20 20 import org.sophie2.main.app.commons.element.ElementView; 21 21 import org.sophie2.main.app.commons.page.RootPageView; 22 import org.sophie2.main.app.commons.util.AppViewUtil; 22 23 import org.sophie2.main.dialogs.input.ConfirmDialogInput; 23 24 import org.sophie2.main.dialogs.input.DialogUtils; 24 25 import org.sophie2.main.func.resources.view.ResourceDetailsPalette; … … 49 50 50 51 assert palette != null : "The source must not be null!"; 51 52 52 BookDocView bookDocView = palette.findNearestElement(null, BookDocView.class);53 BookDocView bookDocView = AppViewUtil.getCurrentBookDocView(palette); 53 54 ListPaletteItem selectedItem = 54 55 palette.resourcePalette().get().firstSelectedItem().get(); 55 56 -
modules/org.sophie2.main.func.media/src/main/java/org/sophie2/main/func/media/MainFuncMediaModule.java
21 21 import org.sophie2.core.mvc.SimpleOperation; 22 22 import org.sophie2.main.app.commons.util.SimpleResourceViewProvider; 23 23 import org.sophie2.main.app.menus.insert.InsertMenu; 24 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 24 25 import org.sophie2.main.dnd.providers.ResourceDataProvider; 25 26 import org.sophie2.main.func.media.dnd.MediaResourceDataProvider; 26 27 import org.sophie2.main.func.media.links.MediaActionLogic; … … 124 125 InsertMenu.class, "insert-menu-item", "66-insert-audio-record-item")); 125 126 126 127 SimpleResourceImportProvider.register(res, 127 new AudioImportManager(), AudioImportManager.FILE_FILTER);128 new AudioImportManager(), new FileFilterInfo(AudioImportManager.FILE_FILTER)); 128 129 SimpleResourceImportProvider.register(res, 129 130 new AudioRecordImportManager(), null); 130 131 SimpleResourceImportProvider.register(res, 131 new VideoImportManager(), VideoImportManager.FILE_FILTER);132 new VideoImportManager(), new FileFilterInfo(VideoImportManager.FILE_FILTER)); 132 133 133 134 SimpleResourceViewProvider.register(res, VisualElement.class, 134 135 AudioContentView.class, AudioFrameR4.KIND, -
modules/org.sophie2.extra.func.plain/src/main/java/org/sophie2/extra/func/plain/PlainTextModule.java
7 7 import org.sophie2.core.modularity.SophieExtensionPoint; 8 8 import org.sophie2.core.modularity.SophieModule; 9 9 import org.sophie2.core.mvc.SimpleOperation; 10 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 10 11 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; 11 12 12 13 /** … … 27 28 AutoVisualProvider.fillExtensions(res, InsertPlainTextItem.class); 28 29 29 30 SimpleResourceImportProvider.register(res, 30 new PlainTextImportManager(), PlainTextImportManager.FILE_FILTER);31 new PlainTextImportManager(), new FileFilterInfo(PlainTextImportManager.FILE_FILTER)); 31 32 } 32 33 } -
modules/org.sophie2.main.func.file/src/test/java/org/sophie2/main/func/file/dialogs/FileDialogAccessoryDemo.java
24 24 import org.sophie2.main.dialogs.input.FileDialogInput.AccessoryData; 25 25 import org.sophie2.main.dialogs.input.FileDialogInput.FileAccessory; 26 26 import org.sophie2.main.dialogs.input.FileDialogInput.FileContainer; 27 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 27 28 import org.sophie2.main.dialogs.input.FileDialogInput.Kind; 28 29 import org.sophie2.main.func.file.FileFunctionalityModule; 29 30 … … 154 155 }); 155 156 156 157 final FileDialogInput input = new FileDialogInput(null, "Open", 157 FileDialogInput.BOOK_FILTER, "", Kind.OPEN, true, new DemoAccessory());158 "", Kind.OPEN, false, new DemoAccessory(), new FileFilterInfo(FileDialogInput.BOOK_FILTER)); 158 159 159 160 SwingUtilities.invokeLater(new Runnable() { 160 161 public void run() { -
modules/org.sophie2.main.app.commons/src/main/java/org/sophie2/main/app/commons/util/SaveDocUtil.java
14 14 import org.sophie2.main.app.commons.book.BookDocView; 15 15 import org.sophie2.main.dialogs.input.DialogUtils; 16 16 import org.sophie2.main.dialogs.input.FileDialogInput; 17 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 17 18 import org.sophie2.main.dialogs.input.FileDialogInput.Kind; 18 19 19 20 /** … … 81 82 82 83 FileDialogInput fdi = 83 84 new FileDialogInput(bookDocView.swingComponent().get(), dialogKind.getTitle(), 84 FileDialogInput.BOOK_FILTER, fileName, dialogKind, false, null);85 fileName, dialogKind, false, null, new FileFilterInfo(FileDialogInput.BOOK_FILTER)); 85 86 File file = DialogManager.get().showDialog(fdi).getSelectedFile(); 86 87 if (file == null) { 87 88 return false; -
modules/org.sophie2.extra.func.pdf/src/main/java/org/sophie2/extra/func/pdf/PdfModule.java
28 28 import org.sophie2.extra.func.pdf.view.PdfResourcePreviewProvider.PdfFilteringButton; 29 29 import org.sophie2.main.app.commons.util.SimpleResourceViewProvider; 30 30 import org.sophie2.main.app.menus.insert.InsertMenu; 31 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 31 32 import org.sophie2.main.dnd.providers.ResourceDataProvider; 32 33 import org.sophie2.main.func.resources.ResourcePreviewProvider; 33 34 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; … … 75 76 "insert-menu-item", "77-insert-pdf-item")); 76 77 77 78 SimpleResourceImportProvider.register(res, new PdfImportManager(), 78 PdfImportManager.FILE_FILTER);79 new FileFilterInfo(PdfImportManager.FILE_FILTER)); 79 80 80 81 SimpleResourceViewProvider.register(res, VisualElement.class, PdfContentView.class, 81 82 PdfFrameR4.KIND, "kkk-pdf-content-view"); -
modules/org.sophie2.main.func.text/src/main/java/org/sophie2/main/func/text/TextFuncModule.java
17 17 import org.sophie2.core.modularity.SophieModule; 18 18 import org.sophie2.core.mvc.SimpleOperation; 19 19 import org.sophie2.main.app.commons.util.SimpleResourceViewProvider; 20 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 20 21 import org.sophie2.main.dnd.providers.ResourceDataProvider; 21 22 import org.sophie2.main.func.resources.ResourcePreviewProvider; 22 23 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; … … 77 78 // Import managers 78 79 SimpleResourceImportProvider.register(res, new NewTextImportManager(), null); 79 80 SimpleResourceImportProvider.register(res, new RtfTextImportManager(), 80 RtfTextImportManager.FILE_FILTER);81 new FileFilterInfo(RtfTextImportManager.FILE_FILTER)); 81 82 82 83 // Resources 83 84 ResourceR4.registerAsExtension(res, HeadTextFrameR4.class); -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/logic/ResourceChooserLogic.java
1 1 package org.sophie2.main.func.resources.logic; 2 2 3 import java.util.Arrays;4 import java.util.LinkedList;5 3 import java.util.List; 6 4 7 5 import javax.swing.SwingUtilities; 8 import javax.swing.filechooser.FileFilter;9 6 10 7 import org.sophie2.base.bound.BoundControl; 11 8 import org.sophie2.base.bound.ComboInput; … … 16 13 import org.sophie2.core.mvc.LogicR3; 17 14 import org.sophie2.core.mvc.OperationDef; 18 15 import org.sophie2.core.mvc.events.EventR3; 19 import org.sophie2.main.dialogs.input.FileExtensionFilter; 20 import org.sophie2.main.func.resources.imports.ResourceImportManager; 16 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 21 17 import org.sophie2.main.func.resources.imports.ResourceImportProvider; 22 18 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; 23 19 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider.ProviderMatcher; … … 52 48 List<String> filters = event.getEventParam(filterParamIndex, List.class); 53 49 ResourceH parent = event.getEventParam(parentParamIndex, ResourceH.class); 54 50 55 FileFilter filter;51 FileFilterInfo filterInfo; 56 52 57 53 if (filters == null || filters.isEmpty()) { 58 filter = ResourceImportManager.ALL_RESOURCE_FILTER;54 filterInfo = new FileFilterInfo(); 59 55 } else { 60 filter = constructFilter(filters);56 filterInfo = constructFilter(filters); 61 57 } 62 58 63 59 List<ResourceRefR4> refs = 64 ResourceImportLogic.importResource(filter , false, chooser, parent, true);60 ResourceImportLogic.importResource(filterInfo, false, chooser, parent, true); 65 61 66 62 if (refs == null || refs.isEmpty()) { 67 63 SwingUtilities.invokeLater(new Runnable() { … … 87 83 return true; 88 84 } 89 85 90 private FileFilter constructFilter(List<String> filters) { 91 List<String> extensions = new LinkedList<String>(); 92 93 StringBuilder descriptions = new StringBuilder(); 86 private FileFilterInfo constructFilter(List<String> filters) { 87 FileFilterInfo result = new FileFilterInfo(false); 94 88 95 89 for (String kind : filters) { 96 90 ProviderMatcher matcher = new ResourceKindMatcher(kind); 97 91 ResourceImportProvider provider = SimpleResourceImportProvider.getProvider(matcher); 98 if (provider != null) { 99 FileFilter fileFilter = provider.getFileFilter(); 100 FileExtensionFilter filter = (FileExtensionFilter) fileFilter; 101 extensions.addAll(Arrays.asList(filter.getExtensions())); 102 descriptions.append(filter.getDescription() + ", "); 92 if (provider != null && provider.getFilterInfo() != null) { 93 result.addFilters(provider.getFilterInfo().getFilters()); 103 94 } 104 95 } 105 106 if (descriptions.length() > 2) { 107 descriptions.delete(descriptions.length() - 2, descriptions.length()); 108 } 109 110 return new FileExtensionFilter(descriptions.toString(), 111 extensions.toArray(new String[] {})); 96 97 return result; 112 98 } 113 99 114 100 } -
modules/org.sophie2.main.app.halos/src/main/java/org/sophie2/main/app/halos/huds/appearance/BackgroundPatternField.java
19 19 import org.sophie2.main.app.halos.common.BackgroundDialogField; 20 20 import org.sophie2.main.app.halos.huds.appearance.AppearanceHud.BackgroundPanel; 21 21 import org.sophie2.main.dialogs.input.FileDialogInput; 22 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 22 23 23 24 /** 24 25 * The field for the pattern of the background … … 49 50 @Override 50 51 protected FileDialogInput createDialogInput() { 51 52 return new FileDialogInput(swingComponent().get(), "Insert Image", 52 FileDialogInput. IMAGE_FILTER, FileDialogInput.Kind.OPEN);53 FileDialogInput.Kind.OPEN, new FileFilterInfo(FileDialogInput.IMAGE_FILTER)); 53 54 } 54 55 55 56 @Override -
modules/org.sophie2.main.app.menus/src/main/java/org/sophie2/main/app/menus/file/FileMenuLogic.java
42 42 import org.sophie2.main.app.model.book.BookTemplateHelper; 43 43 import org.sophie2.main.dialogs.input.DialogUtils; 44 44 import org.sophie2.main.dialogs.input.FileDialogInput; 45 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 45 46 import org.sophie2.main.dialogs.input.FileDialogInput.Kind; 46 47 47 48 /** … … 105 106 public boolean handle(EventR3 event) { 106 107 Kind kind = FileDialogInput.Kind.OPEN; 107 108 FileDialogInput fdi = new FileDialogInput(null, kind.getTitle(), 108 FileDialogInput.BOOK_FILTER, "", kind, false, null);109 "", kind, false, null, new FileFilterInfo(FileDialogInput.BOOK_FILTER)); 109 110 110 111 File bookFile = DialogManager.get().showDialog(fdi).getSelectedFile(); 111 112 if (bookFile == null) { -
modules/org.sophie2.extra.func.print/src/main/java/org/sophie2/extra/func/print/logic/PrintLogic.java
29 29 import org.sophie2.main.dialogs.input.FileDialogInput; 30 30 import org.sophie2.main.dialogs.input.FileExtensionFilter; 31 31 import org.sophie2.main.dialogs.input.MessageDialogInput; 32 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 32 33 33 34 import com.lowagie.text.Document; 34 35 import com.lowagie.text.DocumentException; … … 201 202 */ 202 203 public static File getFile(BookDocView view) { 203 204 FileDialogInput input = new FileDialogInput(view.workArea().get().swingComponent().get(), 204 "Export", new FileExtensionFilter("PDF (*.pdf)", "pdf"), FileDialogInput.Kind.SAVE);205 "Export", FileDialogInput.Kind.SAVE, new FileFilterInfo(new FileExtensionFilter("PDF (*.pdf)", "pdf"))); 205 206 File bookFile = DialogManager.get().showDialog(input).getSelectedFile(); 206 207 207 208 return bookFile; -
modules/org.sophie2.main.dialogs.input/src/main/java/org/sophie2/main/dialogs/input/FileDialogInput.java
4 4 import java.awt.FileDialog; 5 5 import java.io.File; 6 6 import java.util.ArrayList; 7 import java.util.Arrays; 7 8 import java.util.Collections; 9 import java.util.LinkedList; 8 10 import java.util.List; 9 11 10 12 import javax.swing.JFileChooser; … … 19 21 * 20 22 * @author milo 21 23 * @author mitex 24 * @author meddle 25 * @author pap 22 26 */ 23 27 public class FileDialogInput extends DialogInput<FileDialogInput.FileContainer> { 24 28 … … 80 84 81 85 private final Component parent; 82 86 private final String title; 83 private final FileFilter filter;87 private final FileFilterInfo filterInfo; 84 88 private final String fileName; 85 89 private final Kind kind; 86 90 private final boolean multiSelectEnabled; … … 96 100 * The parent component for the dialog. 97 101 * @param title 98 102 * Approve button text, for example "Open". 99 * @param fileFilter100 * File filter, for example filter for images (*.jpg, *.gif). Can101 * be null. If it's null the file dialog will accept all files.102 103 * @param fileName 103 104 * the initial file name. 104 105 * @param kind … … 107 108 * Is multiselection enabled for the file dialog. 108 109 * @param fileAccessory 109 110 * {@link FileAccessory} for the input if needed, can be null. 111 * @param filterInfo TODO 110 112 */ 111 public FileDialogInput(Component parent, String title, FileFilter fileFilter, String fileName, 112 Kind kind, boolean multiSelectEnabled, FileAccessory<?> fileAccessory) { 113 public FileDialogInput(Component parent, String title, String fileName, Kind kind, 114 boolean multiSelectEnabled, FileAccessory<?> fileAccessory, FileFilterInfo filterInfo) { 115 assert filterInfo != null; 113 116 this.parent = parent; 114 117 this.title = title; 115 this.filter = fileFilter;118 this.filterInfo = filterInfo; 116 119 this.fileName = fileName; 117 120 this.kind = kind; 118 121 this.multiSelectEnabled = multiSelectEnabled; … … 127 130 * The parent component for the dialog. 128 131 * @param title 129 132 * Approve button text, for example "Open". 130 * @param fileFilter131 * File filter, for example filter for images (*.jpg, *.gif). Can132 * be null. If it's null the file dialog will accept all files.133 133 * @param kind 134 134 * The kind of the dialog to show. 135 * @param filterInfo 136 * The {@link FileFilterInfo} for this input. 135 137 */ 136 public FileDialogInput(Component parent, String title, FileFilter fileFilter, Kind kind) {137 this(parent, title, fileFilter, "", kind, false, null);138 public FileDialogInput(Component parent, String title, Kind kind, FileFilterInfo filterInfo) { 139 this(parent, title, "", kind, false, null, filterInfo); 138 140 } 139 141 140 142 /** … … 143 145 * 144 146 * @param parent 145 147 * The parent component for the dialog. 146 * @param fileFilter147 * File filter, for example filter for images (*.jpg, *.gif). Can148 * be null. If it's null the file dialog will accept all files.149 148 * @param kind 150 149 * The file dialog kind (OPEN, CLOSE), cannot be null. 150 * @param filterInfo 151 * The {@link FileFilterInfo} for this input. 151 152 */ 152 public FileDialogInput(Component parent, FileFilter fileFilter, Kind kind) {153 this(parent, kind.getTitle(), fileFilter, kind);153 public FileDialogInput(Component parent, Kind kind, FileFilterInfo filterInfo) { 154 this(parent, kind.getTitle(), kind, filterInfo); 154 155 } 155 156 156 157 /** … … 179 180 * @return 180 181 * The file filter. 181 182 */ 182 public FileFilter getFileFilter() {183 return this.filter ;183 public FileFilterInfo getFilterInfo() { 184 return this.filterInfo; 184 185 } 185 186 186 187 @Override … … 254 255 } 255 256 256 257 /** 258 * A class representing a set of file filters. 259 * 260 * @author pap 261 */ 262 public static class FileFilterInfo { 263 private List<FileFilter> filters; 264 private boolean useAcceptAllFilter; 265 266 /** 267 * Create a FileFilterInfo. 268 * 269 * @param useAcceptAllFilter 270 * Whether the accept all files filters should be used. 271 * @param fileFilters 272 * Zero or more file filters to use in the set. 273 */ 274 public FileFilterInfo(boolean useAcceptAllFilter, FileFilter...fileFilters) { 275 this.filters = new LinkedList<FileFilter>(Arrays.asList(fileFilters)); 276 this.useAcceptAllFilter = useAcceptAllFilter; 277 } 278 279 /** 280 * Creates a FileFilterInfo. 281 * 282 * @param useAcceptAllFilter 283 * Whether the accept all files filters should be used. 284 * @param fileFilters 285 * A list of {@link FileFilter}s to use in the set. 286 */ 287 public FileFilterInfo(boolean useAcceptAllFilter, List<FileFilter> fileFilters) { 288 this.filters = new LinkedList<FileFilter>(fileFilters); 289 this.useAcceptAllFilter = useAcceptAllFilter; 290 } 291 292 /** 293 * Creates a FileFilterInfo. Has the accept all files filter turned on. 294 * 295 * @param fileFilters 296 * Zero or more file filters to use. 297 */ 298 public FileFilterInfo(FileFilter...fileFilters) { 299 this(true, fileFilters); 300 } 301 302 /** 303 * Creates a FileFilterInfo. Has the accept all files filter turned on. 304 * 305 * @param fileFilters 306 * A list of {@link FileFilter}s to use. 307 */ 308 public FileFilterInfo(List<FileFilter> fileFilters) { 309 this(true, fileFilters); 310 } 311 312 /** 313 * Gets the list of the {@link FileFilter} contained in this 314 * FileFilterInfo. 315 * 316 * @return 317 * The {@link FileFilter}s of this info. 318 */ 319 public List<FileFilter> getFilters() { 320 return Collections.unmodifiableList(this.filters); 321 } 322 323 /** 324 * Returns whether the accept all files filter should be used. 325 * 326 * @return 327 * <code>true</code> if the accept all files filter should 328 * be used, <code>false</code> otherwise. 329 */ 330 public boolean getUseAcceptAllFilter() { 331 return this.useAcceptAllFilter; 332 } 333 334 /** 335 * Add s the given {@link FileFilter}s to the ones contained in this FileFilterInfo. 336 * 337 * @param fileFilters 338 * The filters to add. 339 */ 340 public void addFilters(FileFilter... fileFilters) { 341 this.filters.addAll(Arrays.asList(fileFilters)); 342 } 343 344 /** 345 * Add s the given {@link FileFilter}s to the ones contained in this FileFilterInfo. 346 * 347 * @param fileFilters 348 * The filters to add. 349 */ 350 public void addFilters(List<FileFilter> fileFilters) { 351 this.filters.addAll(fileFilters); 352 } 353 354 /** 355 * Checks if the set of filters represented by this info accepts the file given. 356 * 357 * 358 * @param file 359 * The file to be checked against this <code>FileFilterInfo</code>. 360 * @return 361 * <code>true</code> if the given {@link File} is accepted, <code>false</code> otherwise. 362 */ 363 public boolean accepts(File file) { 364 if (this.useAcceptAllFilter) { 365 return true; 366 } 367 for (FileFilter filter : this.filters) { 368 if (filter.accept(file)) { 369 return true; 370 } 371 } 372 return false; 373 } 374 } 375 376 377 378 /** 257 379 * Represents simple accessory data, it boxes the data in 258 380 * a class to be used as a result in the {@link FileContainer}. 259 381 * -
modules/org.sophie2.main.app.halos/src/main/java/org/sophie2/main/app/halos/huds/appearance/BackgroundImageField.java
20 20 import org.sophie2.main.app.halos.common.BackgroundDialogField; 21 21 import org.sophie2.main.app.halos.huds.appearance.AppearanceHud.BackgroundPanel; 22 22 import org.sophie2.main.dialogs.input.FileDialogInput; 23 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 23 24 24 25 /** 25 26 * The field for the image of the background. … … 53 54 @Override 54 55 protected FileDialogInput createDialogInput() { 55 56 return new FileDialogInput(swingComponent().get(), "Insert Image", 56 FileDialogInput. IMAGE_FILTER, FileDialogInput.Kind.OPEN);57 FileDialogInput.Kind.OPEN, new FileFilterInfo(FileDialogInput.IMAGE_FILTER)); 57 58 } 58 59 59 60 @Override -
modules/org.sophie2.main.app.halos/src/test/java/org/sophie2/main/app/halos/BackgroundDialogFieldDemo.java
15 15 import org.sophie2.core.prolib.interfaces.ProObject; 16 16 import org.sophie2.main.app.halos.common.BackgroundDialogField; 17 17 import org.sophie2.main.dialogs.input.FileDialogInput; 18 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 18 19 import org.sophie2.main.func.file.FileFunctionalityModule; 19 20 20 21 /** … … 49 50 @Override 50 51 protected FileDialogInput createDialogInput() { 51 52 return new FileDialogInput(swingComponent().get(), "Demo Bound Dialog", 52 FileDialogInput. IMAGE_FILTER, FileDialogInput.Kind.OPEN);53 FileDialogInput.Kind.OPEN, new FileFilterInfo(FileDialogInput.IMAGE_FILTER)); 53 54 } 54 55 55 56 @Override -
modules/org.sophie2.main.func.image/src/main/java/org/sophie2/main/func/image/ImageModule.java
18 18 import org.sophie2.main.app.commons.util.SimpleResourceViewProvider; 19 19 import org.sophie2.main.app.menus.insert.InsertMenu; 20 20 import org.sophie2.main.dialogs.input.FileDialogInput; 21 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 21 22 import org.sophie2.main.func.image.model.ImageFrameR4; 22 23 import org.sophie2.main.func.image.view.ImageFrameView; 23 24 import org.sophie2.main.func.image.view.ImageResourcePreviewProvider; … … 66 67 @Override 67 68 protected void defineExtensions(List<SophieExtension<?>> res) { 68 69 SimpleResourceImportProvider.register(res, 69 new ImageImportManager(), FileDialogInput.IMAGE_FILTER);70 new ImageImportManager(), new FileFilterInfo(FileDialogInput.IMAGE_FILTER)); 70 71 71 72 SimpleResourceViewProvider.register(res, VisualElement.class, 72 73 ImageFrameView.class, ImageFrameR4.KIND, -
modules/org.sophie2.main.dialogs.input/src/main/java/org/sophie2/main/dialogs/input/FileExtensionFilter.java
7 7 8 8 /** 9 9 * This class is used for filtering a set of file extensions. 10 * Extensions are key-sensitive.10 * Extensions are case-sensitive. 11 11 * 12 12 * @author pav 13 13 */ -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/logic/ResourceExportLogic.java
21 21 import org.sophie2.main.dialogs.input.DialogUtils; 22 22 import org.sophie2.main.dialogs.input.FileDialogInput; 23 23 import org.sophie2.main.dialogs.input.MessageDialogInput; 24 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 24 25 import org.sophie2.main.dialogs.input.MessageDialogInput.MessageType; 25 26 import org.sophie2.main.func.resources.MainFuncResourcesModule; 26 27 import org.sophie2.main.func.resources.exports.ExportFormatDialog; … … 88 89 89 90 FileFilter filter = manager.getFileFilter(); 90 91 FileDialogInput input = new FileDialogInput(null, 91 "Export resource", filter,92 manager.getFileName(resource.getAccess()),93 FileDialogInput.Kind.SAVE, false, null);92 "Export resource", manager.getFileName(resource.getAccess()), 93 FileDialogInput.Kind.SAVE, 94 false, null, new FileFilterInfo(filter)); 94 95 File file = DialogManager.get().showDialog(input).getSelectedFile(); 95 96 96 97 if (file == null) { -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/imports/ResourceImportUtil.java
39 39 import org.sophie2.main.dialogs.input.DialogUtils; 40 40 import org.sophie2.main.dialogs.input.FileDialogInput; 41 41 import org.sophie2.main.dialogs.input.MessageDialogInput; 42 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 42 43 import org.sophie2.main.dialogs.input.MessageDialogInput.MessageType; 43 44 44 45 /** … … 56 57 */ 57 58 public static final ResourceImportProvider SOPHIE_FORMAT_PROVIDER = 58 59 new SimpleResourceImportProvider(new SophieFormatImportManager(), 59 FileDialogInput.BOOK_FILTER);60 new FileFilterInfo(FileDialogInput.BOOK_FILTER)); 60 61 61 62 /** 62 63 * Imports a resource in the passed book, without inserting a frame -
modules/org.sophie2.extra.func.annotations/src/main/java/org/sophie2/extra/func/annotations/logic/AnnotationsLogic.java
35 35 import org.sophie2.main.dialogs.input.DialogUtils; 36 36 import org.sophie2.main.dialogs.input.FileDialogInput; 37 37 import org.sophie2.main.dialogs.input.FileExtensionFilter; 38 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 38 39 39 40 /** 40 41 * Handles events fired by the {@link AllAnnotationsPalette} - import, export, … … 60 61 assert bv != null : "There book view should not be null here."; 61 62 62 63 FileDialogInput fdi = new FileDialogInput(source.swingComponent() 63 .get(), "Import", ANNOTATION_FILTER, FileDialogInput.Kind.OPEN);64 .get(), "Import", FileDialogInput.Kind.OPEN, new FileFilterInfo(ANNOTATION_FILTER)); 64 65 File file = DialogManager.get().showDialog(fdi).getSelectedFile(); 65 66 66 67 if (file == null || !file.exists()) { … … 129 130 } 130 131 131 132 FileDialogInput fdi = new FileDialogInput(source.swingComponent() 132 .get(), "Export", ANNOTATION_FILTER, FileDialogInput.Kind.SAVE);133 .get(), "Export", FileDialogInput.Kind.SAVE, new FileFilterInfo(ANNOTATION_FILTER)); 133 134 File file = DialogManager.get().showDialog(fdi).getSelectedFile(); 134 135 135 136 if (file == null) { -
modules/org.sophie2.main.app.halos/src/main/java/org/sophie2/main/app/halos/grouping/GroupHalosLogic.java
236 236 ElementH parentH = ((ElementView) groupView.parent().get()).model().get(); 237 237 238 238 final ResourceRefR4 relativeGroupRef = 239 ResourceRefR4.getRelativeRef( groupRef, parentH.getRef());239 ResourceRefR4.getRelativeRef(parentH.getRef(), groupRef); 240 240 ResourceAccess parentAccess = parentH.getAccess(); 241 241 ImmList<ActivationChannel> channels = 242 242 CompositeElement.KEY_SUB_ELEMENTS.get(parentAccess); -
modules/org.sophie2.extra.func.plain/src/main/java/org/sophie2/extra/func/plain/PlainTextLogic.java
19 19 import org.sophie2.main.dialogs.input.DialogUtils; 20 20 import org.sophie2.main.dialogs.input.FileDialogInput; 21 21 import org.sophie2.main.dialogs.input.FileExtensionFilter; 22 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 22 23 import org.sophie2.main.func.text.model.HeadTextFrameH; 23 24 24 25 /** … … 48 49 PageH page = docView.bookView().get().getCurrentPageView().model().get(); 49 50 50 51 FileDialogInput fdi = new FileDialogInput(source.swingMenu().get(), 51 new FileExtensionFilter("TXT file", "txt"), FileDialogInput.Kind.OPEN);52 FileDialogInput.Kind.OPEN, new FileFilterInfo(new FileExtensionFilter("TXT file", "txt"))); 52 53 File txtFile = DialogManager.get().showDialog(fdi).getSelectedFile(); 53 54 54 55 if (txtFile == null) { -
modules/org.sophie2.main.func.file/src/main/java/org/sophie2/main/func/file/dialogs/FileDialog.java
10 10 import javax.swing.JComponent; 11 11 import javax.swing.JFileChooser; 12 12 import javax.swing.JPanel; 13 import javax.swing.filechooser.FileFilter; 13 14 14 15 import org.sophie2.base.dialogs.Dialog; 15 16 import org.sophie2.base.dialogs.DialogManager; … … 50 51 this.fileChooser.setAccessory(null); 51 52 } 52 53 53 if (input.getFileFilter() != null) { 54 this.fileChooser.setFileFilter(input.getFileFilter()); 55 this.fileChooser.setAcceptAllFileFilterUsed(false); 56 } else { 57 this.fileChooser.setFileFilter( 58 this.fileChooser.getAcceptAllFileFilter()); 54 for (FileFilter filter : input.getFilterInfo().getFilters()) { 55 this.fileChooser.addChoosableFileFilter(filter); 59 56 } 57 this.fileChooser.setAcceptAllFileFilterUsed(input.getFilterInfo().getUseAcceptAllFilter()); 58 60 59 this.fileChooser.setSelectedFile(new File(input.getFileName())); 61 60 this.fileChooser.setMultiSelectionEnabled(input.isMultiSelectEnabled()); 62 61 -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/logic/ResourceImportLogic.java
7 7 import java.util.LinkedList; 8 8 import java.util.List; 9 9 10 import javax.swing.filechooser.FileFilter;11 12 10 import org.sophie2.base.commons.util.position.ImmArea; 13 11 import org.sophie2.base.commons.util.position.ImmPoint; 14 12 import org.sophie2.base.commons.util.position.ImmRect; … … 51 49 import org.sophie2.main.app.commons.util.AppViewUtil; 52 50 import org.sophie2.main.app.menus.insert.InsertResourceMenuItem; 53 51 import org.sophie2.main.dialogs.input.FileDialogInput; 52 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 54 53 import org.sophie2.main.dnd.dnddata.FileListData; 55 54 import org.sophie2.main.dnd.dnddata.ResourceRefData; 56 55 import org.sophie2.main.dnd.dnddata.ResourceRevisionData; 57 56 import org.sophie2.main.func.resources.MainFuncResourcesModule; 58 57 import org.sophie2.main.func.resources.imports.ImportEventIds; 59 58 import org.sophie2.main.func.resources.imports.ResourceImportInfo; 60 import org.sophie2.main.func.resources.imports.ResourceImportManager;61 59 import org.sophie2.main.func.resources.imports.ResourceImportProvider; 62 60 import org.sophie2.main.func.resources.imports.ResourceImportUtil; 63 61 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; … … 167 165 return false; 168 166 } 169 167 170 List<ResourceRefR4> result = importResource( 171 ResourceImportManager.ALL_RESOURCE_FILTER, 168 List<ResourceRefR4> result = importResource(new FileFilterInfo(), 172 169 true, docView, docView.model().get(), false); 173 170 174 171 return !result.isEmpty(); … … 590 587 /** 591 588 * Imports resources into a given parent resource, raising file dialog. 592 589 * 593 * @param filter 594 * The filterof the file dialog to raise.590 * @param filterInfo 591 * The {@link FileFilterInfo} of the file dialog to raise. 595 592 * @param multySelect 596 593 * If in the file dialog the multiple selection is allowed. 597 594 * @param element … … 604 601 * List of the {@link ResourceRefR4}s of the newly imported resources 605 602 * or null of no resource was imported. 606 603 */ 607 public static List<ResourceRefR4> importResource(FileFilter filter, boolean multySelect,604 public static List<ResourceRefR4> importResource(FileFilterInfo filterInfo, boolean multySelect, 608 605 VisualElement element, ResourceH parentResource, boolean strictFiltering) { 609 606 610 607 // Show file dialog for all resources: 611 608 FileDialogInput input = new FileDialogInput(null, 612 "Import resource", filter,613 "", FileDialogInput.Kind.OPEN, multySelect, null);609 "Import resource", "", 610 FileDialogInput.Kind.OPEN, multySelect, null, filterInfo); 614 611 615 612 List<File> files = 616 613 DialogManager.get().showDialog(input).getSelectedFiles(); … … 621 618 622 619 files = addArchived(files); 623 620 624 return importFiles(files, parentResource, strictFiltering, filter , element);621 return importFiles(files, parentResource, strictFiltering, filterInfo, element); 625 622 } 626 623 627 624 /** … … 633 630 * Parent resource where the resources will be imported. 634 631 * @param strictFiltering 635 632 * Whether to check if the specified filter accepts the files. 636 * @param filter 637 * If <code>strictFiltering</code> is true, an additional check whether this filter 633 * @param filterInfo 634 * If <code>strictFiltering</code> is true, an additional check whether this filter info 638 635 * accepts the files will be performed. 639 636 * @param element 640 637 * Visual element from which we could find the current {@link BookView}. … … 644 641 * or null of no resource was imported. 645 642 */ 646 643 public static List<ResourceRefR4> importFiles(List<File> files, ResourceH parentResource, 647 boolean strictFiltering, FileFilter filter, VisualElement element) {644 boolean strictFiltering, FileFilterInfo filterInfo, VisualElement element) { 648 645 List<File> invalidFiles = new ArrayList<File>(files.size()); 649 646 List<ResourceRefR4> refs = new ArrayList<ResourceRefR4>(files.size()); 650 647 for (final File file : files) { 651 if (strictFiltering && !filter .accept(file)) {648 if (strictFiltering && !filterInfo.accepts(file)) { 652 649 invalidFiles.add(file); 653 650 continue; 654 651 } … … 661 658 662 659 @Override 663 660 public boolean check(ResourceImportProvider curProvider) { 664 return curProvider.getFil eFilter() != null665 && curProvider.getFil eFilter().accept(file);661 return curProvider.getFilterInfo() != null 662 && curProvider.getFilterInfo().accepts(file); 666 663 } 667 664 }); 668 665 } … … 720 717 721 718 @Override 722 719 public boolean check(ResourceImportProvider curProvider) { 723 return curProvider.getFil eFilter() != null724 && curProvider.getFil eFilter().accept(file);720 return curProvider.getFilterInfo() != null 721 && curProvider.getFilterInfo().accepts(file); 725 722 } 726 723 }); 727 724 -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/imports/SimpleResourceImportProvider.java
2 2 3 3 import java.util.List; 4 4 5 import javax.swing.filechooser.FileFilter;6 7 5 import org.sophie2.core.modularity.SimpleSophieExtension; 8 6 import org.sophie2.core.modularity.SophieExtension; 9 7 import org.sophie2.core.modularity.SophieExtensionPoint; 8 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 10 9 import org.sophie2.main.func.resources.MainFuncResourcesModule; 11 10 12 11 /** … … 17 16 public class SimpleResourceImportProvider implements ResourceImportProvider { 18 17 19 18 private final ResourceImportManager<?> importManager; 20 private final FileFilter filter;19 private final FileFilterInfo filterInfo; 21 20 22 21 /** 23 22 * Creates an provider by {@link ResourceImportManager} and filter. 24 23 * 25 24 * @param importManager 26 25 * The <code>ResourceImportManager</code> for the new provider. 27 * @param filter 28 * The {@link FileFilter } of the files that provider can handle.26 * @param filterInfo 27 * The {@link FileFilterInfo} of the files that provider can handle. 29 28 */ 30 29 public SimpleResourceImportProvider(ResourceImportManager<?> importManager, 31 FileFilter filter) {30 FileFilterInfo filterInfo) { 32 31 this.importManager = importManager; 33 this.filter = filter;32 this.filterInfo = filterInfo; 34 33 } 35 34 36 public FileFilter getFileFilter() {37 return this.filter ;35 public FileFilterInfo getFilterInfo() { 36 return this.filterInfo; 38 37 } 39 38 40 39 public ResourceImportManager<?> getImportManager() { … … 49 48 * The list of extensions in which to register. 50 49 * @param resourceImportManager 51 50 * The {@link ResourceImportManager} of this provider. 52 * @param fil eFilter53 * The {@link FileFilter } of this provider.51 * @param filterInfo 52 * The {@link FileFilterInfo} of this provider. 54 53 */ 55 54 public static void register(List<SophieExtension<?>> res, 56 ResourceImportManager<?> resourceImportManager, FileFilter fileFilter) {55 ResourceImportManager<?> resourceImportManager, FileFilterInfo filterInfo) { 57 56 SimpleResourceImportProvider provider = 58 new SimpleResourceImportProvider(resourceImportManager, fil eFilter);57 new SimpleResourceImportProvider(resourceImportManager, filterInfo); 59 58 res.add(SimpleSophieExtension.create(ResourceImportProvider.class, 60 59 provider)); 61 60 -
modules/org.sophie2.extra.func.html/src/main/java/org/sophie2/extra/func/html/HtmlModule.java
18 18 import org.sophie2.extra.func.html.view.HtmlLogic; 19 19 import org.sophie2.extra.func.html.view.InsertHtmlItem; 20 20 import org.sophie2.main.app.menus.insert.InsertMenu; 21 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 21 22 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; 22 23 import org.sophie2.main.func.text.model.HeadTextFrameR4; 23 24 import org.sophie2.main.func.text.model.TailTextFrameR4; … … 67 68 SimpleOperation.fillExtensions(res, HtmlLogic.class); 68 69 69 70 SimpleResourceImportProvider.register(res, 70 new HtmlTextImportManager(), HtmlTextImportManager.FILE_FILTER);71 new HtmlTextImportManager(), new FileFilterInfo(HtmlTextImportManager.FILE_FILTER)); 71 72 72 73 res.add(new SimpleSophieExtension<Persister>(Persister.class, 73 74 new BookToHtmlPersister())); -
modules/org.sophie2.extra.func.browser/src/main/java/org/sophie2/extra/func/browser/flash/view/FlashLogic.java
28 28 import org.sophie2.main.app.commons.util.AppViewUtil; 29 29 import org.sophie2.main.dialogs.input.FileDialogInput; 30 30 import org.sophie2.main.dialogs.input.FileExtensionFilter; 31 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 31 32 32 33 /** 33 34 * This class handles actions with flash. … … 132 133 final FileFilter swfFilter = new FileExtensionFilter("SWF (*.swf)", 133 134 "swf"); 134 135 FileDialogInput fdi = new FileDialogInput(workArea.swingComponent() 135 .get(), "Open Flash", swfFilter, FileDialogInput.Kind.OPEN);136 .get(), "Open Flash", FileDialogInput.Kind.OPEN, new FileFilterInfo(swfFilter)); 136 137 File imageFile = DialogManager.get().showDialog(fdi).getSelectedFile(); 137 138 if (imageFile == null) { 138 139 return null; -
modules/org.sophie2.main.func.resources/src/main/java/org/sophie2/main/func/resources/imports/ResourceImportProvider.java
1 1 package org.sophie2.main.func.resources.imports; 2 2 3 import javax.swing.filechooser.FileFilter;3 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 4 4 5 5 /** 6 6 * Provides logic for importing resources. … … 26 26 * @return 27 27 * The file filter. 28 28 */ 29 FileFilter getFileFilter();29 FileFilterInfo getFilterInfo(); 30 30 31 31 /** 32 32 * Retrieves the import role of the -
modules/org.sophie2.extra.func.scripting/src/main/java/org/sophie2/extra/func/scripting/logic/ScriptingLogic.java
34 34 import org.sophie2.main.dialogs.input.DialogUtils; 35 35 import org.sophie2.main.dialogs.input.FileDialogInput; 36 36 import org.sophie2.main.dialogs.input.FileExtensionFilter; 37 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 37 38 38 39 /** 39 40 * Handles events related to scripting. … … 144 145 protected boolean createFromFile(Component parentComponent, ResourceAccess bookAccess, 145 146 final ResourceRefR4 scriptRef) { 146 147 147 FileDialogInput fdi = new FileDialogInput(parentComponent, new FileExtensionFilter(148 "JavaScript (*.js)", "js"), FileDialogInput.Kind.OPEN);148 FileDialogInput fdi = new FileDialogInput(parentComponent, FileDialogInput.Kind.OPEN, new FileFilterInfo(new FileExtensionFilter( 149 "JavaScript (*.js)", "js"))); 149 150 File scriptFile = DialogManager.get().showDialog(fdi).getSelectedFile(); 150 151 151 152 if (scriptFile == null) { -
modules/org.sophie2.extra.func.html/src/main/java/org/sophie2/extra/func/html/view/HtmlLogic.java
15 15 import org.sophie2.extra.func.html.HtmlTextImportManager; 16 16 import org.sophie2.main.dialogs.input.FileDialogInput; 17 17 import org.sophie2.main.dialogs.input.MessageDialogInput; 18 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 18 19 19 20 /** 20 21 * Handles events related to HTML (such as import/export). … … 39 40 ExportAsHtmlItem source = event.getSource(ExportAsHtmlItem.class); 40 41 41 42 FileDialogInput fdi = new FileDialogInput(source.swingMenu().get(), "Export", 42 HtmlTextImportManager.FILE_FILTER, FileDialogInput.Kind.SAVE);43 FileDialogInput.Kind.SAVE, new FileFilterInfo(HtmlTextImportManager.FILE_FILTER)); 43 44 File file = DialogManager.get().showDialog(fdi).getSelectedFile(); 44 45 45 46 if (file == null) { -
modules/org.sophie2.extra.func.embedded/src/main/java/org/sophie2/extra/func/embedded/EmbeddedBooksModule.java
37 37 import org.sophie2.main.app.layout.left.books.BooksTab; 38 38 import org.sophie2.main.app.menus.insert.InsertMenu; 39 39 import org.sophie2.main.dialogs.input.FileDialogInput; 40 import org.sophie2.main.dialogs.input.FileDialogInput.FileFilterInfo; 40 41 import org.sophie2.main.func.resources.imports.SimpleResourceImportProvider; 41 42 42 43 /** … … 86 87 InsertBookItem.class, "insert-book-item", "66-insert-embedded-book")); 87 88 88 89 SimpleResourceImportProvider.register(res, 89 new BookImportManager(), FileDialogInput.BOOK_FILTER);90 new BookImportManager(), new FileFilterInfo(FileDialogInput.BOOK_FILTER)); 90 91 91 92 SimpleResourceViewProvider.register(res, VisualElement.class, 92 93 EmbeddedBookFrameView.class, EmbeddedBookFrameR4.KIND,