front_processing/extern/TUIO_JAVA/src/TuioDemo.java
author bastiena
Thu, 22 Mar 2012 18:15:53 +0100
changeset 9 0f44b7360c8d
parent 3 92f19af39024
child 10 925b7ee746e3
permissions -rw-r--r--
Installer updated files charset set to UTF-8 without tabs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
     1
/*
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
     2
    TUIO Java Demo - part of the reacTIVision project
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
     3
    http://reactivision.sourceforge.net/
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     4
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
     5
    Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
0
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
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    32
    private final int window_width  = 640;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    33
    private final int window_height = 480;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    35
    private boolean fullscreen = false;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    36
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    37
    private TuioDemoComponent demo;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    38
    private JFrame frame;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    39
    private GraphicsDevice device;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    40
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    41
    public TuioDemo() {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    42
        demo = new TuioDemoComponent();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    43
        device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    44
        setupWindow();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    45
        showWindow();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    46
    }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    47
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    48
    public TuioListener getTuioListener() {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    49
        return demo;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    50
    }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    51
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    52
    public void setupWindow() {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    53
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    54
        frame = new JFrame();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    55
        frame.add(demo);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    57
        frame.setTitle("TuioDemo");
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    58
        frame.setResizable(false);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    60
        frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent evt) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    61
                System.exit(0);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    62
            } });
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    63
        
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    64
        frame.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent evt) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    65
            if (evt.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    66
            else if (evt.getKeyCode()==KeyEvent.VK_F1) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    67
                destroyWindow();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    68
                setupWindow();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    69
                fullscreen = !fullscreen;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    70
                showWindow();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    71
            }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    72
            else if (evt.getKeyCode()==KeyEvent.VK_V) demo.verbose=!demo.verbose;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    73
        } });
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    74
    }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    75
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    76
    public void destroyWindow() {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    77
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    78
        frame.setVisible(false);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    79
        if (fullscreen) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    80
            device.setFullScreenWindow(null);        
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    81
        }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    82
        frame = null;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    83
    }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    84
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    85
    public void showWindow() {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    86
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    87
        if (fullscreen) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    88
            int width  = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    89
            int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    90
            demo.setSize(width,height);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    91
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    92
            frame.setSize(width,height);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    93
            frame.setUndecorated(true);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    94
            device.setFullScreenWindow(frame);        
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    95
        } else {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    96
            int width  = window_width;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    97
            int height = window_height;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    98
            demo.setSize(width,height);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
    99
            
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   100
            frame.pack();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   101
            Insets insets = frame.getInsets();            
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   102
            frame.setSize(width,height +insets.top);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   103
            
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   104
        }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   105
        
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   106
        frame.setVisible(true);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   107
        frame.repaint();
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   108
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   109
    }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   110
    
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   111
    public static void main(String argv[]) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   112
        
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   113
        TuioDemo demo = new TuioDemo();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   114
        TuioClient client = null;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   115
 
9
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   116
        switch (argv.length) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   117
            case 1:
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   118
                try { 
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   119
                    client = new TuioClient( Integer.parseInt(argv[0])); 
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   120
                } catch (Exception e) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   121
                    System.out.println("usage: java TuioDemo [port]");
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   122
                    System.exit(0);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   123
                }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   124
                break;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   125
            case 0:
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   126
                client = new TuioClient(80);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   127
                break;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   128
            default: 
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   129
                System.out.println("usage: java TuioDemo [port]");
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   130
                System.exit(0);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   131
                break;
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   132
        }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   133
        
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   134
        if (client!=null) {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   135
            client.addTuioListener(demo.getTuioListener());
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   136
            client.connect();
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   137
        } else {
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   138
            System.out.println("usage: java TuioDemo [port]");
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   139
            System.exit(0);
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   140
        }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   141
    }
0f44b7360c8d Installer updated
bastiena
parents: 3
diff changeset
   142
    
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   143
}