From: <ha...@us...> - 2008-09-12 13:05:19
|
Revision: 9886 http://jmol.svn.sourceforge.net/jmol/?rev=9886&view=rev Author: hansonr Date: 2008-09-12 13:05:13 +0000 (Fri, 12 Sep 2008) Log Message: ----------- version=11.6.RC15_dev # new feature: signed applet/application load ?xxx uses load dialog Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolImageTyperInterface.java trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/applet/Jvm12.java trunk/Jmol/src/org/jmol/export/image/ImageTyper.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/FileManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java Modified: trunk/Jmol/src/org/jmol/api/JmolImageTyperInterface.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolImageTyperInterface.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/api/JmolImageTyperInterface.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -32,6 +32,6 @@ */ public abstract int getQuality(String sType); - public abstract File setSelectedFile(Component awtComponent, File file); + public abstract File showDialog(Component awtComponent, File file); } Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -870,6 +870,13 @@ case JmolConstants.CALLBACK_LOADSTRUCT: String errorMsg = (String) data[4]; //data[5] = (String) null; // don't pass reference to clientFile reference + if (strInfo != null && strInfo.startsWith("\t")) { + if (jvm12 != null && isSigned) + jvm12.openFileWithDialog(strInfo.substring(1)); + else + showStatusAndConsole(GT._("This applet cannot open file dialogs."), true); + return; + } if (errorMsg != null) { showStatusAndConsole((errorMsg.indexOf("NOTE:") >= 0 ? "" : GT ._("File Error:")) @@ -1060,8 +1067,7 @@ return GT._("File creation failed."); } } else if (quality != Integer.MAX_VALUE) { - return GT - ._( + return GT._( "File creation by this applet is not allowed. For Base64 JPEG format, use {0}.", "jmolGetPropertyAsString('image')"); } Modified: trunk/Jmol/src/org/jmol/applet/Jvm12.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jvm12.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/applet/Jvm12.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -31,6 +31,7 @@ import javax.swing.JFileChooser; import org.jmol.util.Logger; +import org.jmol.viewer.FileManager; class Jvm12 { @@ -95,22 +96,40 @@ return console.getText(); } - private JFileChooser exportChooser; - final private static String[] imageChoices = { "JPEG", "PNG", "GIF", "PPM", "SPT" }; - final private static String[] imageExtensions = { "jpg", "png", "gif", "PPM", "spt" }; + private JFileChooser exportChooser, openChooser; + final private static String[] imageChoices = { "JPEG", "PNG", "GIF", "PPM" }; + final private static String[] imageExtensions = { "jpg", "png", "gif", "PPM" }; + void openFileWithDialog(String fileName) { + if (openChooser == null) { + openChooser = new JFileChooser(); + } + if (fileName != null && fileName.length() > 0) + openChooser.setSelectedFile(new File(fileName)); + if (fileName != null && fileName.indexOf(":") < 0) + openChooser.setCurrentDirectory(FileManager.getLocalDirectory(viewer)); + if (openChooser.showOpenDialog(awtComponent) != JFileChooser.APPROVE_OPTION) + return; + File file = openChooser.getSelectedFile(); + if (file == null) + return; + viewer.setStringProperty("currentLocalPath", file.getParent()); + viewer.openFile("file:///" + file.getAbsolutePath().replace('\\','/')); + } + + String createImage(String fileName, String type, Object text_or_bytes, int quality) { File file = null; - String pathName; if (exportChooser == null) exportChooser = new JFileChooser(); + exportChooser.setCurrentDirectory(FileManager.getLocalDirectory(viewer)); JmolImageTyperInterface it = (JmolImageTyperInterface) Interface .getOptionInterface("export.image.ImageTyper"); if (fileName == null) { fileName = viewer.getModelSetFileName(); - pathName = viewer.getModelSetPathName(); + String pathName = exportChooser.getCurrentDirectory().getPath(); it.createPanel(exportChooser, imageChoices, imageExtensions, type); - if ((fileName != null) && (pathName != null)) { + if (fileName != null && pathName != null) { int extensionStart = fileName.lastIndexOf('.'); if (extensionStart != -1) { fileName = fileName.substring(0, extensionStart) + "." @@ -129,8 +148,9 @@ file = new File(fileName); } - if ((file = it.setSelectedFile(awtComponent, file)) == null) + if ((file = it.showDialog(awtComponent, file)) == null) return null; + viewer.setStringProperty("currentLocalPath",file.getParent()); JmolImageCreatorInterface c = (JmolImageCreatorInterface) Interface .getOptionInterface("export.image.ImageCreator"); c.setViewer(viewer); Modified: trunk/Jmol/src/org/jmol/export/image/ImageTyper.java =================================================================== --- trunk/Jmol/src/org/jmol/export/image/ImageTyper.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/export/image/ImageTyper.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -197,7 +197,7 @@ return (opt == 0); } - public File setSelectedFile(Component c, File file) { + public File showDialog(Component c, File file) { while (true) { if (fileChooser.showSaveDialog(c) != JFileChooser.APPROVE_OPTION) return null; Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -4254,14 +4254,18 @@ int i = 1; // ignore optional file format // String filename = ""; - String modelName = "fileset"; + String modelName = null; if (statementLength == 1) { i = 0; } else { - if (tokAt(1) == Token.identifier - || parameterAsString(1).equals("fileset")) { + modelName = parameterAsString(1); + if (modelName.startsWith("?")) { + if (!isSyntaxCheck) + viewer.openFileWithDialog(modelName.substring(1)); + return; + } + if (tokAt(1) == Token.identifier || modelName.equals("fileset")) { // - modelName = parameterAsString(1); if (modelName.equals("menu")) { checkLength(3); if (!isSyntaxCheck) @@ -4273,6 +4277,8 @@ isAppend = (modelName.equalsIgnoreCase("append")); if (modelName.equalsIgnoreCase("trajectory")) params[0] = Integer.MIN_VALUE; + } else { + modelName = "fileset"; } if (getToken(i).tok != Token.string) error(ERROR_filenameExpected); @@ -4293,8 +4299,8 @@ loadScript.append(" "); if (!filename.equals("string") && !filename.equals("string[]")) loadScript.append("/*file*/"); - loadScript.append( - Escape.escape(modelName = (String) htParams.get("fullPathName"))); + loadScript.append(Escape.escape(modelName = (String) htParams + .get("fullPathName"))); } } else if (getToken(i + 1).tok == Token.leftbrace || theTok == Token.point3f || theTok == Token.integer @@ -4399,16 +4405,14 @@ htParams.put("filter", filter); sOptions += " FILTER " + Escape.escape(filter); } - - - + if (!isSyntaxCheck || isScriptCheck && fileOpenCheck) { viewer.openFile(filename, htParams, null, isAppend); loadScript.append(" "); if (!filename.equals("string") && !filename.equals("string[]")) loadScript.append("/*file*/"); - loadScript.append( - Escape.escape(modelName = (String) htParams.get("fullPathName"))); + loadScript.append(Escape.escape(modelName = (String) htParams + .get("fullPathName"))); loadScript.append(sOptions); } } else { @@ -4442,7 +4446,7 @@ script(Token.script); return; } - evalError(errMsg); + evalError(errMsg); } if (isAppend && (appendNew || nFiles > 1)) { Modified: trunk/Jmol/src/org/jmol/viewer/FileManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/FileManager.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/viewer/FileManager.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -31,6 +31,7 @@ import org.jmol.api.JmolAdapter; import org.jmol.api.JmolFileReaderInterface; +import org.jmol.api.JmolViewer; import java.net.URL; import java.net.URLConnection; @@ -497,8 +498,17 @@ this.appletProxy = (appletProxy == null || appletProxy.length() == 0 ? null : appletProxy); } + private final static int URL_LOCAL = 3; private final static String[] urlPrefixes = {"http:", "https:", "ftp:", "file:"}; - + private static int urlTypeIndex(String name) { + for (int i = 0; i < urlPrefixes.length; ++i) { + if (name.startsWith(urlPrefixes[i])) { + return i; + } + } + return -1; + } + private void setNames(String[] names) { fullPathName = names[0]; fileName = names[1]; @@ -507,9 +517,12 @@ private String[] classifyName(String name) { if (name == null) return null; - String[] names = new String[2]; + File file = null; + URL url = null; + String[] names = null; if (name.indexOf("=") == 0) - name = TextFormat.formatString(viewer.getLoadFormat(), "FILE", name.substring(1)); + name = TextFormat.formatString(viewer.getLoadFormat(), "FILE", name + .substring(1)); String defaultDirectory = viewer.getDefaultDirectory(); if (name.indexOf(":") < 0) name = addDirectory(defaultDirectory, name); @@ -518,46 +531,44 @@ try { if (name.indexOf(":\\") == 1 || name.indexOf(":/") == 1) name = "file:///" + name; - //System.out.println("filemanager name " + name); - //System.out.println("filemanager adb " + appletDocumentBase); - URL url = new URL(appletDocumentBase, name); - names[0] = url.toString(); - // we add one to lastIndexOf(), so don't worry about -1 return value - names[1] = names[0].substring(names[0].lastIndexOf('/') + 1, - names[0].length()); - //System.out.println("filemanager 0 " + names[0]); - //System.out.println("filemanager 1 " + names[1]); + url = new URL(appletDocumentBase, name); } catch (MalformedURLException e) { openErrorMessage = e.getMessage(); + return null; } - return names; - } - // This code is for the app - int i = urlTypeIndex(name); - if (i >= 0) { - try { - URL url = new URL(name); - names[0] = url.toString(); - names[1] = names[0].substring(names[0].lastIndexOf('/') + 1, - names[0].length()); - } catch (MalformedURLException e) { - openErrorMessage = e.getMessage(); + } else { + // This code is for the app + if (urlTypeIndex(name) >= 0) { + try { + url = new URL(name); + } catch (MalformedURLException e) { + openErrorMessage = e.getMessage(); + return null; + } + } else { + file = new File(name); + names = new String[]{file.getAbsolutePath(), file.getName()}; } - return names; } - File file = new File(name); - names[0] = file.getAbsolutePath(); - names[1] = file.getName(); + if (url != null) { + names = new String[2]; + names[0] = url.toString(); + names[1] = names[0].substring(names[0].lastIndexOf('/') + 1); + } + if (file != null || urlTypeIndex(names[0]) == URL_LOCAL) { + String path = (file == null ? TextFormat.trim(names[0].substring(5), "/") : names[0]); + path = path.substring(0, path.length() - names[1].length() - 1); + viewer.setStringProperty("currentLocalPath", path); + } return names; } - private static int urlTypeIndex(String name) { - for (int i = 0; i < urlPrefixes.length; ++i) { - if (name.startsWith(urlPrefixes[i])) { - return i; - } - } - return -1; + public static File getLocalDirectory(JmolViewer viewer) { + String localDir = (String) viewer.getParameter("currentLocalPath"); + if (localDir.length() == 0) + return null; + File f = new File(localDir); + return f.isDirectory() ? f : f.getParentFile(); } private String addDirectory(String defaultDirectory, String name) { Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-09-12 13:05:13 UTC (rev 9886) @@ -3,6 +3,7 @@ version=11.6.RC15_dev +# new feature: signed applet/application load ?xxx uses load dialog # ----------------------------------------------------------------------------- #version=11.6.RC14 Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -169,13 +169,16 @@ } synchronized void setStatusFileLoaded(String fullPathName, String fileName, - String modelName, String errorMsg, int ptLoad) { - setStatusChanged("fileLoaded", ptLoad, fullPathName, false); - if (errorMsg != null) - setStatusChanged("fileLoadError", ptLoad, errorMsg, false); - if (jmolStatusListener != null && (ptLoad <=0 || ptLoad == 3)) - jmolStatusListener.notifyCallback(JmolConstants.CALLBACK_LOADSTRUCT, - new Object[] {"", fullPathName, fileName, modelName, errorMsg} ); + String modelName, String errorMsg, + int ptLoad) { + if (fullPathName == null || !fullPathName.startsWith("\t")) { + setStatusChanged("fileLoaded", ptLoad, fullPathName, false); + if (errorMsg != null) + setStatusChanged("fileLoadError", ptLoad, errorMsg, false); + } + if (jmolStatusListener != null && (ptLoad <= 0 || ptLoad == 3)) + jmolStatusListener.notifyCallback(JmolConstants.CALLBACK_LOADSTRUCT, + new Object[] { "", fullPathName, fileName, modelName, errorMsg }); } synchronized void setStatusFrameChanged(int frameNo, int fileNo, int modelNo, int firstNo, int lastNo) { Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -3975,6 +3975,10 @@ strError, ptLoad); } + void openFileWithDialog(String fileName) { + statusManager.setStatusFileLoaded("\t" + fileName, null, null, null, 0); + } + private void setStatusFileNotLoaded(String fullPathName, String errorMsg) { setStatusFileLoaded(-1, fullPathName, null, null, errorMsg); } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2008-09-12 12:10:12 UTC (rev 9885) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2008-09-12 13:05:13 UTC (rev 9886) @@ -30,6 +30,7 @@ import org.jmol.popup.JmolPopup; import org.jmol.i18n.GT; import org.jmol.util.*; +import org.jmol.viewer.FileManager; import org.jmol.viewer.JmolConstants; import org.jmol.viewer.Viewer; import org.openscience.jmol.app.webexport.WebExport; @@ -77,11 +78,8 @@ public AtomSetChooser atomSetChooser; private ExecuteScriptAction executeScriptAction; protected JFrame frame; - protected static File currentDir; FileChooser openChooser; FilePreview openPreview; - private JFileChooser saveChooser; - private FileTyper fileTyper; JFileChooser exportChooser, writeChooser; JmolPopup jmolpopup; @@ -110,11 +108,6 @@ static Boolean haveBorder = Boolean.FALSE; /** - * The current file. - */ - File currentFile; - - /** * Button group for toggle buttons in the toolbar. */ static AbstractButton buttonRotate = null; @@ -153,6 +146,7 @@ static Boolean isSilent = Boolean.FALSE; static Boolean haveConsole = Boolean.TRUE; static Boolean haveDisplay = Boolean.TRUE; + JmolAdapter modelAdapter; Jmol(Splash splash, JFrame frame, Jmol parent, int startupWidth, int startupHeight, String commandOptions) { @@ -188,7 +182,6 @@ // display = new DisplayPanel(status, guimap, haveDisplay.booleanValue(), startupWidth, startupHeight); - JmolAdapter modelAdapter; String adapter = System.getProperty("model"); if (adapter == null || adapter.length() == 0) adapter = "smarter"; @@ -216,8 +209,6 @@ if (haveDisplay.booleanValue()) { say(GT._("Initializing Script Window...")); scriptWindow = new ScriptWindow(viewer, frame); - say(GT._("Initializing AtomSetChooser Window...")); - atomSetChooser = new AtomSetChooser(viewer, frame); } MyStatusListener myStatusListener; @@ -277,22 +268,7 @@ say(GT._("Starting display...")); display.start(); - say(GT._("Setting up File Choosers...")); - openChooser = new FileChooser(); - openChooser.setCurrentDirectory(currentDir); - String previewProperty = System.getProperty("openFilePreview", "true"); - if (Boolean.valueOf(previewProperty).booleanValue()) { - openPreview = new FilePreview(openChooser, modelAdapter); - } - saveChooser = new JFileChooser(); - fileTyper = new FileTyper(); - saveChooser.addPropertyChangeListener(fileTyper); - saveChooser.setAccessory(fileTyper); - saveChooser.setCurrentDirectory(currentDir); - exportChooser = new JFileChooser(); - exportChooser.setCurrentDirectory(currentDir); - writeChooser = new JFileChooser(); - writeChooser.setCurrentDirectory(currentDir); + //say(GT._("Setting up File Choosers...")); /* pcs.addPropertyChangeListener(chemFileProperty, exportAction); pcs.addPropertyChangeListener(chemFileProperty, povrayAction); @@ -302,7 +278,6 @@ pcs.addPropertyChangeListener(chemFileProperty, viewMeasurementTableAction); */ - pcs.addPropertyChangeListener(chemFileProperty, atomSetChooser); if (menuFile != null) { menuStructure = viewer.getFileAsString(menuFile); @@ -393,9 +368,6 @@ if (splash != null) splash.showStatus(GT._("Initializing Jmol...")); - // cache the current directory to speed up Jmol window creation - currentDir = getUserDirectory(); - Jmol window = new Jmol(splash, frame, null, startupWidth, startupHeight, commandOptions); if (haveDisplay.booleanValue()) @@ -792,6 +764,10 @@ } } + void setLocalDirectory(File f) { + viewer.setStringProperty("currentLocalPath",f.getParent()); + } + private void say(String message) { if (haveDisplay.booleanValue()) if (splash == null) { @@ -1438,24 +1414,7 @@ } public void actionPerformed(ActionEvent e) { - - openChooser.setDialogSize(historyFile - .getWindowSize(FILE_OPEN_WINDOW_NAME)); - openChooser.setDialogLocation(historyFile - .getWindowPosition(FILE_OPEN_WINDOW_NAME)); - int retval = openChooser.showOpenDialog(Jmol.this); - if (retval == 0) { - File file = openChooser.getSelectedFile(); - if ((openPreview != null) && (openPreview.isAppendSelected())) { - viewer.scriptWait("load append " - + Escape.escape(file.getAbsolutePath())); - } else { - viewer.openFile(file.getAbsolutePath()); - } - return; - } - historyFile.addWindowInfo(FILE_OPEN_WINDOW_NAME, openChooser.getDialog(), - null); + openFileWithDialog(null); } } @@ -1512,8 +1471,8 @@ } } - final static String[] imageChoices = { "JPEG", "PNG", "GIF", "PPM", "PDF", "SPT" }; - final static String[] imageExtensions = { "jpg", "png", "gif", "ppm", "pdf", "SPT" }; + final static String[] imageChoices = { "JPEG", "PNG", "GIF", "PPM", "PDF" }; + final static String[] imageExtensions = { "jpg", "png", "gif", "ppm", "pdf" }; class ExportAction extends AbstractAction { @@ -1523,12 +1482,16 @@ public void actionPerformed(ActionEvent e) { + if (exportChooser == null) + exportChooser = new JFileChooser(); + exportChooser.setCurrentDirectory(FileManager.getLocalDirectory(viewer)); ImageTyper it = new ImageTyper(); it.createPanel(exportChooser, imageChoices, imageExtensions, "JPEG"); + String fileName = viewer.getModelSetFileName(); - String pathName = viewer.getModelSetPathName(); + String pathName = exportChooser.getCurrentDirectory().getPath(); File file = null; - if ((fileName != null) && (pathName != null)) { + if (fileName != null && pathName != null) { int extensionStart = fileName.lastIndexOf('.'); if (extensionStart != -1) { fileName = fileName.substring(0, extensionStart) + "." @@ -1536,9 +1499,10 @@ } file = new File(pathName, fileName); } - if ((file = it.setSelectedFile(Jmol.this, file)) == null) + if ((file = it.showDialog(Jmol.this, file)) == null) return; file = exportChooser.getSelectedFile(); + setLocalDirectory(file); String sType = it.getType(); if (sType == null) { // file type changer was not touched @@ -1629,11 +1593,6 @@ } public void actionPerformed(ActionEvent e) { - - if (currentFile != null) { - currentFile.getName().substring(0, - currentFile.getName().lastIndexOf(".")); - } new PovrayDialog(frame, viewer); } @@ -1646,13 +1605,17 @@ } public void actionPerformed(ActionEvent e) { + if (writeChooser == null) + writeChooser = new JFileChooser(); + writeChooser.setCurrentDirectory(FileManager.getLocalDirectory(viewer)); int retval = writeChooser.showSaveDialog(Jmol.this); if (retval == JFileChooser.APPROVE_OPTION) { File file = writeChooser.getSelectedFile(); - if (file != null) { - createImageStatus(file.getAbsolutePath(), "SPT", viewer - .getStateInfo(), Integer.MIN_VALUE); - } + if (file == null) + return; + setLocalDirectory(file); + createImageStatus(file.getAbsolutePath(), "SPT", viewer + .getStateInfo(), Integer.MIN_VALUE); } } } @@ -1713,6 +1676,38 @@ return dir == null ? null : new File(System.getProperty("user.dir")); } + void openFileWithDialog(String fileName) { + if (openChooser == null) { + openChooser = new FileChooser(); + String previewProperty = System.getProperty("openFilePreview", "true"); + if (Boolean.valueOf(previewProperty).booleanValue()) { + openPreview = new FilePreview(openChooser, modelAdapter); + } + } + if (fileName != null && fileName.length() > 0) + openChooser.setSelectedFile(new File(fileName)); + if (fileName != null && fileName.indexOf(":") < 0) + openChooser.setCurrentDirectory(FileManager.getLocalDirectory(viewer)); + openChooser.setDialogSize(historyFile + .getWindowSize(FILE_OPEN_WINDOW_NAME)); + openChooser.setDialogLocation(historyFile + .getWindowPosition(FILE_OPEN_WINDOW_NAME)); + if (openChooser.showOpenDialog(Jmol.this) == JFileChooser.APPROVE_OPTION) { + File file = openChooser.getSelectedFile(); + if (file == null) + return; + setLocalDirectory(file); + if (openPreview != null && openPreview.isAppendSelected()) { + viewer.scriptWait("load append " + + Escape.escape(file.getAbsolutePath())); + } else { + viewer.openFile(file.getAbsolutePath()); + } + } + historyFile.addWindowInfo(FILE_OPEN_WINDOW_NAME, openChooser.getDialog(), + null); + } + public static final String chemFileProperty = "chemFile"; class MyStatusListener implements JmolStatusListener { @@ -1837,10 +1832,6 @@ private void notifyFileLoaded(String fullPathName, String fileName, String modelName, String errorMsg) { if (errorMsg != null) { - // JOptionPane.showMessageDialog(null, - // fullPathName + "\n\n" + errorMsg + "\n\n" , - // GT._("File not loaded"), - // JOptionPane.ERROR_MESSAGE); return; } if (display == null) @@ -1852,6 +1843,10 @@ scriptWindow.undoClear(); // a 'clear/zap' operation } else { + if (fullPathName.startsWith("\t")) { + openFileWithDialog(fullPathName.substring(1)); + return; + } if (modelName != null && fileName != null) title = fileName + " - " + modelName; else if (fileName != null) @@ -1861,6 +1856,10 @@ recentFiles.notifyFileOpen(fullPathName); } frame.setTitle(title); + if (atomSetChooser == null) { + atomSetChooser = new AtomSetChooser(viewer, frame); + pcs.addPropertyChangeListener(chemFileProperty, atomSetChooser); + } pcs.firePropertyChange(chemFileProperty, null, null); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |