From: <ha...@us...> - 2013-10-31 21:49:44
|
Revision: 18886 http://sourceforge.net/p/jmol/code/18886 Author: hansonr Date: 2013-10-31 21:49:40 +0000 (Thu, 31 Oct 2013) Log Message: ----------- ___JmolVersion="13.2.8_dev_2013.10.31" bug fix: following Java update, adding proper path check for local signed applet Modified Paths: -------------- branches/v13_2/Jmol/src/org/jmol/api/JmolMouseInterface.java branches/v13_2/Jmol/src/org/jmol/api/JmolStateCreator.java branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java branches/v13_2/Jmol/src/org/jmol/awt/Mouse.java branches/v13_2/Jmol/src/org/jmol/export/JmolFileDropper.java branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties branches/v13_2/Jmol/src/org/jmol/viewer/StateCreator.java branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java branches/v13_2/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java Added Paths: ----------- branches/v13_2/Jmol/src/org/jmol/api/JSmolInterface.java Added: branches/v13_2/Jmol/src/org/jmol/api/JSmolInterface.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/api/JSmolInterface.java (rev 0) +++ branches/v13_2/Jmol/src/org/jmol/api/JSmolInterface.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -0,0 +1,25 @@ +package org.jmol.api; + +public interface JSmolInterface { + + int cacheFileByName(String fileName, boolean isAdd); + + void cachePut(String key, Object data); + + Object getApplet(); + + boolean processMouseEvent(int id, int x, int y, int modifiers, long time); + + void openFileAsyncSpecial(String fileName, int flags); + + void processTwoPointGesture(float[][][] touches); + + void setScreenDimension(int width, int height); + + void startHoverWatcher(boolean enable); + + void updateJS(int width, int height); + + +} + Modified: branches/v13_2/Jmol/src/org/jmol/api/JmolMouseInterface.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/api/JmolMouseInterface.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/api/JmolMouseInterface.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -7,5 +7,8 @@ void clear(); void dispose(); + + void processTwoPointGesture(float[][][] touches); + } Modified: branches/v13_2/Jmol/src/org/jmol/api/JmolStateCreator.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/api/JmolStateCreator.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/api/JmolStateCreator.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -94,7 +94,7 @@ OutputStream getOutputStream(String localName, String[] fullPath); - void openFileAsync(String fileName, boolean pdbCartoons); + void openFileAsync(String fileName, int flags); void showEditor(String[] file_text); Modified: branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/api/JmolViewer.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -49,7 +49,7 @@ * **/ -abstract public class JmolViewer { +abstract public class JmolViewer implements JSmolInterface { // several; methods were deprecated and removed in 13.1.15. All are accessible via "getXxxx" methods: @@ -511,9 +511,9 @@ abstract public JmolAdapter getModelAdapter(); - abstract public void openFileAsyncPDB(String fileName, boolean pdbCartoons); + abstract public void openFileAsyncSpecial(String fileName, int flags); public void openFileAsync(String fileName) { - openFileAsyncPDB(fileName, false); + openFileAsyncSpecial(fileName, 0); } abstract public Object getFileAsBytes(String fullPathName, OutputStringBuilder osb); @@ -534,12 +534,12 @@ abstract public void processMultitouchEvent(int groupID, int eventType, int touchID, int iData, P3 pt, long time); - abstract public boolean handleOldJvm10Event(int id, int x, int y, int modifiers, + abstract public boolean processMouseEvent(int id, int x, int y, int modifiers, long when); public void mouseEvent(int id, int x, int y, int modifiers, long when) { - handleOldJvm10Event(id, x, y, modifiers, when); + processMouseEvent(id, x, y, modifiers, when); } public ApiPlatform apiPlatform; // used in Viewer and JmolViewer Modified: branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/applet/Jmol.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -267,29 +267,31 @@ } private void initWindows() { - String options = "-applet"; + Map<String, Object> info = new Hashtable<String, Object>(); + addValue(info, null, "applet", Boolean.TRUE); isSigned = getBooleanValue("signed", false) || appletWrapper.isSigned(); if (isSigned) - options += "-signed"; + addValue(info, null, "signedApplet", Boolean.TRUE); if (getBooleanValue("useCommandThread", isSigned)) - options += "-threaded"; + addValue(info, null, "useCommandThread", Boolean.TRUE); + String options = ""; if (isSigned && getBooleanValue("multiTouchSparshUI-simulated", false)) options += "-multitouch-sparshui-simulated"; else if (isSigned && getBooleanValue("multiTouchSparshUI", false)) // true for testing JmolAppletSignedMT.jar options += "-multitouch-sparshui"; - String s = getValue("MaximumSize", null); - if (s != null) - options += "-maximumSize " + s; - // note, -appletProxy must be the LAST item added - s = getValue("JmolAppletProxy", null); - if (s != null) - options += "-appletProxy " + s; + addValue(info, null, "options", options); + addValue(info, null, "display", appletWrapper); + addValue(info, null, "statusListener", new MyStatusListener()); + addValue(info, null, "fullName", fullName); + addValue(info, null, "documentBase", appletWrapper.getDocumentBase()); + addValue(info, null, "codeBase", appletWrapper.getCodeBase()); if (getBooleanValue("noScripting", false)) - options += "-noScripting "; - - viewer = JmolViewer.allocateViewer(appletWrapper, null, fullName, - appletWrapper.getDocumentBase(), appletWrapper.getCodeBase(), options, - new MyStatusListener()); + addValue(info, null, "noScripting", Boolean.TRUE); + + addValue(info, "MaximumSize", "maximumSize", null); + addValue(info, "JmolAppletProxy", "appletProxy", null); + addValue(info, "documentLocation", null, null); + viewer = new Viewer(info); String menuFile = getParameter("menuFile"); if (menuFile != null) viewer.getProperty("DATA_API", "setMenu", viewer @@ -338,6 +340,14 @@ } } + private void addValue(Map<String, Object> info, String key, String putKey, + Object value) { + if (key != null) + value = getValue(key, null); + if (value != null) + info.put(putKey == null ? key : putKey, value); + } + private void initApplication() { viewer.pushHoldRepaint(); { @@ -597,7 +607,7 @@ public boolean handleEvent(Event e) { if (viewer == null) return false; - return viewer.handleOldJvm10Event(e.id, e.x, e.y, e.modifiers, e.when); + return viewer.processMouseEvent(e.id, e.x, e.y, e.modifiers, e.when); } // code to record last and average times Modified: branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/appletjs/Jmol.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -291,7 +291,7 @@ public boolean handleEvent(Event e) { if (viewer == null) return false; - return viewer.handleOldJvm10Event(e.id, e.x, e.y, e.modifiers, e.when); + return viewer.processMouseEvent(e.id, e.x, e.y, e.modifiers, e.when); } private String scriptProcessor(String script, String statusParams, Modified: branches/v13_2/Jmol/src/org/jmol/awt/Mouse.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/awt/Mouse.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/awt/Mouse.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -359,6 +359,10 @@ return ((modifiers & Binding.BUTTON_MASK) == 0) ? (modifiers | Binding.LEFT) : modifiers; } + + public void processTwoPointGesture(float[][][] touches) { + // n/a JavaScript only + } private int xWhenPressed, yWhenPressed, modifiersWhenPressed10; Modified: branches/v13_2/Jmol/src/org/jmol/export/JmolFileDropper.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/export/JmolFileDropper.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/export/JmolFileDropper.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -99,7 +99,7 @@ // ignore } } - viewer.openFileAsyncPDB(fname, true); + viewer.openFileAsyncSpecial(fname, 1); } private void loadFiles(List<File> fileList) { Modified: branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/viewer/Jmol.properties 2013-10-31 21:49:40 UTC (rev 18886) @@ -9,8 +9,9 @@ # The quotes above look odd for a parameter file, but they are # important for the JavaScript version of Jmol. -___JmolVersion="13.2.8_dev_2013.10.29" +___JmolVersion="13.2.8_dev_2013.10.31" +bug fix: following Java update, adding proper path check for local signed applet bug fix: {xxx}.property_xx not saved in state (broken 8/7/2013 rev 18518) bug fix: write <type> <filename> fails bug fix: applet scriptWait() method broken Modified: branches/v13_2/Jmol/src/org/jmol/viewer/StateCreator.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/viewer/StateCreator.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/viewer/StateCreator.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -2416,7 +2416,8 @@ } } - public void openFileAsync(String fileName, boolean pdbCartoons) { + public void openFileAsync(String fileName, int flags) { + boolean pdbCartoons = (flags == 1); fileName = fileName.trim(); boolean allowScript = (!fileName.startsWith("\t")); if (!allowScript) Modified: branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/jmol/viewer/Viewer.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -236,6 +236,10 @@ GData gdata; Object applet; // j2s only + + public Object getApplet() { + return applet; + } ActionManager actionManager; AnimationManager animationManager; @@ -524,6 +528,13 @@ setJmolStatusListener(statusListener); if (isApplet) { Logger.info("viewerOptions: \n" + Escape.escapeMap(viewerOptions)); + // Java only, because Signed applet can't find correct path when local. + String path = (String) viewerOptions.get("documentLocation"); + if (!isJS && path != null && path.startsWith("file:/")) { + path = path.substring(0, path.substring(0, (path + "?").indexOf("?")).lastIndexOf("/")); + Logger.info("setting current directory to " + path); + cd(path); + } jsDocumentBase = appletDocumentBase; i = jsDocumentBase.indexOf("#"); if (i >= 0) @@ -683,7 +694,7 @@ } @Override - public boolean handleOldJvm10Event(int id, int x, int y, int modifiers, + public boolean processMouseEvent(int id, int x, int y, int modifiers, long time) { // also used for JavaScript from jQuery return mouse.handleOldJvm10Event(id, x, y, modifiers, time); @@ -1980,8 +1991,8 @@ * */ @Override - public void openFileAsyncPDB(String fileName, boolean pdbCartoons) { - getStateCreator().openFileAsync(fileName, pdbCartoons); + public void openFileAsyncSpecial(String fileName, int flags) { + getStateCreator().openFileAsync(fileName, flags); } /** @@ -10405,4 +10416,9 @@ return getStateCreator().getLogFileName(); } + public void processTwoPointGesture(float[][][] touches) { + mouse.processTwoPointGesture(touches); + } + + } Modified: branches/v13_2/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java =================================================================== --- branches/v13_2/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java 2013-10-31 21:47:57 UTC (rev 18885) +++ branches/v13_2/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java 2013-10-31 21:49:40 UTC (rev 18886) @@ -1308,9 +1308,9 @@ if (selection == null || selection.length() == 0) return; if (selection.endsWith(" (*)")) - viewer.openFileAsyncPDB(selection.substring(0, selection.length() - 4), true); + viewer.openFileAsyncSpecial(selection.substring(0, selection.length() - 4), 1); else - viewer.openFileAsyncPDB(selection, false); + viewer.openFileAsyncSpecial(selection, 0); } } @@ -1480,7 +1480,7 @@ if (fileName.startsWith("load append")) viewer.scriptWait(fileName); else - viewer.openFileAsyncPDB(fileName, pdbCartoons); + viewer.openFileAsyncSpecial(fileName, pdbCartoons ? 1 : 0); } static final String chemFileProperty = "chemFile"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |