List<MyFileTypeItem> () { List<MyFileTypeItem> items = new ArrayList<>(); final FileTypeManager fileTypeManager = FileTypeManager.getInstance(); for (FileType fileType : fileTypeManager.getRegisteredFileTypes()) { if (isSupported(fileType)) { int extCount = OSAssociateFileTypesUtil.getExtensionMatchers(fileType).size(); if (extCount > 0) { if (splitExtensions(fileType, extCount)) { items.add(new MyFileTypeItem(fileType, null, true)); OSAssociateFileTypesUtil.createSubtypes(fileType).forEach( subtype -> items.add(new MyFileTypeItem(subtype, fileType, false)) ); } else { items.add(new MyFileTypeItem(fileType, null, false)); } } } } Collections.sort(items); return items; }