On Fri, Dec 25, 2009 at 4:56 AM, Aya <[email protected]> wrote:
> Hello,
> I am making a webpage in which the molecule has some 10 sites (defined
> as site1, site2 ... upon loading the applet ), and the user can select
> which site(s) he wants to view (the halos get turned on and an
> isosurface gets generated). When the mouse hovers over a site that
> has been selected, I want a specific hover message to appear.
> Additionally, some atoms may belong to more than one site. In this
> case, the hover message must append additional information.
>
> Here is one attempt at this. This code is within my custom hover
> function called by the set hovercallback:
> if(myListL.options[1].selected == true){jmolScript(
> 'if ({atomIndex=_atomHovered}&{site1}); ' +
> 'hover "default1"; select site1; halos
> 25%;color halos red; select all;' +
> 'else if ({atomIndex=_atomHovered}&!{site1}); ' +
> 'hover %U; select site1; halos off;' +
> 'end if; ',"Leftapplet")}
>
>
Decoding that, I see:
if ({atomIndex=_atomHovered}&{site1}) {
hover "default1"; select site1; halos 25%;color halos red; select all;
} else if ({atomIndex=_atomHovered}&!{site1}) {
hover %U; select site1; halos off
}
This says that if the first site is selected and the first site is
> being hovered, there is the custom message, if it's anything But
> site1, then hover is normal. This does not solve the problem! For
> several reasons. What I need to do is include a some kind of
> jmolScript that will Return a boolean if the atom hovered is part of
> site1, site2.. (as in, a jmol script that will evaluate
> ({atomIndex=_atomHovered}&{site1}) ) OR some kind of jmol script that
> will return the sites that the atom hovered belongs to OR maybe a way
> to insert variables into the jmolScript that have been defined in the
> previous javascript. OR any other suggestion you may have!
>
>
for (var i = 0; i < site_list.length; i++) {script inline @{"select " +
site_list[i]};print {selected}}
This gives all the atoms in each site. So if you could use:
for (var i = 0; i < site_list.length; i++) {
script inline @{"select atomIndex = _atomhovered and " + site_list[i]}
if ({selected}) {
print site_list[i]
}
}
That would at least get you the list.
A slicker option would be to read the state once after file loading and then
parse it for the information you want:
@site_1 ({299:314 334:384 719:734 754:804 1139:1154 1174:1224 1559:1574
1594:1644 1979:1994 2014:2064 2399:2414 2434:2484 2819:2834 2854:2904
3239:3254 3274:3324 3659:3674 3694:3744 4079:4094 4114:4164 4499:4514
4534:4584 4919:4934 4954:5004 5339:5354 5374:5424 5759:5774 5794:5844
6179:6194 6214:6264});
@site_ac1 ({19:34 439:454 859:874 1279:1294 1699:1714 2119:2134 2539:2554
2959:2974 3379:3394 3799:3814 4219:4234 4639:4654 5059:5074 5479:5494
5899:5914});
@site_ac2 ({0:18 35:53 420:438 455:473 840:858 875:893 1260:1278 1295:1313
1680:1698 1715:1733 2100:2118 2135:2153 2520:2538 2555:2573 2940:2958
2975:2993 3360:3378 3395:3413 3780:3798 3815:3833 4200:4218 4235:4253
4620:4638 4655:4673 5040:5058 5075:5093 5460:5478 5495:5513 5880:5898
5915:5933});
...
site_ac1 = ["[IDS]2:A"];
site_ac2 = ["[SGN]1:A", "[SGN]3:A"];
site_ac3 = ["[IDS]2:A", "[IDS]4:A", "[SGN]5:A", "[IDS]6:A"];
...
site_list = ["site_BC9", "site_BC8", "site_BC7", "site_BC6", "site_BC5",
"site_BC4", "site_BC3", "site_BC2", "site_BC1", "site_AC9", "site_AC8",
"site_AC7", "site_AC6", "site_AC5", "site_AC4", "site_AC3", "site_AC2",
"site_CC6", "site_AC1", "site_CC5", "site_CC4", "site_CC3", "site_CC2",
"site_CC1"];
Bob
Thank you kindly for your help!
> Aya
>
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and
> easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> Jmol-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jmol-developers
>
--
Robert M. Hanson
Professor of Chemistry
St. Olaf College
1520 St. Olaf Ave.
Northfield, MN 55057
http://www.stolaf.edu/people/hansonr
phone: 507-786-3107
If nature does not answer first what we want,
it is better to take what answer we get.
-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers