Skip to content

Commit

Permalink
- simplified the API a bit:
Browse files Browse the repository at this point in the history
  - removed TabletManagerFactory
  - removed TabletListener.newDevice (since cursorEntered is sufficient)
- more installation experiments
  • Loading branch information
marcello3d committed Jan 4, 2010
1 parent b5adca1 commit 768ec90
Show file tree
Hide file tree
Showing 33 changed files with 561 additions and 500 deletions.
6 changes: 4 additions & 2 deletions build.xml
Expand Up @@ -230,7 +230,9 @@
version="true"
use="true"
classpathref="jtablet.classpath"
windowtitle="JTablet 2.0 API">
Overview="src/overview.html"
windowtitle="JTablet 2.0 API"
Header="JTablet 2.0 API">

<packageset dir="${src}" defaultexcludes="yes">
<include name="cello/jtablet/**"/>
Expand Down Expand Up @@ -291,7 +293,7 @@
</manifest>
</jar>
<jar
jarfile="html/demos/jtablet2-demo-with-ext.jar"
jarfile="html/demos/jtablet2-demo-ext.jar"
includes="cello/**"
level="9"
basedir="${build.demo}">
Expand Down
8 changes: 4 additions & 4 deletions docs/examples/src/Example1.java
Expand Up @@ -3,7 +3,7 @@
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import cello.jtablet.TabletManagerFactory;
import cello.jtablet.TabletManager;
import cello.jtablet.event.TabletAdapter;
import cello.jtablet.event.TabletEvent;
import cello.jtablet.event.TabletListener;
Expand All @@ -22,11 +22,11 @@ public class Example1 {
// Create a new listener
TabletListener tabletListener = new TabletAdapter() {
public void cursorMoved(TabletEvent ev) {
label.setText("Cursor moved: "+ev.getRealX()+", "+ev.getRealY());
label.setText("Cursor moved: "+ev.getFloatX()+", "+ev.getFloatY());
}

public void cursorDragged(TabletEvent ev) {
label.setText("Cursor dragged: "+ev.getRealX()+", "+ev.getRealY()+" pressure="+ev.getPressure());
label.setText("Cursor dragged: "+ev.getFloatX()+", "+ev.getFloatY()+" pressure="+ev.getPressure());
}
};

Expand All @@ -36,7 +36,7 @@ public void cursorDragged(TabletEvent ev) {
frame.add(label);

// Add the tablet listener
TabletManagerFactory.getManager().addTabletListener(label, tabletListener);
TabletManager.getDefaultManager().addTabletListener(label, tabletListener);

// Show the frame on the screen
frame.setVisible(true);
Expand Down
2 changes: 1 addition & 1 deletion docs/todo.html
Expand Up @@ -20,7 +20,7 @@ <h3>Bugs</h3>
</li>
<li><b>Windows</b>
<ul>
<li>Keyboard modifiers are not handled correctly</li>
<li><strike>Keyboard modifiers are not handled correctly</strike></li>
<li>Mouse buttons won't match the buttons if configured differently in the control panel</li>
<li>Relatively positioned tablet inputs (e.g. mouse) report the wrong coordinates (maybe fallback on mouse
position?)</li>
Expand Down
2 changes: 1 addition & 1 deletion html/demos/applet-ext.html
Expand Up @@ -11,7 +11,7 @@ <h1>JTablet 2.0 Demo - Java Applet</h1>
{
codebase: '.',
code: 'cello.demo.jtablet.DemoApplet.class',
archive: 'jtablet2-demo-with-ext.jar',
archive: 'jtablet2-demo-ext.jar',
width: 710,
height: 540
},
Expand Down
20 changes: 9 additions & 11 deletions html/demos/applet-jnlp-ext.html
Expand Up @@ -8,17 +8,15 @@ <h1>JTablet 2.0 Demo - Java Applet</h1>
<script>
deployJava.setInstallerType('kernel');
deployJava.runApplet(
{
codebase: '.',
code: 'cello.demo.jtablet.DemoApplet.class',
archive: 'jtablet2-demo-with-ext.jar',
width: 710,
height: 540
},
{
// parameters

},
{
code: 'cello.demo.jtablet.DemoApplet.class'
width: 710,
height: 540
},
{
// parameters
jnlp_href: 'jtablet2-demo-with-ext.jnlp'
},
'1.5'
);
</script>
Expand Down
13 changes: 13 additions & 0 deletions html/demos/webstart-ext.html
@@ -0,0 +1,13 @@
<html>
<head>
<title>JTablet 2.0 Webstart</title>
<script type="text/javascript" src="deployJava.js"></script>
</head>
<body>
<h1>JTablet 2.0 Webstart</h1>
<script>
deployJava.setInstallerType('kernel');
deployJava.createWebStartLaunchButton("jtablet2-demo-with-ext.jnlp","1.5");
</script>
</body>
</html>
13 changes: 13 additions & 0 deletions html/demos/webstart-jnlpext.html
@@ -0,0 +1,13 @@
<html>
<head>
<title>JTablet 2.0 Webstart</title>
<script type="text/javascript" src="deployJava.js"></script>
</head>
<body>
<h1>JTablet 2.0 Webstart</h1>
<script>
deployJava.setInstallerType('kernel');
deployJava.createWebStartLaunchButton("jtablet2-demo-jnlpext.jnlp","1.5");
</script>
</body>
</html>
8 changes: 8 additions & 0 deletions src-demo/cello/demo/jtablet/AbstractLogPanel.java
Expand Up @@ -6,10 +6,18 @@
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;

/**
* A simple log display component.
*
* @author marcello
*/
public class AbstractLogPanel extends JScrollPane {

protected JTextArea logArea = new JTextArea();

/**
* Constructs a new abstract log panel
*/
public AbstractLogPanel() {
setViewportView(logArea);
logArea.setEditable(false);
Expand Down
9 changes: 5 additions & 4 deletions src-demo/cello/demo/jtablet/DemoApplet.java
Expand Up @@ -17,8 +17,6 @@
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;

import cello.jtablet.TabletManagerFactory;

/**
* A simple sketching surface applet
*
Expand Down Expand Up @@ -53,7 +51,11 @@ public void init() {
}
tabbedPane.addTab("16 Components",panel);

tabbedPane.addTab("Screen Listener",new ScreenTabletListenerLogPanel());
try {
tabbedPane.addTab("Screen Listener",new ScreenTabletListenerLogPanel());
} catch (UnsupportedOperationException ex) {
// do nothing
}
panel = new JPanel();

JButton button = new JButton("Open in new window");
Expand Down Expand Up @@ -107,7 +109,6 @@ private Component createDrawingGroup(String infoPosition) {
* @throws InterruptedException
*/
public static void main(String ...args) throws InterruptedException {
TabletManagerFactory.getManager();
final JFrame frame = new JFrame("JTablet Demo");
try {
final DemoApplet demo = new DemoApplet();
Expand Down
24 changes: 12 additions & 12 deletions src-demo/cello/demo/jtablet/DemoInfoPanel.java
Expand Up @@ -14,7 +14,7 @@
import javax.swing.JPanel;

import cello.jtablet.TabletDevice;
import cello.jtablet.TabletManagerFactory;
import cello.jtablet.TabletManager;
import cello.jtablet.TabletDevice.Support;
import cello.jtablet.event.TabletEvent;
import cello.jtablet.event.TabletFunneler;
Expand Down Expand Up @@ -84,7 +84,7 @@ public DemoInfoPanel(Component targetComponent) {
gbc.gridy++;
}

TabletManagerFactory.getManager().addTabletListener(targetComponent, new TabletFunneler() {
TabletManager.getDefaultManager().addTabletListener(targetComponent, new TabletFunneler() {
private int eventCount;
private long lastTime = System.currentTimeMillis();
protected void handleEvent(TabletEvent ev) {
Expand All @@ -96,25 +96,25 @@ protected void handleEvent(TabletEvent ev) {
eventCount = 0;
}
TabletDevice device = ev.getDevice();
setText(typeValue, device.getType().toString(), Support.SUPPORTED);
setText(xValue, nf.format(ev.getRealX()), Support.SUPPORTED);
setText(yValue, nf.format(ev.getRealY()), Support.SUPPORTED);
setText(pressureValue, nf.format(ev.getPressure()), device.supportsPressure());
setText(sidePressureValue, nf.format(ev.getSidePressure()), device.supportsSidePressure());
setText(tiltXValue, nf.format(Math.toDegrees(ev.getTiltX()))+"º", device.supportsTilt());
setText(tiltYValue, nf.format(Math.toDegrees(ev.getTiltY()))+"º", device.supportsTilt());
setText(rotationValue, nf.format(Math.toDegrees(ev.getRotation()))+"º", device.supportsRotation());
setText(typeValue, device.getType().toString(), Support.YES);
setText(xValue, nf.format(ev.getFloatX()), Support.YES);
setText(yValue, nf.format(ev.getFloatY()), Support.YES);
setText(pressureValue, nf.format(ev.getPressure()), device.getPressureSupport());
setText(sidePressureValue, nf.format(ev.getSidePressure()), device.getSidePressureSupport());
setText(tiltXValue, nf.format(Math.toDegrees(ev.getTiltX()))+"º", device.getTiltSupport());
setText(tiltYValue, nf.format(Math.toDegrees(ev.getTiltY()))+"º", device.getTiltSupport());
setText(rotationValue, nf.format(Math.toDegrees(ev.getRotation()))+"º", device.getRotationSupport());
}
private void setText(JLabel label, String value, TabletDevice.Support supported) {
if (supported != null) {
JLabel prefix = labelPrefixes.get(label);
switch (supported) {
case NONE:
case NO:
label.setEnabled(false);
prefix.setEnabled(false);
label.setForeground(new Color(0x800000));
break;
case SUPPORTED:
case YES:
label.setEnabled(true);
prefix.setEnabled(true);
label.setForeground(new Color(0x008000));
Expand Down
20 changes: 10 additions & 10 deletions src-demo/cello/demo/jtablet/DemoSurface.java
Expand Up @@ -19,7 +19,7 @@
import javax.swing.JComponent;

import cello.jtablet.TabletDevice;
import cello.jtablet.TabletManagerFactory;
import cello.jtablet.TabletManager;
import cello.jtablet.event.TabletAdapter;
import cello.jtablet.event.TabletEvent;

Expand Down Expand Up @@ -53,7 +53,7 @@ public class DemoSurface extends JComponent {
*/
public DemoSurface() {
createBuffer();
TabletManagerFactory.getManager().addTabletListener(this, new TabletAdapter() {
TabletManager.getDefaultManager().addTabletListener(this, new TabletAdapter() {

boolean dragged = false;
@Override
Expand All @@ -67,8 +67,8 @@ public void cursorExited(TabletEvent ev) {
public synchronized void cursorDragged(TabletEvent ev) {
onSurface = true;
dragged = true;
float x = ev.getRealX();
float y = ev.getRealY();
float x = ev.getFloatX();
float y = ev.getFloatY();
float pressure = ev.getPressure() * MAX_RADIUS;
boolean rightClick = (ev.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK) != 0;
if (rightClick && ev.getDevice().getType() == TabletDevice.Type.MOUSE) {
Expand All @@ -90,17 +90,17 @@ public synchronized void cursorDragged(TabletEvent ev) {
@Override
public void cursorMoved(TabletEvent ev) {
onSurface = true;
lastX = ev.getRealX();
lastY = ev.getRealY();
lastX = ev.getFloatX();
lastY = ev.getFloatY();
lastPressure = ev.getPressure();
dragged = false;
updateCursor();
}

@Override
public void cursorPressed(TabletEvent ev) {
lastX = ev.getRealX();
lastY = ev.getRealY();
lastX = ev.getFloatX();
lastY = ev.getFloatY();
lastPressure = ev.getPressure();
dragged = false;
dragging = true;
Expand All @@ -109,8 +109,8 @@ public void cursorPressed(TabletEvent ev) {
@Override
public void cursorReleased(TabletEvent ev) {
if (!dragged) {
double x = ev.getRealX();
double y = ev.getRealY();
double x = ev.getFloatX();
double y = ev.getFloatY();
double radius = MAX_RADIUS;
erasing = ev.getDevice().getType() == TabletDevice.Type.ERASER;
fill(new Ellipse2D.Double(x-radius,y-radius,2*radius,2*radius));
Expand Down
4 changes: 2 additions & 2 deletions src-demo/cello/demo/jtablet/ScreenTabletListenerLogPanel.java
Expand Up @@ -23,7 +23,7 @@

package cello.demo.jtablet;

import cello.jtablet.TabletManagerFactory;
import cello.jtablet.TabletManager;
import cello.jtablet.event.TabletEvent;
import cello.jtablet.event.TabletFunneler;

Expand All @@ -36,7 +36,7 @@ public class ScreenTabletListenerLogPanel extends AbstractLogPanel {
* Constructs a new DemoLogPanel that will listen for screen events.
*/
public ScreenTabletListenerLogPanel() {
TabletManagerFactory.getManager().addScreenTabletListener(new TabletFunneler() {
TabletManager.getDefaultManager().addScreenTabletListener(new TabletFunneler() {
protected void handleEvent(TabletEvent ev) {
logMessage(ev.toString());
}
Expand Down
21 changes: 19 additions & 2 deletions src-demo/cello/demo/jtablet/TabletListenerLogPanel.java
Expand Up @@ -25,7 +25,7 @@

import java.awt.Component;

import cello.jtablet.TabletManagerFactory;
import cello.jtablet.TabletManager;
import cello.jtablet.event.TabletEvent;
import cello.jtablet.event.TabletFunneler;

Expand All @@ -39,10 +39,27 @@ public class TabletListenerLogPanel extends AbstractLogPanel {
* @param targetComponent
*/
public TabletListenerLogPanel(Component targetComponent) {
TabletManagerFactory.getManager().addTabletListener(targetComponent, new TabletFunneler() {
TabletManager.getDefaultManager().addTabletListener(targetComponent, new TabletFunneler() {
protected void handleEvent(TabletEvent ev) {
logMessage(ev.toString());
}
});
// targetComponent.addMouseListener(new MouseListener() {
// public void mouseClicked(MouseEvent e) {
// logMessage(e.toString());
// }
// public void mouseEntered(MouseEvent e) {
// logMessage(e.toString());
// }
// public void mouseExited(MouseEvent e) {
// logMessage(e.toString());
// }
// public void mousePressed(MouseEvent e) {
// logMessage(e.toString());
// }
// public void mouseReleased(MouseEvent e) {
// logMessage(e.toString());
// }
// });
}
}

0 comments on commit 768ec90

Please sign in to comment.