001 package nl.cwi.sen1.gui.plugin; 002 003 import nl.cwi.sen1.gui.CloseAbortedException; 004 import nl.cwi.sen1.gui.Studio; 005 import nl.cwi.sen1.gui.StudioImplWithPredefinedLayout; 006 import nl.cwi.sen1.gui.StudioWithPredefinedLayout; 007 import nl.cwi.sen1.gui.component.StudioComponent; 008 import nl.cwi.sen1.gui.component.StudioComponentImpl; 009 import nl.cwi.sen1.gui.plugin.console.ConsolePanel; 010 import aterm.ATerm; 011 012 public class Console extends DefaultStudioPlugin implements ConsoleTif { 013 private static final String TOOL_NAME = "console"; 014 015 private ConsoleBridge bridge; 016 017 private ConsolePanel panel; 018 019 public Console() { 020 } 021 022 public void initStudioPlugin(Studio studio) { 023 panel = new ConsolePanel(); 024 025 bridge = new ConsoleBridge(studio.getATermFactory(), this); 026 bridge.setLockObject(this); 027 028 StudioComponent comp = new StudioComponentImpl("Console", panel) { 029 public void requestClose() throws CloseAbortedException { 030 throw new CloseAbortedException(); 031 } 032 }; 033 studio.connect(getName(), bridge); 034 ((StudioWithPredefinedLayout) studio).addComponent(comp, 035 StudioImplWithPredefinedLayout.BOTTOM_RIGHT); 036 } 037 038 public void addMessage(String message) { 039 panel.addMessage(message); 040 } 041 042 public String getName() { 043 return TOOL_NAME; 044 } 045 046 public void recTerminate(ATerm t0) { 047 fireStudioPluginClosed(); 048 } 049 }