Tabbed Plugin Exceptions
This commit is contained in:
parent
9bf7e012b3
commit
ff793b5fc3
2 changed files with 46 additions and 1 deletions
|
@ -11,6 +11,7 @@ import the.bytecode.club.bytecodeviewer.BytecodeViewer;
|
|||
import the.bytecode.club.bytecodeviewer.Configuration;
|
||||
import the.bytecode.club.bytecodeviewer.gui.components.JFrameConsole;
|
||||
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ComponentViewer;
|
||||
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
|
||||
import the.bytecode.club.bytecodeviewer.resources.IconResources;
|
||||
import the.bytecode.club.bytecodeviewer.translation.TranslatedStrings;
|
||||
|
||||
|
@ -116,7 +117,7 @@ public class ExceptionUI extends JFrameConsole
|
|||
//embed error log as a new tab
|
||||
if(Configuration.errorLogsAsNewTab)
|
||||
{
|
||||
ComponentViewer.addComponentAsTab("Error #" + errorCounter++, getComponent(0));
|
||||
PluginManager.addExceptionUI(this, "Error #" + errorCounter++);
|
||||
}
|
||||
//pop open a new window frame
|
||||
else
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.List;
|
|||
import javax.swing.filechooser.FileFilter;
|
||||
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
|
||||
import the.bytecode.club.bytecodeviewer.Configuration;
|
||||
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
|
||||
import the.bytecode.club.bytecodeviewer.api.Plugin;
|
||||
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
|
||||
import the.bytecode.club.bytecodeviewer.gui.components.JFrameConsoleTabbed;
|
||||
|
@ -55,7 +56,10 @@ public final class PluginManager
|
|||
|
||||
private static Plugin activePlugin;
|
||||
private static JFrameConsoleTabbed activeTabbedConsole;
|
||||
private static JFrameConsoleTabbed activeTabbedException;
|
||||
private static HashMap<String, ExceptionUI> exceptionTabs = new HashMap<>();
|
||||
private static int consoleCount = 0;
|
||||
private static int exceptionCount = 0;
|
||||
|
||||
static
|
||||
{
|
||||
|
@ -85,9 +89,12 @@ public final class PluginManager
|
|||
{
|
||||
//reset the console count
|
||||
consoleCount = 0;
|
||||
exceptionCount = 0;
|
||||
|
||||
//reset the active tabbed console
|
||||
activeTabbedConsole = null;
|
||||
activeTabbedException = null;
|
||||
exceptionTabs.clear();
|
||||
|
||||
//reset the active plugin
|
||||
activePlugin = newPluginInstance;
|
||||
|
@ -122,6 +129,43 @@ public final class PluginManager
|
|||
runPlugin(p);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an active console from a plugin being ran
|
||||
*/
|
||||
public static void addExceptionUI(ExceptionUI ui, String title)
|
||||
{
|
||||
if(activePlugin == null)
|
||||
{
|
||||
ui.setLocationRelativeTo(BytecodeViewer.viewer);
|
||||
ui.setVisible(true);
|
||||
return;
|
||||
}
|
||||
|
||||
final String name = (activePlugin == null || activePlugin.activeContainer == null)
|
||||
? ("#" + (activeTabbedException.getTabbedPane().getTabCount() + 1)) : activePlugin.activeContainer.name;
|
||||
|
||||
ExceptionUI existingUI = exceptionTabs.get(name);
|
||||
|
||||
int id = exceptionCount++;
|
||||
if(activeTabbedException == null)
|
||||
{
|
||||
activeTabbedException = new JFrameConsoleTabbed(title);
|
||||
|
||||
if(Configuration.pluginConsoleAsNewTab)
|
||||
ComponentViewer.addComponentAsTab(title, activeTabbedException.getComponent(0));
|
||||
else
|
||||
activeTabbedException.setVisible(true);
|
||||
}
|
||||
|
||||
if(existingUI == null)
|
||||
{
|
||||
activeTabbedException.addConsole(ui.getComponent(0), name);
|
||||
exceptionTabs.put(name, ui);
|
||||
}
|
||||
else
|
||||
existingUI.appendText("\n\r" + ui.getTextArea().getText());
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an active console from a plugin being ran
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue