front_processing/extern/TUIO_JAVA/src/TuioDemo.java
author bastiena
Fri, 09 Mar 2012 14:52:11 +0100
changeset 0 6fefd4afe506
child 3 92f19af39024
permissions -rw-r--r--
First Import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     1
/*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     2
	TUIO Java Demo - part of the reacTIVision project
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     3
	http://reactivision.sourceforge.net/
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     4
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     5
	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     6
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     7
    This program is free software; you can redistribute it and/or modify
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     8
    it under the terms of the GNU General Public License as published by
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     9
    the Free Software Foundation; either version 2 of the License, or
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    10
    (at your option) any later version.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    12
    This program is distributed in the hope that it will be useful,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
    GNU General Public License for more details.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
    You should have received a copy of the GNU General Public License
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
    along with this program; if not, write to the Free Software
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
*/
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
import java.awt.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
import java.awt.geom.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
import java.awt.event.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
import java.awt.image.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
import java.util.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
import javax.swing.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
import TUIO.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
public class TuioDemo  {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
	private final int window_width  = 640;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
	private final int window_height = 480;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
	private boolean fullscreen = false;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
	private TuioDemoComponent demo;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
	private JFrame frame;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
	private GraphicsDevice device;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
	public TuioDemo() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
		demo = new TuioDemoComponent();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    43
		device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    44
		setupWindow();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
		showWindow();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    47
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    48
	public TuioListener getTuioListener() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    49
		return demo;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    50
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
	public void setupWindow() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    53
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
		frame = new JFrame();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    55
		frame.add(demo);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    57
		frame.setTitle("TuioDemo");
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    58
		frame.setResizable(false);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    60
		frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent evt) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    61
				System.exit(0);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    62
			} });
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    63
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    64
		frame.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent evt) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    65
			if (evt.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    66
			else if (evt.getKeyCode()==KeyEvent.VK_F1) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    67
				destroyWindow();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    68
				setupWindow();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    69
				fullscreen = !fullscreen;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    70
				showWindow();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    71
			}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    72
			else if (evt.getKeyCode()==KeyEvent.VK_V) demo.verbose=!demo.verbose;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    73
		} });
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    74
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    75
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    76
	public void destroyWindow() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    77
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    78
		frame.setVisible(false);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    79
		if (fullscreen) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    80
			device.setFullScreenWindow(null);		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    81
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    82
		frame = null;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    83
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    84
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    85
	public void showWindow() {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    86
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    87
		if (fullscreen) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    88
			int width  = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    89
			int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    90
			demo.setSize(width,height);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    91
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    92
			frame.setSize(width,height);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    93
			frame.setUndecorated(true);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    94
			device.setFullScreenWindow(frame);		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    95
		} else {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    96
			int width  = window_width;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    97
			int height = window_height;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    98
			demo.setSize(width,height);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    99
			
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   100
			frame.pack();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   101
			Insets insets = frame.getInsets();			
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   102
			frame.setSize(width,height +insets.top);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   103
			
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   104
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   105
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   106
		frame.setVisible(true);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   107
		frame.repaint();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   108
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   109
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   110
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   111
	public static void main(String argv[]) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   112
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   113
		TuioDemo demo = new TuioDemo();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   114
		TuioClient client = null;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   115
 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   116
		switch (argv.length) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   117
			case 1:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   118
				try { 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   119
					client = new TuioClient( Integer.parseInt(argv[0])); 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   120
				} catch (Exception e) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   121
					System.out.println("usage: java TuioDemo [port]");
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   122
					System.exit(0);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   123
				}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   124
				break;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   125
			case 0:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   126
				client = new TuioClient();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   127
				break;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   128
			default: 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   129
				System.out.println("usage: java TuioDemo [port]");
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   130
				System.exit(0);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   131
				break;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   132
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   133
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   134
		if (client!=null) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   135
			client.addTuioListener(demo.getTuioListener());
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   136
			client.connect();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   137
		} else {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   138
			System.out.println("usage: java TuioDemo [port]");
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   139
			System.exit(0);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   140
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   141
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   142
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   143
}