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…
	
	Add table
		Add a link
		
	
		Reference in a new issue