From: Angel H. <ang...@ua...> - 2007-07-09 18:13:25
|
Hi Matthew It is unlikely that you will find a solution for this in the web or list archive, since it is not a Jmol problem, but a javascript one. You want to reset the menus that you have in the web page, and that cannot be done from Jmol, it's your javascript code in the page that must do it. I suugest that you do this: 1) enclose your menus within a single <form> ... </form> pair of tags. In this case, it can be done e.g. right after body tags: <body> <form> .... </form> </body> 2) replace the <body> tag with: <body onLoad="document.forms[0].reset()"> (that will reset the menus upon page reload) 3) to reset the menus upon molecule load, you'll need to work a bit more: ...uh, not easy to do given that you are using jmolMenu (which is the easiest way to work) One way would be to assign IDs to the 2nd and 3rd menus, then reset them with Javascript every time the 1st menu is used. After some testing, I've managed to do this so that when you **click** on the molecule menu, the other menus are reset (I tried to do so when the menu is **changed**, not **clicked**, but that interferes with normal Jmol.js action) Since there are several changes, I am pasting all the new code: <script type="text/javascript"> function resetJmolControls() { document.forms[0].reset() document.getElementById("loadMenu").onclick = function() { document.getElementById("displayMenu").selectedIndex=0; document.getElementById("colourMenu").selectedIndex=0; } } </script> </head> <body onLoad="resetJmolControls()"> <form> <script>jmolInitialize("./");</script> <script>jmolSetTarget("gfp");</script> <table> <tr> <td> Molecule: <script> jmolMenu([ ["load pdb1ema.ent; select hetero; spacefill off; wireframe off; select !hetero;", "GFP"], ["load pdb2lyz.ent; select hetero; spacefill off; wireframe off; select !hetero;", "Lysozyme"], ], 1, "loadMenu"); </script> Display: <script> var allOff = "spacefill off; wireframe off; backbone off; ribbons off; strands off; cartoons off; " jmolMenu([ [allOff + "spacefill 15%; wireframe on", "Wireframe", true], [allOff + "backbone on", "Backbone"], [allOff + "spacefill 100%", "Spacefill"], [allOff + "ribbons on", "Ribbons"], [allOff + "strands on", "Strands"], [allOff + "cartoons on", "Cartoons"], ], 1, "displayMenu"); </script> Colours: <script> jmolMenu([ ["color cpk", "CPK", true], ["color structure", "Structure"], ["color chain", "Chain"], //["color group", "Group"], //["color formalcharge", "Charge"], //["color shapely", "Shape"], ], 1, "colourMenu"); </script> </td> <td> </td> </tr> <tr><td><script>jmolApplet(500, "load pdb1ema.ent; select hetero; spacefill off; wireframe off; select !hetero;", "gfp");</script></td></tr> <!-- <tr><td><script>jmolCommandInput(null, 50, "gfp_cmd", "enter a jmol script command");</script></td></tr> --> </table> </form> </body> |