001    package org.LiveGraph.gui.msg;
002    
003    import java.awt.Dimension;
004    import java.awt.Toolkit;
005    
006    import javax.swing.WindowConstants;
007    
008    import org.LiveGraph.LiveGraph;
009    import org.LiveGraph.events.Event;
010    import org.LiveGraph.gui.GUIEvent;
011    import org.LiveGraph.gui.LiveGraphFrame;
012    
013    import java.awt.event.WindowAdapter;
014    import java.awt.event.WindowEvent;
015    
016    /**
017     * This is the application's message window.
018     * 
019     * <p style="font-size:smaller;">This product includes software developed by the
020     *    <strong>LiveGraph</strong> project and its contributors.<br />
021     *    (<a href="http://www.live-graph.org" target="_blank">http://www.live-graph.org</a>)<br />
022     *    Copyright (c) 2007-2008 G. Paperin.<br />
023     *    All rights reserved.
024     * </p>
025     * <p style="font-size:smaller;">File: MessageWindow.java</p> 
026     * <p style="font-size:smaller;">Redistribution and use in source and binary forms, with or
027     *    without modification, are permitted provided that the following terms and conditions are met:
028     * </p>
029     * <p style="font-size:smaller;">1. Redistributions of source code must retain the above
030     *    acknowledgement of the LiveGraph project and its web-site, the above copyright notice,
031     *    this list of conditions and the following disclaimer.<br />
032     *    2. Redistributions in binary form must reproduce the above acknowledgement of the
033     *    LiveGraph project and its web-site, the above copyright notice, this list of conditions
034     *    and the following disclaimer in the documentation and/or other materials provided with
035     *    the distribution.<br />
036     *    3. All advertising materials mentioning features or use of this software or any derived
037     *    software must display the following acknowledgement:<br />
038     *    <em>This product includes software developed by the LiveGraph project and its
039     *    contributors.<br />(http://www.live-graph.org)</em><br />
040     *    4. All advertising materials distributed in form of HTML pages or any other technology
041     *    permitting active hyper-links that mention features or use of this software or any
042     *    derived software must display the acknowledgment specified in condition 3 of this
043     *    agreement, and in addition, include a visible and working hyper-link to the LiveGraph
044     *    homepage (http://www.live-graph.org).
045     * </p>
046     * <p style="font-size:smaller;">THIS SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY
047     *    OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
048     *    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT SHALL
049     *    THE AUTHORS, CONTRIBUTORS OR COPYRIGHT  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
050     *    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  FROM, OUT OF OR
051     *    IN CONNECTION WITH THE SOFTWARE OR THE USE OR  OTHER DEALINGS IN THE SOFTWARE.
052     * </p>
053     * 
054     * @author Greg Paperin (<a href="http://www.paperin.org" target="_blank">http://www.paperin.org</a>)
055     * @version {@value org.LiveGraph.LiveGraph#version}
056     */
057    public class MessageWindow extends LiveGraphFrame {
058    
059    
060    /**
061     * This is the default constructor. 
062     */
063    public MessageWindow() {
064            super();
065            initialize();
066    }
067    
068    
069    /**
070     * This method initializes the main window.
071     */
072    private void initialize() {
073            
074            // Main window size and position:
075            final int WIN_WIDTH = 600;
076            final int WIN_HEIGHT = 200;
077            Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
078            this.setBounds((scr.width - WIN_WIDTH) / 2, (scr.height - WIN_HEIGHT) / 2, WIN_WIDTH, WIN_HEIGHT);
079            
080            // Other main settings:
081            this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);     
082            this.setTitle("Messages (LiveGraph)");  
083            
084            // Closing handler:
085            this.addWindowListener(new WindowAdapter() {
086                    @Override public void windowClosing(WindowEvent e) {
087                            LiveGraph.application().guiManager().setDisplayMessageWindows(false);
088                    }
089            });
090    
091    } // private void initialize()
092    
093    /**
094     * Updates local view on GUI events.
095     * 
096     * @param event A GUI event.
097     */
098    @Override
099    protected void processGUIEvent(Event<GUIEvent> event) {
100            
101            super.processGUIEvent(event);
102            if (GUIEvent.GUI_MessagesDisplayStateChanged == event.getType()) {
103                    setVisible(event.getInfoBoolean());
104            }
105    }
106    
107    }  // public class MessageWindow