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