- // we special-case letters since (C-a).getKeyChar() != 'a'
- case KeyEvent.VK_A: return "a";
- case KeyEvent.VK_B: return "b";
- case KeyEvent.VK_C: return "c";
- case KeyEvent.VK_D: return "d";
- case KeyEvent.VK_E: return "e";
- case KeyEvent.VK_F: return "f";
- case KeyEvent.VK_G: return "g";
- case KeyEvent.VK_H: return "h";
- case KeyEvent.VK_I: return "i";
- case KeyEvent.VK_J: return "j";
- case KeyEvent.VK_K: return "k";
- case KeyEvent.VK_L: return "l";
- case KeyEvent.VK_M: return "m";
- case KeyEvent.VK_N: return "n";
- case KeyEvent.VK_O: return "o";
- case KeyEvent.VK_P: return "p";
- case KeyEvent.VK_Q: return "q";
- case KeyEvent.VK_R: return "r";
- case KeyEvent.VK_S: return "s";
- case KeyEvent.VK_T: return "t";
- case KeyEvent.VK_U: return "u";
- case KeyEvent.VK_V: return "v";
- case KeyEvent.VK_W: return "w";
- case KeyEvent.VK_X: return "x";
- case KeyEvent.VK_Y: return "y";
- case KeyEvent.VK_Z: return "z";
- default: return String.valueOf(k.getKeyChar());
+ protected ImageDecoder _decodeJPEG(InputStream is, String name) {
+ try {
+ Image i = Toolkit.getDefaultToolkit().createImage(org.xwt.Resources.isToByteArray(is));
+ MediaTracker mediatracker = new MediaTracker(new Canvas());
+ mediatracker.addImage(i, 1);
+ try { mediatracker.waitForAll(); } catch (InterruptedException e) { }
+ mediatracker.removeImage(i);
+ final int width = i.getWidth(null);
+ final int height = i.getHeight(null);
+ final int[] data = new int[width * height];
+ PixelGrabber pg = new PixelGrabber(i, 0, 0, width, height, data, 0, width);
+ pg.grabPixels();
+ if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
+ Log.log(this, "PixelGrabber reported an error while decoding JPEG image " + name);
+ return null;