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 }