001: /*
002: * Jacareto Copyright (c) 2002-2005
003: * Applied Computer Science Research Group, Darmstadt University of
004: * Technology, Institute of Mathematics & Computer Science,
005: * Ludwigsburg University of Education, and Computer Based
006: * Learning Research Group, Aachen University. All rights reserved.
007: *
008: * Jacareto is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation; either
011: * version 2 of the License, or (at your option) any later version.
012: *
013: * Jacareto is distributed in the hope that it will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016: * General Public License for more details.
017: *
018: * You should have received a copy of the GNU General Public
019: * License along with Jacareto; if not, write to the Free
020: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
021: *
022: */
023:
024: package jacareto.comp;
025:
026: import jacareto.catching.EventObjectQueue;
027: import jacareto.system.Environment;
028: import jacareto.system.EnvironmentMember;
029:
030: import java.awt.Toolkit;
031: import java.awt.event.ActionEvent;
032: import java.awt.event.ActionListener;
033: import java.awt.event.ComponentEvent;
034: import java.awt.event.ItemEvent;
035: import java.awt.event.ItemListener;
036: import java.awt.event.MouseEvent;
037: import java.awt.event.MouseListener;
038:
039: import javax.swing.event.ChangeEvent;
040: import javax.swing.event.ChangeListener;
041: import javax.swing.event.HyperlinkEvent;
042: import javax.swing.event.HyperlinkListener;
043: import javax.swing.event.ListSelectionEvent;
044: import javax.swing.event.ListSelectionListener;
045:
046: /**
047: * Listens to events which are not posted to the AWTEventQueue and posts them.
048: *
049: * @author <a href="mailto:cspannagel@web.de">Christian Spannagel</a>
050: * @version 1.01
051: */
052: public class ComponentListener extends EnvironmentMember implements
053: ActionListener, ItemListener, MouseListener,
054: ListSelectionListener, HyperlinkListener, ChangeListener,
055: java.awt.event.ComponentListener {
056: /**
057: * Creates a new component listener.
058: *
059: * @param env the environment
060: */
061: public ComponentListener(Environment env) {
062: super (env);
063: }
064:
065: public void actionPerformed(ActionEvent event) {
066: Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
067: event);
068: }
069:
070: public void itemStateChanged(ItemEvent event) {
071: Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
072: event);
073: }
074:
075: public void valueChanged(ListSelectionEvent event) {
076: EventObjectQueue.pushEvent(event);
077: }
078:
079: public void hyperlinkUpdate(HyperlinkEvent event) {
080: EventObjectQueue.pushEvent(event);
081: }
082:
083: public void stateChanged(ChangeEvent event) {
084: EventObjectQueue.pushEvent(event);
085: }
086:
087: public void mouseClicked(MouseEvent event) {
088: //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
089: }
090:
091: public void mouseEntered(MouseEvent event) {
092: //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
093: }
094:
095: public void mouseExited(MouseEvent event) {
096: //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
097: }
098:
099: public void mousePressed(MouseEvent event) {
100: //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
101: }
102:
103: public void mouseReleased(MouseEvent event) {
104: //Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
105: }
106:
107: // Component events are only included for capturing "window moved" and "window resized"
108: // events. Because registering an event listener for all component events at the AWTEventQueue
109: // causes many problems (BlueJ hangs up, for example), component events are captured only
110: // for windows via the separate EventQueue of Jacareto.
111: public void componentMoved(ComponentEvent event) {
112: EventObjectQueue.pushEvent(event);
113: }
114:
115: public void componentResized(ComponentEvent event) {
116: EventObjectQueue.pushEvent(event);
117: }
118:
119: public void componentHidden(ComponentEvent event) {
120: }
121:
122: public void componentShown(ComponentEvent event) {
123: }
124: }
|