Removed Duplicate File Filters

This commit is contained in:
Konloch 2021-07-21 09:52:01 -07:00
parent 296227360a
commit 7819fe6575
4 changed files with 63 additions and 27 deletions

View file

@ -8,27 +8,27 @@ import javax.swing.*;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import me.konloch.kontainer.io.DiskReader;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.ClassNode;
import me.konloch.kontainer.io.DiskReader;
import the.bytecode.club.bytecodeviewer.bootloader.Boot; import the.bytecode.club.bytecodeviewer.bootloader.Boot;
import the.bytecode.club.bytecodeviewer.api.BCV; import the.bytecode.club.bytecodeviewer.api.BCV;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI; import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
import the.bytecode.club.bytecodeviewer.gui.MainViewerGUI;
import the.bytecode.club.bytecodeviewer.gui.components.*; import the.bytecode.club.bytecodeviewer.gui.components.*;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.TabbedPane; import the.bytecode.club.bytecodeviewer.gui.resourceviewer.TabbedPane;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ClassViewer; import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ClassViewer;
import the.bytecode.club.bytecodeviewer.gui.MainViewerGUI;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ResourceViewer; import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ResourceViewer;
import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
import the.bytecode.club.bytecodeviewer.plugin.PluginWriter; import the.bytecode.club.bytecodeviewer.plugin.PluginWriter;
import the.bytecode.club.bytecodeviewer.resources.ResourceContainer; import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings; import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
import the.bytecode.club.bytecodeviewer.util.*; import the.bytecode.club.bytecodeviewer.resources.ResourceContainer;
import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource; import the.bytecode.club.bytecodeviewer.resources.importing.ImportResource;
import the.bytecode.club.bytecodeviewer.util.*;
import static the.bytecode.club.bytecodeviewer.Constants.*; import static the.bytecode.club.bytecodeviewer.Constants.*;
import static the.bytecode.club.bytecodeviewer.Settings.addRecentPlugin;
import static the.bytecode.club.bytecodeviewer.util.MiscUtils.guessLanguage;
/*************************************************************************** /***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite * * Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
@ -193,7 +193,7 @@ public class BytecodeViewer
//set translation language //set translation language
if (!Settings.hasSetLanguageAsSystemLanguage) if (!Settings.hasSetLanguageAsSystemLanguage)
MiscUtils.setLanguage(guessLanguage()); MiscUtils.setLanguage(MiscUtils.guessLanguage());
//handle CLI //handle CLI
int CLI = CommandLineInput.parseCommandLine(args); int CLI = CommandLineInput.parseCommandLine(args);
@ -551,7 +551,7 @@ public class BytecodeViewer
BytecodeViewer.handleException(e); BytecodeViewer.handleException(e);
} }
addRecentPlugin(file); Settings.addRecentPlugin(file);
} }
/** /**

View file

@ -18,6 +18,11 @@ public class FileChooser extends JFileChooser
public static final String EVERYTHING = "everything"; public static final String EVERYTHING = "everything";
public FileChooser(File file, String title, String description, String... extensions) public FileChooser(File file, String title, String description, String... extensions)
{
this(false, file, title, description, extensions);
}
public FileChooser(boolean skipFileFilter, File file, String title, String description, String... extensions)
{ {
HashSet<String> extensionSet = new HashSet<>(Arrays.asList(extensions)); HashSet<String> extensionSet = new HashSet<>(Arrays.asList(extensions));
@ -29,24 +34,27 @@ public class FileChooser extends JFileChooser
setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
setFileHidingEnabled(false); setFileHidingEnabled(false);
setAcceptAllFileFilterUsed(false); setAcceptAllFileFilterUsed(false);
setFileFilter(new FileFilter() if(!skipFileFilter)
{ {
@Override setFileFilter(new FileFilter()
public boolean accept(File f)
{ {
if (f.isDirectory()) @Override
return true; public boolean accept(File f)
{
if (f.isDirectory())
return true;
if(extensions[0].equals(EVERYTHING))
return true;
return extensionSet.contains(MiscUtils.extension(f.getAbsolutePath()));
}
if(extensions[0].equals(EVERYTHING)) @Override
return true; public String getDescription() {
return description;
return extensionSet.contains(MiscUtils.extension(f.getAbsolutePath())); }
} });
}
@Override
public String getDescription() {
return description;
}
});
} }
} }

View file

@ -8,6 +8,7 @@ import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole; import the.bytecode.club.bytecodeviewer.api.PluginConsole;
import the.bytecode.club.bytecodeviewer.gui.components.JFrameConsoleTabbed; import the.bytecode.club.bytecodeviewer.gui.components.JFrameConsoleTabbed;
import the.bytecode.club.bytecodeviewer.plugin.strategies.*; import the.bytecode.club.bytecodeviewer.plugin.strategies.*;
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
import the.bytecode.club.bytecodeviewer.util.MiscUtils; import the.bytecode.club.bytecodeviewer.util.MiscUtils;
/*************************************************************************** /***************************************************************************
@ -167,7 +168,7 @@ public final class PluginManager
@Override @Override
public String getDescription() { public String getDescription() {
return "BCV Plugins"; return TranslatedStrings.SELECT_EXTERNAL_PLUGIN_DESCRIPTION.toString();
} }
} }
} }

View file

@ -9,6 +9,10 @@ import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
import javax.swing.*; import javax.swing.*;
import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileFilter;
import java.io.File; import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import static the.bytecode.club.bytecodeviewer.gui.components.FileChooser.EVERYTHING;
/*************************************************************************** /***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite * * Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
@ -86,13 +90,36 @@ public class DialogUtils
*/ */
public static File fileChooser(String title, String description, File directory, FileFilter filter, OnOpenEvent onOpen, String... extensions) public static File fileChooser(String title, String description, File directory, FileFilter filter, OnOpenEvent onOpen, String... extensions)
{ {
final JFileChooser fc = new FileChooser(directory, HashSet<String> extensionSet = new HashSet<>(Arrays.asList(extensions));
final JFileChooser fc = new FileChooser(true,
directory,
title, title,
description, description,
extensions); extensions);
if(filter != null) if(filter != null)
fc.setFileFilter(filter); fc.setFileFilter(filter);
else
fc.setFileFilter(new FileFilter()
{
@Override
public boolean accept(File f)
{
if (f.isDirectory())
return true;
if(extensions[0].equals(EVERYTHING))
return true;
return extensionSet.contains(MiscUtils.extension(f.getAbsolutePath()));
}
@Override
public String getDescription() {
return description;
}
});
int returnVal = fc.showOpenDialog(BytecodeViewer.viewer); int returnVal = fc.showOpenDialog(BytecodeViewer.viewer);
if (returnVal == JFileChooser.APPROVE_OPTION) if (returnVal == JFileChooser.APPROVE_OPTION)