001    package nl.cwi.sen1.gui.plugin;
002    
003    
004    
005    import nl.cwi.sen1.gui.CloseAbortedException;
006    import nl.cwi.sen1.gui.Studio;
007    import nl.cwi.sen1.gui.StudioImplWithPredefinedLayout;
008    import nl.cwi.sen1.gui.StudioWithPredefinedLayout;
009    import nl.cwi.sen1.gui.component.StudioComponent;
010    import nl.cwi.sen1.gui.component.StudioComponentImpl;
011    import aterm.ATerm;
012    
013    public class Progress extends DefaultStudioPlugin implements ProgressTif {
014        private static final String TOOL_NAME = "progress";
015    
016        private ProgressBridge bridge;
017    
018        private ProgressPanel panel;
019        
020        public String getName() {
021            return TOOL_NAME;
022        }
023        
024        public Progress() {
025        }
026    
027        public void initStudioPlugin(Studio studio) {
028            panel = new ProgressPanel();
029            
030            bridge = new ProgressBridge(studio.getATermFactory(), this);
031            bridge.setLockObject(this);
032            
033            StudioComponent comp = new StudioComponentImpl("Progress", panel) {
034                public void requestClose() throws CloseAbortedException {
035                    throw new CloseAbortedException();
036                }
037            };
038            studio.connect(getName(), bridge);
039            ((StudioWithPredefinedLayout) studio).addComponent(comp,
040                    StudioImplWithPredefinedLayout.BOTTOM_RIGHT);
041        }
042        
043        public void setStatus(ATerm id, String column, ATerm value) {
044            panel.setStatus(id, column, value.toString());
045        }
046    
047        public void setMessage(ATerm id, String message) {
048            panel.setMessage(id, message);
049        }
050        
051        public void removeStatus(ATerm id) {
052            panel.removeStatus(id);
053        }
054        
055        public void clearStatusWindow() {
056        }
057    
058        public void recTerminate(ATerm t0) {
059            fireStudioPluginClosed();
060        }
061    }