From: <ha...@us...> - 2011-09-26 14:58:29
|
Revision: 16127 http://jmol.svn.sourceforge.net/jmol/?rev=16127&view=rev Author: hansonr Date: 2011-09-26 14:58:17 +0000 (Mon, 26 Sep 2011) Log Message: ----------- jmol.awt.Image java.awt out of FileManager, ScriptEvaluator; Modified Paths: -------------- branches/android/Jmol/src/org/jmol/awt/Event.java branches/android/Jmol/src/org/jmol/g3d/Graphics3D.java branches/android/Jmol/src/org/jmol/multitouch/ActionManagerMT.java branches/android/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/android/Jmol/src/org/jmol/shape/Object2dShape.java branches/android/Jmol/src/org/jmol/util/JpegEncoder.java branches/android/Jmol/src/org/jmol/viewer/ActionManager.java branches/android/Jmol/src/org/jmol/viewer/FileManager.java branches/android/Jmol/src/org/jmol/viewer/JmolConstants.java branches/android/Jmol/src/org/jmol/viewer/Viewer.java Added Paths: ----------- branches/android/Jmol/src/org/jmol/awt/Image.java Property Changed: ---------------- branches/android/Jmol/src/ Property changes on: branches/android/Jmol/src ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/Jmol/src:16104-16124 + /trunk/Jmol/src:16104-16126 Modified: branches/android/Jmol/src/org/jmol/awt/Event.java =================================================================== --- branches/android/Jmol/src/org/jmol/awt/Event.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/awt/Event.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -25,9 +25,19 @@ package org.jmol.awt; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Image; +import java.awt.MediaTracker; +import java.awt.Point; +import java.awt.Toolkit; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; +import java.awt.image.MemoryImageSource; +import java.net.URL; +import org.jmol.viewer.JmolConstants; + public class Event { public static final int SHIFT_MASK = InputEvent.SHIFT_MASK; @@ -44,4 +54,52 @@ public static final int VK_DOWN = KeyEvent.VK_DOWN; public static final int VK_UP = KeyEvent.VK_UP; + public static void setCursor(int c, Container display) { + switch (c) { + case JmolConstants.CURSOR_HAND: + c = Cursor.HAND_CURSOR; + break; + case JmolConstants.CURSOR_MOVE: + c = Cursor.MOVE_CURSOR; + break; + case JmolConstants.CURSOR_ZOOM: + c = Cursor.N_RESIZE_CURSOR; + break; + case JmolConstants.CURSOR_CROSSHAIR: + c = Cursor.CROSSHAIR_CURSOR; + break; + case JmolConstants.CURSOR_WAIT: + c = Cursor.WAIT_CURSOR; + break; + default: + display.setCursor(Cursor.getDefaultCursor()); + return; + } + display.setCursor(Cursor.getPredefinedCursor(c)); + } + + public static void setTransparentCursor(Container display) { + int[] pixels = new int[1]; + Image image = Toolkit.getDefaultToolkit().createImage( + new MemoryImageSource(1, 1, pixels, 0, 1)); + Cursor transparentCursor = Toolkit.getDefaultToolkit() + .createCustomCursor(image, new Point(0, 0), "invisibleCursor"); + display.setCursor(transparentCursor); + } + + public static Image createImage(Object data) { + if (data instanceof URL) + return Toolkit.getDefaultToolkit().createImage((URL) data); + if (data instanceof String) + return Toolkit.getDefaultToolkit().createImage((String) data); + if (data instanceof byte[]) + return Toolkit.getDefaultToolkit().createImage((byte[]) data); + return null; + } + + public static void waitForDisplay(Container display, Image image) throws InterruptedException { + MediaTracker mediaTracker = new MediaTracker(display); + mediaTracker.addImage(image, 0); + mediaTracker.waitForID(0); + } } Copied: branches/android/Jmol/src/org/jmol/awt/Image.java (from rev 16126, trunk/Jmol/src/org/jmol/awt/Image.java) =================================================================== --- branches/android/Jmol/src/org/jmol/awt/Image.java (rev 0) +++ branches/android/Jmol/src/org/jmol/awt/Image.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -0,0 +1,54 @@ +/* $RCSfile$ + * $Author$ + * $Date$ + * $Revision$ + * + * Copyright (C) 2006 The Jmol Development Team + * + * Contact: jmo...@li... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +package org.jmol.awt; + +import java.awt.Container; +import java.awt.MediaTracker; +import java.awt.Toolkit; +import java.net.URL; + +public class Image { + + public static Object createImage(Object data) { + if (data instanceof URL) + return Toolkit.getDefaultToolkit().createImage((URL) data); + if (data instanceof String) + return Toolkit.getDefaultToolkit().createImage((String) data); + if (data instanceof byte[]) + return Toolkit.getDefaultToolkit().createImage((byte[]) data); + return null; + } + + public static void waitForDisplay(Container display, Object image) throws InterruptedException { + MediaTracker mediaTracker = new MediaTracker(display); + mediaTracker.addImage((java.awt.Image)image, 0); + mediaTracker.waitForID(0); + } + + public static int getWidth(Object image) { + return ((java.awt.Image) image).getWidth(null); + } +} Modified: branches/android/Jmol/src/org/jmol/g3d/Graphics3D.java =================================================================== --- branches/android/Jmol/src/org/jmol/g3d/Graphics3D.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/g3d/Graphics3D.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -501,8 +501,8 @@ // when background [0,0,1]. } - public void setBackgroundImage(Image image) { - backgroundImage = image; + public void setBackgroundImage(Object image) { + backgroundImage = (Image) image; } Modified: branches/android/Jmol/src/org/jmol/multitouch/ActionManagerMT.java =================================================================== --- branches/android/Jmol/src/org/jmol/multitouch/ActionManagerMT.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/multitouch/ActionManagerMT.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -32,6 +32,7 @@ import org.jmol.api.JmolTouchSimulatorInterface; import org.jmol.util.Logger; import org.jmol.viewer.ActionManager; +import org.jmol.viewer.JmolConstants; import org.jmol.viewer.Viewer; import org.jmol.viewer.binding.Binding; @@ -237,7 +238,7 @@ case DRAG_EVENT: if (iData == 2) { // This is a 2-finger drag - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); viewer.translateXYBy((int) pt.x, (int) pt.y); logEvent("Drag", pt); } @@ -249,7 +250,7 @@ viewer.log("SparshUI reports no driver present -- setting haveMultiTouchInput FALSE"); break; case ROTATE_EVENT: - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); viewer.rotateZBy((int) pt.z, Integer.MAX_VALUE, Integer.MAX_VALUE); logEvent("Rotate", pt); break; Modified: branches/android/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/android/Jmol/src/org/jmol/script/ScriptEvaluator.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/script/ScriptEvaluator.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -23,7 +23,6 @@ */ package org.jmol.script; -import java.awt.Image; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; @@ -5552,7 +5551,7 @@ private void setCursorWait(boolean TF) { if (!isSyntaxCheck) - viewer.setCursor(TF ? Viewer.CURSOR_WAIT : Viewer.CURSOR_DEFAULT); + viewer.setCursor(TF ? JmolConstants.CURSOR_WAIT : JmolConstants.CURSOR_DEFAULT); } private void processShapeCommand(int tok) throws ScriptException { @@ -7394,7 +7393,7 @@ if (isSyntaxCheck) return; String[] retFileName = new String[1]; - Image image = null; + Object image = null; if (!file.equalsIgnoreCase("none") && file.length() > 0) image = viewer.getFileAsImage(file, retFileName); if (image == null) @@ -8277,7 +8276,7 @@ if (viewer.getEchoStateActive()) { if (isImage) { String[] retFileName = new String[1]; - Image image = viewer.getFileAsImage(text, retFileName); + Object image = viewer.getFileAsImage(text, retFileName); if (image == null) { text = retFileName[0]; } else { Modified: branches/android/Jmol/src/org/jmol/shape/Object2dShape.java =================================================================== --- branches/android/Jmol/src/org/jmol/shape/Object2dShape.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/shape/Object2dShape.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -9,7 +9,7 @@ import org.jmol.util.Logger; import org.jmol.util.Point3fi; import org.jmol.util.TextFormat; -import org.jmol.viewer.Viewer; +import org.jmol.viewer.JmolConstants; public class Object2dShape extends Shape { @@ -240,13 +240,13 @@ if (s != null) { haveScripts = true; if (obj.checkObjectClicked(x, y, bsVisible)) { - viewer.setCursor(Viewer.CURSOR_HAND); + viewer.setCursor(JmolConstants.CURSOR_HAND); return true; } } } if (haveScripts) - viewer.setCursor(Viewer.CURSOR_DEFAULT); + viewer.setCursor(JmolConstants.CURSOR_DEFAULT); return false; } Modified: branches/android/Jmol/src/org/jmol/util/JpegEncoder.java =================================================================== --- branches/android/Jmol/src/org/jmol/util/JpegEncoder.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/util/JpegEncoder.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -32,7 +32,6 @@ package org.jmol.util; -import java.awt.AWTException; import java.awt.Frame; import java.awt.Image; import java.awt.MediaTracker; @@ -1299,7 +1298,7 @@ { try { - throw new AWTException("Grabber returned false: " + grabber.status()); + throw new Exception("Grabber returned false: " + grabber.status()); } catch (Exception e) {} } Modified: branches/android/Jmol/src/org/jmol/viewer/ActionManager.java =================================================================== --- branches/android/Jmol/src/org/jmol/viewer/ActionManager.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/viewer/ActionManager.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -639,7 +639,7 @@ moved.modifiers &= ~Binding.CTRL; } if (moved.modifiers == 0) - viewer.setCursor(Viewer.CURSOR_DEFAULT); + viewer.setCursor(JmolConstants.CURSOR_DEFAULT); if (!viewer.getNavigationMode()) return; //if (viewer.getBooleanProperty("showKeyStrokes", false)) @@ -678,8 +678,8 @@ else if (isZoomArea(x)) checkMotionRotateZoom(Binding.getMouseAction(1, Binding.LEFT), 0, 0, 0, false); - else if (viewer.getCursor() == Viewer.CURSOR_ZOOM)//if (dragSelectedMode) - viewer.setCursor(Viewer.CURSOR_DEFAULT); + else if (viewer.getCursor() == JmolConstants.CURSOR_ZOOM)//if (dragSelectedMode) + viewer.setCursor(JmolConstants.CURSOR_DEFAULT); return; case Binding.WHEELED: //System.out.println("actionmanager mouseWheel " + mods); @@ -815,7 +815,7 @@ boolean dragRelease = !pressed.check(x, y, modifiers, time, Long.MAX_VALUE); viewer.setInMotion(false); - viewer.setCursor(Viewer.CURSOR_DEFAULT); + viewer.setCursor(JmolConstants.CURSOR_DEFAULT); action = Binding.getMouseAction(pressedCount, modifiers); //System.out.println("actionmanager mouseReleased " + mods + " " + action); dragGesture.add(action, x, y, time); @@ -1005,7 +1005,7 @@ if (dragAtomIndex >= 0) { switch (atomPickingMode) { case PICKING_DRAG_SELECTED: - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); if (isBound(action, ACTION_rotateSelected) && viewer.allowRotateSelected()) { viewer.rotateSelected(getDegrees(deltaX, 0), getDegrees(deltaY, 1), null); @@ -1022,7 +1022,7 @@ case PICKING_DRAG_MINIMIZE_MOLECULE: if (dragGesture.getPointCount() == 1) viewer.undoMoveAction(dragAtomIndex, AtomCollection.TAINT_COORD, true); - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); if (isBound(action, ACTION_rotateSelected)) { bs = viewer.getAtomBits(Token.molecule, BitSetUtil .setBit(dragAtomIndex)); @@ -1099,7 +1099,7 @@ viewer.undoMoveAction(iatom, AtomCollection.TAINT_COORD, true); else viewer.moveSelected(Integer.MAX_VALUE, 0, Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE, null, false, false); - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); if (isBound(action, ACTION_rotateSelected) && viewer.allowRotateSelected()) viewer.rotateSelected(getDegrees(deltaX, 0), getDegrees(deltaY, 1), null); @@ -1113,7 +1113,7 @@ && (isBound(action, ACTION_dragDrawObject) || isBound(action, ACTION_dragDrawPoint)) || labelMode && isBound(action, ACTION_dragLabel)) { - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); viewer.checkObjectDragged(dragged.x, dragged.y, x, y, action); return; } @@ -1137,11 +1137,11 @@ if (isBound(action, ACTION_rotateZorZoom)) { if (Math.abs(deltaY) > 5 * Math.abs(deltaX)) { // if (deltaY < 0 && deltaX > deltaY || deltaY > 0 && deltaX < deltaY) - checkMotion(Viewer.CURSOR_ZOOM); + checkMotion(JmolConstants.CURSOR_ZOOM); viewer.zoomBy(deltaY); } else if (Math.abs(deltaX) > 5 * Math.abs(deltaY)) { // if (deltaX < 0 && deltaY > deltaX || deltaX > 0 && deltaY < deltaX) - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); viewer.rotateZBy(-deltaX, Integer.MAX_VALUE, Integer.MAX_VALUE); } return; @@ -1149,7 +1149,7 @@ zoomByFactor(deltaY, Integer.MAX_VALUE, Integer.MAX_VALUE); return; } else if (isBound(action, ACTION_rotateZ)) { - checkMotion(Viewer.CURSOR_MOVE); + checkMotion(JmolConstants.CURSOR_MOVE); viewer.rotateZBy(-deltaX, Integer.MAX_VALUE, Integer.MAX_VALUE); return; } @@ -1180,7 +1180,7 @@ protected void zoomByFactor(int dz, int x, int y) { if (dz == 0) return; - checkMotion(Viewer.CURSOR_ZOOM); + checkMotion(JmolConstants.CURSOR_ZOOM); viewer.zoomByFactor((float) Math.pow(mouseWheelFactor, dz), x, y); viewer.setInMotion(false); } @@ -1230,9 +1230,9 @@ if (!isSlideZoom && !isRotateXY && !isRotateZorZoom) return false; boolean isZoom = (isRotateZorZoom && (deltaX == 0 || Math.abs(deltaY) > 5 * Math.abs(deltaX))); - int cursor = (isZoom || isZoomArea(moved.x) || isBound(action, ACTION_wheelZoom) ? Viewer.CURSOR_ZOOM - : isRotateXY || isRotateZorZoom ? Viewer.CURSOR_MOVE : Viewer.CURSOR_DEFAULT); - if (viewer.getCursor() != Viewer.CURSOR_WAIT) + int cursor = (isZoom || isZoomArea(moved.x) || isBound(action, ACTION_wheelZoom) ? JmolConstants.CURSOR_ZOOM + : isRotateXY || isRotateZorZoom ? JmolConstants.CURSOR_MOVE : JmolConstants.CURSOR_DEFAULT); + if (viewer.getCursor() != JmolConstants.CURSOR_WAIT) viewer.setCursor(cursor); if (inMotion) viewer.setInMotion(true); @@ -1390,7 +1390,7 @@ } protected void checkMotion(int cursor) { - if (viewer.getCursor() != Viewer.CURSOR_WAIT) + if (viewer.getCursor() != JmolConstants.CURSOR_WAIT) viewer.setCursor(cursor); viewer.setInMotion(true); } @@ -1411,7 +1411,7 @@ private void enterMeasurementMode(int iAtom) { viewer.setPicked(-1); viewer.setPicked(iAtom); - viewer.setCursor(Viewer.CURSOR_CROSSHAIR); + viewer.setCursor(JmolConstants.CURSOR_CROSSHAIR); viewer.setPendingMeasurement(measurementPending = new MeasurementPending( viewer.getModelSet())); } @@ -1420,7 +1420,7 @@ if (measurementPending == null) return; viewer.setPendingMeasurement(measurementPending = null); - viewer.setCursor(Viewer.CURSOR_DEFAULT); + viewer.setCursor(JmolConstants.CURSOR_DEFAULT); } private void toggleMeasurement() { Modified: branches/android/Jmol/src/org/jmol/viewer/FileManager.java =================================================================== --- branches/android/Jmol/src/org/jmol/viewer/FileManager.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/viewer/FileManager.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -33,14 +33,13 @@ import org.jmol.api.JmolFilesReaderInterface; import org.jmol.api.JmolViewer; +import org.jmol.awt.Event; +import org.jmol.awt.Image; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.net.MalformedURLException; -import java.awt.Image; -import java.awt.MediaTracker; -import java.awt.Toolkit; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.InputStream; @@ -760,7 +759,7 @@ } } - Image getFileAsImage(String name, String[] retFileNameOrError) { + Object getFileAsImage(String name, String[] retFileNameOrError) { if (name == null) { retFileNameOrError[0] = ""; return null; @@ -770,7 +769,7 @@ retFileNameOrError[0] = "cannot read file name: " + name; return null; } - Image image = null; + Object image = null; //try { String fullPathName = names[0].replace('\\', '/'); if (fullPathName.indexOf("|") > 0) { @@ -779,21 +778,19 @@ retFileNameOrError[0] = "" + ret; return null; } - image = Toolkit.getDefaultToolkit().createImage((byte[]) ret); + image = Event.createImage(ret); } else if (urlTypeIndex(fullPathName) >= 0) { try { - image = Toolkit.getDefaultToolkit().createImage(new URL(fullPathName)); + image = Event.createImage(new URL(fullPathName)); } catch (Exception e) { retFileNameOrError[0] = "bad URL: " + fullPathName; return null; } } else { - image = Toolkit.getDefaultToolkit().createImage(fullPathName); + image = Event.createImage(fullPathName); } try { - MediaTracker mediaTracker = new MediaTracker(viewer.getDisplay()); - mediaTracker.addImage(image, 0); - mediaTracker.waitForID(0); + Image.waitForDisplay(viewer.getDisplay(), image); /* SUN but here for malformed URL - can't trap Uncaught error fetching image: java.lang.NullPointerException @@ -810,7 +807,7 @@ retFileNameOrError[0] = e.getMessage() + " opening " + fullPathName; return null; } - if (image.getWidth(null) < 1) { + if (Image.getWidth(image) < 1) { retFileNameOrError[0] = "invalid or missing image " + fullPathName; return null; } Modified: branches/android/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- branches/android/Jmol/src/org/jmol/viewer/JmolConstants.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/viewer/JmolConstants.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -1474,6 +1474,14 @@ public final static int ATOM_IN_FRAME = 1; public final static int ATOM_SLABBED = 2; // reserved for future use + + + public final static int CURSOR_DEFAULT = 0; + public final static int CURSOR_HAND = 1; + public final static int CURSOR_CROSSHAIR = 2; + public final static int CURSOR_MOVE = 3; + public final static int CURSOR_WAIT = 4; + public final static int CURSOR_ZOOM = 5; public final static int getShapeVisibilityFlag(int shapeID) { return (4 << shapeID); Modified: branches/android/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- branches/android/Jmol/src/org/jmol/viewer/Viewer.java 2011-09-26 14:56:34 UTC (rev 16126) +++ branches/android/Jmol/src/org/jmol/viewer/Viewer.java 2011-09-26 14:58:17 UTC (rev 16127) @@ -66,6 +66,7 @@ import org.jmol.atomdata.AtomData; import org.jmol.atomdata.AtomDataServer; import org.jmol.atomdata.RadiusData; +import org.jmol.awt.Event; import org.jmol.constant.EnumAnimationMode; import org.jmol.constant.EnumAxesMode; import org.jmol.constant.EnumStructure; @@ -95,15 +96,10 @@ import org.jmol.viewer.binding.Binding; import java.awt.Container; -import java.awt.Cursor; import java.awt.Graphics; import java.awt.Image; import java.awt.Dimension; -import java.awt.MediaTracker; -import java.awt.Point; -import java.awt.Toolkit; import java.awt.image.BufferedImage; -import java.awt.image.MemoryImageSource; import java.util.ArrayList; import java.util.Date; import java.util.Hashtable; @@ -318,14 +314,8 @@ selectionManager = new SelectionManager(this); if (haveDisplay) { if (multiTouch) { - if (commandOptions.indexOf("-multitouch-sparshui-simulated") < 0) { - int[] pixels = new int[1]; - Image image = Toolkit.getDefaultToolkit().createImage( - new MemoryImageSource(1, 1, pixels, 0, 1)); - Cursor transparentCursor = Toolkit.getDefaultToolkit() - .createCustomCursor(image, new Point(0, 0), "invisibleCursor"); - display.setCursor(transparentCursor); - } + if (commandOptions.indexOf("-multitouch-sparshui-simulated") < 0) + Event.setTransparentCursor(display); actionManager = (ActionManager) Interface .getOptionInterface("multitouch.ActionManagerMT"); } else { @@ -1439,7 +1429,7 @@ global.setParameterValue(name + "Color", Escape.escapeColor(argb)); } - public void setBackgroundImage(String fileName, Image image) { + public void setBackgroundImage(String fileName, Object image) { global.backgroundImageFileName = fileName; g3d.setBackgroundImage(image); } @@ -4863,15 +4853,8 @@ setTainted(true); } - public final static int CURSOR_DEFAULT = 0; - public final static int CURSOR_HAND = 1; - public final static int CURSOR_CROSSHAIR = 2; - public final static int CURSOR_MOVE = 3; - public final static int CURSOR_WAIT = 4; - public final static int CURSOR_ZOOM = 5; + private int currentCursor = JmolConstants.CURSOR_DEFAULT; - private int currentCursor = CURSOR_DEFAULT; - public int getCursor() { return currentCursor; } @@ -4879,28 +4862,7 @@ public void setCursor(int cursor) { if (currentCursor == cursor || multiTouch || !haveDisplay) return; - int c; - switch (currentCursor = cursor) { - case CURSOR_HAND: - c = Cursor.HAND_CURSOR; - break; - case CURSOR_MOVE: - c = Cursor.MOVE_CURSOR; - break; - case CURSOR_ZOOM: - c = Cursor.N_RESIZE_CURSOR; - break; - case CURSOR_CROSSHAIR: - c = Cursor.CROSSHAIR_CURSOR; - break; - case CURSOR_WAIT: - c = Cursor.WAIT_CURSOR; - break; - default: - display.setCursor(Cursor.getDefaultCursor()); - return; - } - display.setCursor(Cursor.getPredefinedCursor(c)); + Event.setCursor(currentCursor = cursor, display); } void setPickingMode(String strMode, int pickingMode) { @@ -8912,22 +8874,12 @@ return 0; } - public Image getFileAsImage(String pathName, String[] retFileNameOrError) { + public Object getFileAsImage(String pathName, String[] retFileNameOrError) { if (!haveDisplay) { retFileNameOrError[0] = "no display"; return null; } - Image image = fileManager.getFileAsImage(pathName, retFileNameOrError); - if (image == null) - return null; - MediaTracker tracker = new MediaTracker(display); - tracker.addImage(image, 0); - try { - tracker.waitForID(0); - } catch (InterruptedException e) { - // Got to do something? - } - return image; + return fileManager.getFileAsImage(pathName, retFileNameOrError); } public String cd(String dir) { @@ -8998,7 +8950,7 @@ undoClear(); if (Logger.getLogLevel() == 0) Logger.setLogLevel(Logger.LEVEL_INFO); - setCursor(Viewer.CURSOR_DEFAULT); + setCursor(JmolConstants.CURSOR_DEFAULT); setBooleanProperty("refreshing", true); Logger.error("viewer handling error condition: " + er); notifyError("Error", "doClear=" + doClear + "; " + er, "" + er); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |