Commit 3504026c by Chris Rossi

It works!

parent 51bbc6c6
""" """
Adds input and response types for JSDraw problems. Adds input and response types for JSME problems.
""" """
import json import json
import re import re
...@@ -9,12 +9,12 @@ from capa.correctmap import CorrectMap ...@@ -9,12 +9,12 @@ from capa.correctmap import CorrectMap
@inputtypes.registry.register @inputtypes.registry.register
class JSDrawInput(inputtypes.InputTypeBase): class JSMEInput(inputtypes.InputTypeBase):
""" """
A JSDraw input type. A JSME input type.
""" """
template = 'jsdrawinput.html' template = 'jsmeinput.html'
tags = ['jsdraw'] tags = ['jsme']
def setup(self): def setup(self):
if self.value: if self.value:
...@@ -32,7 +32,7 @@ class JSDrawInput(inputtypes.InputTypeBase): ...@@ -32,7 +32,7 @@ class JSDrawInput(inputtypes.InputTypeBase):
stored_state['state'] = self.read_molfile(child.text) stored_state['state'] = self.read_molfile(child.text)
dirty = True dirty = True
elif child.tag == 'answer': elif child.tag == 'answer':
answer = self.read_molfile(child.text) answer = child.text
if answer != stored_state.get('answer'): if answer != stored_state.get('answer'):
stored_state['answer'] = answer stored_state['answer'] = answer
dirty = True dirty = True
...@@ -46,14 +46,13 @@ class JSDrawInput(inputtypes.InputTypeBase): ...@@ -46,14 +46,13 @@ class JSDrawInput(inputtypes.InputTypeBase):
def read_molfile(self, text): def read_molfile(self, text):
lines = filter(None, text.split('\n')) lines = filter(None, text.split('\n'))
padding = re.search(r"\S", lines[1]).start() - 1 padding = re.search(r"\S", lines[0]).start()
return '\n'.join( return '\n'.join((line[padding:] for line in lines))
(lines[0],) + tuple(line[padding:] for line in lines[1:]))
def _extra_context(self): def _extra_context(self):
static_url = self.capa_system.STATIC_URL static_url = self.capa_system.STATIC_URL
return { return {
'html_file': static_url + 'jsdraw_frame.html', 'html_file': static_url + 'jsme_frame.html',
'params': None, 'params': None,
'gradefn': 'getGrade', 'gradefn': 'getGrade',
'get_statefn': 'getState', 'get_statefn': 'getState',
...@@ -69,13 +68,13 @@ class JSDrawInput(inputtypes.InputTypeBase): ...@@ -69,13 +68,13 @@ class JSDrawInput(inputtypes.InputTypeBase):
@responsetypes.registry.register @responsetypes.registry.register
class JSDrawResponse(responsetypes.LoncapaResponse): class JSMEResponse(responsetypes.LoncapaResponse):
""" """
A JSDraw response type. A JSME response type.
""" """
allowed_inputfields = ['jsdraw'] allowed_inputfields = ['jsme']
required_attributes = [] required_attributes = []
tags = ['jsdrawresponse'] tags = ['jsmeresponse']
max_inputfields = 1 max_inputfields = 1
correct_answer = [] correct_answer = []
......
...@@ -2,45 +2,38 @@ ...@@ -2,45 +2,38 @@
<html> <html>
<head> <head>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js" type="text/javascript"></script> <script type="text/javascript" src="vendor/jsme/jsme/jsme.nocache.js"></script>
<script type="text/javascript" src='vendor/JSDraw3.1.2/Scilligence.JSDraw2.Pro.js'></script>
<script src="js/capa/src/jschannel.js"></script> <script src="js/capa/src/jschannel.js"></script>
</head> </head>
<body> <body>
<div class="JSDraw" id="jsdraw" skin="w8" <div id="jsme-editor"></div>
style="width: 660px; height: 300px;border:1px solid gray" />
<script type="text/javascript"> <script type="text/javascript">
JSDraw.init();
var editor = null; var editor = null;
var correct_answer = null; var correct_answer = null;
var state = null; var state = null;
function getState() { function getState() {
if (editor) return JSON.stringify( if (editor) return JSON.stringify(
{ state: editor.getMolfile(), answer: correct_answer }); { state: editor.molFile(), answer: correct_answer });
} }
function setState(data) { function setState(data) {
data = JSON.parse(data); data = JSON.parse(data);
correct_answer = data.answer; correct_answer = data.answer;
state = data.state; state = data.state;
if (editor) editor.setMolfile(state); if (editor) editor.readMolFile(state);
} }
function getGrade() { function getGrade() {
var expected = new JSDraw2.Mol(); var answer = editor.smiles();
var response = new JSDraw2.Mol(); return answer == correct_answer ? 'correct': 'incorrect';
expected.setMolfile(correct_answer);
response.setMolfile(editor.getMolfile());
return expected.fullstructureMatch(response) ?
'correct': 'incorrect';
} }
window.onload = function() { function jsmeOnLoad() {
editor = JSDraw.get("jsdraw"); editor = new JSApplet.JSME("jsme-editor", "660px", "300px");
if (state) editor.setMolfile(state); if (state) editor.readMolFile(state);
} }
/* Establish a channel only if this application is embedded in an iframe. /* Establish a channel only if this application is embedded in an iframe.
......
<html>
<head>
<title>JME to JSME migration. Part 1</title>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
</head>
<body>
<H1>JME to JSME migration</H1>
<div name="jme" code="JME.class" width=420 height=330>
You have to enable JavaScript in your browser to use JSME !
</div>
The variable name "jme" refers to the applet document.jme .
<input type="button" value="Get smiles via document.jme" onclick="alert(document.jme.smiles());">
<br>
The applet can also be accessed via document.jsapplets[0].
<input type="button" value="Get smiles via document.jsapplets[0]" onclick="alert(document.jsapplets[0].smiles());">
<br><hr>
JSME in depict mode:
<div id="jme_depict" name="jme2" code="JME.class" width=300 height=200>
You have to enable JavaScript on your machine !
<param name="options" value="depict">
<param name ="jme" value="2 1 C 9.63 -7.84 O 10.84 -8.54 1 2 1">
You have to enable JavaScript in your browser to use JSME !
</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<title>JME Example</title>
</head>
<body>
<div code="JME.class" name="JME" archive="JME.jar" width="360" height="315" id="JME">
You have to enable JavaScript in your browser to use JSME !
</div>
</body>
</html>
\ No newline at end of file
<!doctype html>
<!-- The DOCTYPE declaration above will set the -->
<!-- browser's rendering engine into -->
<!-- "Standards Mode". Replacing this declaration -->
<!-- with a "Quirks Mode" doctype is not supported. -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>JSME demo page</title>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script type="text/javascript">
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
//Instantiate a new JSME:
//arguments: HTML id, width, height (must be string not number!)
jsmeApplet = new JSApplet.JSME("appletContainer", "380px", "340px", {
//optional parameters
"options" : "query,hydrogens"
});
//Alternative method: the size is not specified: the applet will use 100% of the space of its parent container "appletContainer".
//Be sure that the parent container size > 0, otherwise the applet will not be visible
/* jsmeApplet = new JSApplet.JSME("appletContainer", {
//optional parameters
"options" : "query,hydrogens",
"jme" : startingStructure
});
*/
//Opera patch: if some applet elements are not displayed, force repaint
//jsmeApplet.deferredRepaint(); //the applet will be repainted after the browser event loop returns
//it is recommended to use it if the JSME is created outside this jsmeOnLoad() function
//jsmeApplet has the same API as the original Java applet
//One can mimic the JME Java applet access to simplify the adaptation of HTML and JavaScript code:
document.JME = jsmeApplet;
//suggestion
//all buttons that access the jsme variable were disabled in the html
//Now enable all buttons that can access the jsme variable since the applet is ready
//example:
//document.getElementById("button").disabled=false;
}
function readMolecule() {
var jme = "16 17 C 7.37 -8.99 C 7.37 -7.59 C 6.16 -6.89 C 4.95 -7.59 C 4.95 -8.99 C 6.16 -9.69 N 8.58 -6.89 C 8.58 -5.49 C 7.37 -4.79 O 6.16 -5.49 C 9.80 -7.59 O 9.80 -8.99 C 11.01 -6.89 Cl 12.22 -7.59 Cl 11.01 -5.49 C 9.80 -4.79 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 7 8 1 8 9 1 9 10 1 3 10 1 2 7 1 7 11 1 11 12 2 11 13 1 13 14 1 13 15 1 8 16 1";
jsmeApplet.readMolecule(jme); // or document.JME.readMolecule(jme);
}
function readMultipart() {
var jme = "9 9 C 6.68 -7.15 C 5.47 -6.45 C 4.26 -7.15 C 4.26 -8.55 C 5.47 -9.25 C 6.68 -8.55 C 5.47 -5.05 O- 6.68 -4.35 O 4.26 -4.35 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 2 7 1 7 8 1 7 9 2|1 0 Na+ 12.21 -6.61";
jsmeApplet.readMolecule(jme) // or document.JME.readMolecule(jme
}
function readReaction() {
var jme = "3 2 C:1 1.41 -7.12 O:2 1.41 -5.72 Cl 2.63 -7.82 1 2 2 1 3 1|3 2 N:3 5.72 -6.78 C:4 7.12 -6.78 H:5 5.02 -7.99 1 2 1 1 3 1 >> 5 4 C:1 13.51 -6.40 O:2 13.51 -5.00 N:3 14.72 -7.10 C:4 15.94 -6.40 H:5 14.71 -8.50 1 2 2 1 3 1 3 4 1 3 5 1";
jsmeApplet.readMolecule(jme);
}
function getMolfile() {
var data = document.JME.molFile();
document.getElementById("jme_output").value = data;
}
function getSmiles() {
var data = document.JME.smiles();
document.getElementById("jme_output").value = data;
}
function getJMEstring() {
var data = document.JME.jmeFile();
document.getElementById("jme_output").value = data;
}
</script>
</head>
<body>
<!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
<noscript>
<div
style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
Your web browser must have JavaScript enabled in order for this
application to display correctly.</div>
</noscript>
<h1>JSME demo page</h1>
<table align="center">
<tr>
<td id="appletContainer"></td>
</tr>
</table>
<table align="center">
<tr>
<td colspan="2" style="font-weight: bold;">Set options:</td>
</tr>
<tr>
<td><textarea id="optionsTextArea" , rows="1" cols="50">reaction,noquery,oldlook</textarea>
</td>
<td>
<button type="button" id="optionsButton"
onclick='var options = document.getElementById("optionsTextArea").value; jsmeApplet.options(options);'>Set
options</button>
</td>
</tr>
</table>
<p></p>
<table align="center">
<tr>
<td colspan="3" style="font-weight: bold;">Import predefined
chemical structure to applet:</td>
</tr>
<tr>
<td>
<button type="button" onclick='readMolecule();'>Read JME
String</button>
</td>
</tr>
</table>
<p></p>
<p></p>
<table align="center">
<tr>
<td colspan="3" style="font-weight: bold;">Export chemical
structure from applet:</td>
</tr>
<tr>
<td>
<button type="button" onclick='getMolfile();'>Get molfile</button>
</td>
<td>
<button type="button" onclick='getSmiles();'>Get smiles</button>
</td>
<td>
<button type="button" onclick='getJMEstring();'>Get JME
string</button>
</td>
</tr>
<tr>
<td colspan="3"><TEXTAREA id="jme_output" ROWS="20" COLS="80"></TEXTAREA>
</td>
</tr>
</table>
<p></p>
<p>
See also <a
href="http://www.molinspiration.com/jme/doc/jme_functions.html">description</a>
of the JME API.
</p>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
var startingStructure = "13 14 C 15.94 -11.45 C 15.94 -10.05 C 14.72 -9.35 C 13.51 -10.05 C 13.51 -11.45 C 14.72 -12.15 C 17.34 -11.45 C 17.34 -10.05 O 18.33 -9.06 C 18.33 -12.44 C 17.96 -13.79 C 19.68 -12.07 N 21.03 -11.71 1 2 1 2 3 -1 3 4 1 4 5 1 5 6 1 1 6 -1 7 8 1 2 8 1 1 7 1 8 9 2 7 10 -1 10 11 2 10 12 1 12 13 3";
jsmeApplet = new JSApplet.JSME("jsme_container", "380px", "340px", {
"options" : "depict",
"jme" : startingStructure
});
jsmeApplet.setNotifyStructuralChangeJSfunction("showSVG");
}
function showSVG() {
elm =document.getElementById("svg_container");
elm.innerHTML = jsmeApplet.getMolecularAreaGraphicsString();
elm =document.getElementById("svg_textarea");
elm.innerHTML = jsmeApplet.getMolecularAreaGraphicsString();
}
</script>
</head>
<body>
<div id="jsme_container" ></div>
<button type="button" onclick="showSVG()">Show SVG</button>
<div id="svg_container"></div>
<textarea id="svg_textarea" rows="20" cols="80">
</textarea>
</body>
</html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- -->
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
function atomHighLight(molIndex, atomIndex) {
//index must start at 1
document.getElementById("atomHighLightTextAreaOut").value = atomIndex;
}
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
var startingStructure = "13 14 C 15.94 -11.45 C 15.94 -10.05 C 14.72 -9.35 C 13.51 -10.05 C 13.51 -11.45 C 14.72 -12.15 C 17.34 -11.45 C 17.34 -10.05 O 18.33 -9.06 C 18.33 -12.44 C 17.96 -13.79 C 19.68 -12.07 N 21.03 -11.71 1 2 1 2 3 -1 3 4 1 4 5 1 5 6 1 1 6 -1 7 8 1 2 8 1 1 7 1 8 9 2 7 10 -1 10 11 2 10 12 1 12 13 3";
//Instantiate a new JSME:
//arguments: HTML id, width, height (must be string not number!)
jsmeApplet = new JSApplet.JSME("appletContainer", "380px", "340px", {
//optional parameters
"options" : "query,hydrogens,nocanonize",
"jme" : startingStructure,
"atombg" : "1,2,2,2,3,2,4,2,5,2,6,2"
});
jsmeApplet.setNotifyAtomHighLightChangeJSfunction("atomHighLight");
}
</script>
</head>
<body>
<h1>JSME atom highlight</h1>
<table align="center">
<tr>
<td id="appletContainer"></td>
</tr>
</table>
<table align="center">
<tr>
<td>
<textarea id="atomHighLightTextArea" rows="1" cols="3">7</textarea>
<button type="button" onclick='var index = document.getElementById("atomHighLightTextArea").value; jsmeApplet.setAtomToHighLight(1, Number(index));'>Highlight atom</button>
</td>
</tr>
<tr>
<td>
Atom highlighted by mouse over:<textarea id="atomHighLightTextAreaOut" rows="1" cols="3"></textarea>
</td>
</tr>
</tr>
</tr>
<td>
Atom colors: <textarea id="atomHighLightTextArea2" rows="1" cols="35">7,3,8,3,9,3,10,3,11,3,12,3,13,3</textarea>
<button type="button" onclick='var atColorCsv = document.getElementById("atomHighLightTextArea2").value; jsmeApplet.setAtomBackgroundColors(1, atColorCsv);'>Set atom background color</button>
<button type="button" onclick='jsmeApplet.resetAtomColors(1);'>Reset Atom colors</button>
</td>
</tr>
</table>
<H3>Atom background color</H3>
There are 6 predefined pastel colors available: numbered 1 to 6. The color specification is character string containing a comma separated list of atom number and color index.<BR>
Example: 1,2 : color atom #1 with color # 2<BR>
Example: 1,2,10,4 : color atom #1 with color # 2 and color atom #10 with color #4<BR>
<H3>Bond background color</H3>
API not implemented yet.
<H2>API</H2>
<p>
Note: All atom and molecule indices start at 1.
</p>
<p>
<b>public void setAtomToHighLight(int molIndex, int atomIndex)</b><br>
The hightlight is temporary.
</p>
<p>
<b>public void setNotifyAtomHighLightChangeJSfunction(String notifyAtomHighLightJSfunction)</b><br>
Receive a notification when JSME detects a mouse over one atom. The argument is the name of a JavaScript function that receives two arguments: the molecule index and the atom index.<br>
To cancel, set the argument to null.
</p>
<p>
<b>public void setAtomBackgroundColors(int molIndex, String atomAndColorCSV) </b><br>
atomAndColorCSV must be an integer between 0 and 6. 0 means no background color.
</p>
<p>
<b>public void resetAtomColors(int molIndex) </b>
</p>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "100%", "80%");
}
window.onresize = function() {
if(typeof jsmeApplet !== 'undefined') {
jsmeApplet.repaint();
}
}
</script>
</head>
<body>
<h3>Resize the window and the applet should resize accordingly. Does not work with IE678.</h3>
<div id="jsme_container"></div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>Structure modified and atom mark demo</title>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<style>
em {background-color:rgb(102,255,255);}
</style>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "380px", "340px", {
"options" : "oldlook,star"
});
jsmeApplet.setAfterStructureModifiedCallback(showEvent);
document.getElementById("log").value = "";
}
var patt=/\[([A-Za-z][a-z]?)H?\d*:\d+\]/g; //regexp pattern for numbered atom
function showEvent(event) {
var log = document.getElementById("log");
log.value = event.action + " at: " + event.atom + " b: " + event.bond + " m: " + event.molecule + " " + event.src.smiles() + "\n" + log.value;
}
</script>
</head>
<body>
<H1>Structure modified and atom mark demo</H1>
<p>
Draw a structure, click on the star icon of the editor and click on one or more atoms
</p>
<div id="jsme_container"></div>
<button type="button" id="clear_but" onclick='document.getElementById("log").value=""'>Clear log</button>
<BR>
<textarea id = "log" rows="24" cols="50"> </textarea>
</body>
</html>
<!doctype html>
<!-- The DOCTYPE declaration above will set the -->
<!-- browser's rendering engine into -->
<!-- "Standards Mode". Replacing this declaration -->
<!-- with a "Quirks Mode" doctype is not supported. -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
jQuery.support.cors = true;
//this function will be started after the JavaScriptApplet code has been loaded
function jsmeOnLoad() {
//Instantiate a new JSME:
//arguments: HTML id, width, height (must be string not number!)
jsmeApplet = new JSApplet.JSME("appletContainer", "640px", "480px", {
//optional parameters
"options" : "query,hydrogens,removehs"
//removehs : remove explicit hydrogens when importing a structure - useful when importing from the NCI service
});
//jsmeApplet has the same API as the original Java applet
//One can mimic the JME Java applet access to simplify the adaptation of HTML and JavaScript code:
document.JME = jsmeApplet;
jsmeApplet.setNotifyStructuralChangeJSfunction("showMoleculeName"); //set to null to reset
//jsmeApplet.setPrePasteJSfunction("convertToMolfile");//set to null to reset
//customize the paste label in the popup menu
jsmeApplet.setPasteLabel("Paste any chemical text repr.");//set to null to reset
function convertToMolfile2(jsmeInstance, molecularRepresentation) {
if(molecularRepresentation && molecularRepresentation.indexOf("M END") == -1 && molecularRepresentation.slice(0, 4) !="$RXN") {
$.ajax({
url: "http://cactus.nci.nih.gov/chemical/structure",
crossDomain: true,
data: {
"string" : molecularRepresentation,
"representation" : "sdf"
},
success: function( data ) {
jsmeInstance.readMolFile(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Ajax error: " + textStatus);
}
});
} else {
jsmeInstance.readMolFile(molecularRepresentation);
}
}
jsmeApplet.setBeforePasteCallback(convertToMolfile2);
}
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()*]/g, escape);
}
function showMoleculeName() {
var smiles = document.JME.smiles();
if(smiles) {
$.ajax({
url: "http://cactus.nci.nih.gov/chemical/structure",
crossDomain: true,
data: {
"string" : smiles,
"representation" : "iupac_name"
},
success: function( data ) {
document.JME.showInfo(data);
},
error: function(jqXHR, textStatus, errorThrown) {
if(errorThrown.toUpperCase() != "NOT FOUND") {
alert("Ajax error: " + errorThrown);
} else {
document.JME.showInfo("Name not found");
}
}
});
}
}
function convertToMolfile(molecularRepresentation) {
if(molecularRepresentation && molecularRepresentation.indexOf("M END") == -1 && molecularRepresentation.slice(0, 4) !="$RXN") {
$.ajax({
url: "http://cactus.nci.nih.gov/chemical/structure",
crossDomain: true,
data: {
"string" : molecularRepresentation,
"representation" : "sdf"
},
success: function( data ) {
document.JME.readMolFile(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Ajax error: " + errorThrown);
}
});
} else {
document.JME.readMolFile(molecularRepresentation);
}
}
</script>
</head>
<!-- -->
<!-- The body can have arbitrary html, or -->
<!-- you can leave the body empty if you want -->
<!-- to create a completely dynamic UI. -->
<!-- -->
<body>
<!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
<noscript>
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
Your web browser must have JavaScript enabled
in order for this application to display correctly.
</div>
</noscript>
<h1>JSME + Chemical Identifier Resolver demo</h1>
<h3>Compound to name</h3>
The name of the molecule in the editor is fetched from the NCI web service (http://cactus.nci.nih.gov/chemical/structure) after the structure in the editor has changed.<br>
<h3>Pasting any chemical structure representation</h3>
Paste operation accepts molecule name, Inchi, smiles ... and is using the same service.
<br>Note: <b>the JQuery Ajax calls are not working on IE.</b>
<br>
<br>Examples:
<br>
<br>benazepril
<br>c1ccccc1O
<br>4-[(4-methylpiperazin-1-yl)methyl]-N-(4-methyl-3-{[4-(pyridin-3-yl)pyrimidin-2-yl]amino}phenyl)benzamide
<br>50-78-2
<br>PCZOHLXUXFIOCF-BXMDZJJMSA-N
<br>
<table align="center">
<tr>
<td id="appletContainer"></td>
</tr>
</table>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
function atomHighLight(molIndex, atomIndex) {
document.getElementById("atomHighLightTextAreaOut").value = atomIndex;
}
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "180px", "140px", {
"options" : "depict"
});
jsmeApplet.setNotifyAtomHighLightChangeJSfunction("atomHighLight");
var jme = "16 17 C 7.37 -8.99 C 7.37 -7.59 C 6.16 -6.89 C 4.95 -7.59 C 4.95 -8.99 C 6.16 -9.69 N 8.58 -6.89 C 8.58 -5.49 C 7.37 -4.79 O 6.16 -5.49 C 9.80 -7.59 O 9.80 -8.99 C 11.01 -6.89 Cl 12.22 -7.59 Cl 11.01 -5.49 C 9.80 -4.79 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 7 8 1 8 9 1 9 10 1 3 10 1 2 7 1 7 11 1 11 12 2 11 13 1 13 14 1 13 15 1 8 16 1";
jsmeApplet.readMolecule(jme);
}
</script>
</head>
<body bgcolor="#E6E6FA">
<h2>Depict mode with setNotifyAtomHighLightChangeJSfunction</h2>
<div id="jsme_container"></div>
<br>
Atom highlighted by mouse over:<textarea id="atomHighLightTextAreaOut" rows="1" cols="3"></textarea>
<hr>
<br>
<div code="JME.class" archive="JME.jar" width=120 height=80>
<param name="options" value="depict">
<param name="mol"
value="O=C1C3NNC1c2ccnc(c2)CCCCCCCCCc4cc3ccn4
JME 2013-10-12 Wed Oct 30 19:28:39 GMT+100 2013
27 30 0 0 0 0 0 0 0 0999 V2000
7.0399 2.4154 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
6.5611 3.7310 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
5.1620 3.6822 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
4.7761 2.3364 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
5.9367 1.5535 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
4.3000 4.7854 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
7.3440 4.8917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
8.7406 4.7940 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
9.5234 5.9547 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
8.9097 7.2130 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
7.5131 7.3106 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
6.7303 6.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.4605 1.8576 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
2.3880 2.7575 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.0725 2.2786 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.8294 0.8999 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
1.9018 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.2174 0.4788 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 3.1785 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.2431 4.5573 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.5587 5.0361 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.8018 6.4148 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.1174 6.8937 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.3605 8.2724 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
4.6760 8.7512 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
5.7485 7.8513 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
7.0641 8.3301 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
4 5 1 0 0 0 0
5 1 1 0 0 0 0
3 6 2 0 0 0 0
2 7 1 0 0 0 0
8 9 1 0 0 0 0
9 10 2 0 0 0 0
10 11 1 0 0 0 0
11 12 2 0 0 0 0
7 12 1 0 0 0 0
7 8 2 0 0 0 0
4 13 1 0 0 0 0
14 15 1 0 0 0 0
15 16 2 0 0 0 0
16 17 1 0 0 0 0
17 18 2 0 0 0 0
13 18 1 0 0 0 0
13 14 2 0 0 0 0
15 19 1 0 0 0 0
19 20 1 0 0 0 0
20 21 1 0 0 0 0
21 22 1 0 0 0 0
22 23 1 0 0 0 0
23 24 1 0 0 0 0
24 25 1 0 0 0 0
25 26 1 0 0 0 0
26 27 1 0 0 0 0
27 11 1 0 0 0 0
M END
">
</div>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
function atomHighLight(molIndex, atomIndex) {
document.getElementById("atomHighLightTextAreaOut").value = atomIndex;
}
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "180px", "140px", {
"options" : "depict depictaction star"
});
jsmeApplet.setNotifyAtomHighLightChangeJSfunction("atomHighLight");
var jme = "16 17 C 7.37 -8.99 C 7.37 -7.59 C 6.16 -6.89 C 4.95 -7.59 C 4.95 -8.99 C 6.16 -9.69 N 8.58 -6.89 C 8.58 -5.49 C 7.37 -4.79 O 6.16 -5.49 C 9.80 -7.59 O 9.80 -8.99 C 11.01 -6.89 Cl 12.22 -7.59 Cl 11.01 -5.49 C 9.80 -4.79 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 7 8 1 8 9 1 9 10 1 3 10 1 2 7 1 7 11 1 11 12 2 11 13 1 13 14 1 13 15 1 8 16 1";
jsmeApplet.readMolecule(jme);
var actionMarked = 105;
jsmeApplet.setAction(actionMarked);
jsmeApplet.setAfterStructureModifiedCallback(function(event) {event.src.setAction(actionMarked);});
}
</script>
</head>
<body bgcolor="#E6E6FA">
<h2>Depict mode with setNotifyAtomHighLightChangeJSfunction and the star option enabled</h2>
<div id="jsme_container"></div>
<br>
Atom highlighted by mouse over:<textarea id="atomHighLightTextAreaOut" rows="1" cols="3"></textarea>
<hr>
<br>
</body>
</html>
<!doctype html>
<!-- The DOCTYPE declaration above will set the -->
<!-- browser's rendering engine into -->
<!-- "Standards Mode". Replacing this declaration -->
<!-- with a "Quirks Mode" doctype is not supported. -->
<html><head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
function jsmeOnLoad() {
document.JME1 = new JSApplet.JSME("JME1", "420px", "315px", {
"options" : "noquery,polarnitro,nocanonize,oldlook"
});
document.JME2 = new JSApplet.JSME("JME2", "420px", "315px", {
"options" : "noquery,polarnitro,nocanonize,oldlook"
});
}
</script>
</head><body>
<H1>JSME drag and drop</H1>
DnD requires a HTML 5 compatible browser. If drag and drop is supported by your browser, an icon will be displayed at the bottom right of the editor.
<div id="JME1"></div>
<div id="JME2"></div>
<H3>Testing the DnD capabilities of JSME:</H3>
<ol>
<li>Draw a structure on the top editor </li>
<li>Drag it out and drop it on the surface of the bottom editor</li>
<li>Drag it out and drop it on your computer local file system to save it (does not work in Windows)</li>
<li>Drag it out and drop it on the window of another program, e.g. text editor</li>
<li>Drag a MOL or SDF file from your computer local file system and drop it on to the bottom or top editor
</ol>
Does not work yet on iPad 4 and Android devices.
</body></html>
\ No newline at end of file
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "380px", "340px");
}
</script>
</head>
<body>
<div id="jsme_container"></div>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "380px", "340px");
}
function showSVG() {
elm =document.getElementById("svg_container");
elm.innerHTML = jsmeApplet.getAllGraphicsString()[1]);
}
</script>
</head>
<body>
<div id="jsme_container"></div>
<button type="button" onclick="alert(jsmeApplet.smiles())">Show SMILES</button>
<div id="svg_container"></div>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "380px", "340px", {
"options" : "oldlook,star"
});
}
</script>
</head>
<body>
<div id="jsme_container"></div>
<button type="button" onclick="alert(jsmeApplet.smiles())">Show SMILES</button>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
this.jsmeApplet = new JSApplet.JSME("jsme_container", "320px", "240px");
}
</script>
</head>
<body>
<div id="jsme_container"></div>
<button onclick="resize(); return false;">Resize</button>
<script language="javascript">
function resize() {
//this.jsmeApplet.setWidth("600px");
//this.jsmeApplet.setHeight("80%");
this.jsmeApplet.setSize("640px","480px");
}
</script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>SMILES Hilight demo</title>
<script type="text/javascript" language="javascript" src="jsme/jsme.nocache.js"></script>
<style>
em {background-color:rgb(102,255,255);}
</style>
<script>
//this function will be called after the JavaScriptApplet code has been loaded.
function jsmeOnLoad() {
jsmeApplet = new JSApplet.JSME("jsme_container", "380px", "340px", {
"options" : "oldlook,star,nocanonize"
});
jsmeApplet.setNotifyStructuralChangeJSfunction("show_smiles");
}
var patt=/\[([A-Za-z][a-z]?)H?\d*:\d+\]/g; //regexp pattern for numbered atom
function show_smiles() {
checkbox = document.getElementById("canonic_check");
if(checkbox.checked) {
jsmeApplet.options("canonize");
} else {
jsmeApplet.options("nocanonize");
}
smiles = jsmeApplet.smiles(); //atom that are colored are numbered
new_smiles = smiles.replace(patt, '<em>$1</em>');
document.getElementById("smiles_container").innerHTML = new_smiles
}
</script>
</head>
<body>
<H1>SMILES Highlight demo</H1>
<p>
Draw a structure, click on the star icon of the editor and click on one or more atoms
</p>
<div id="jsme_container"></div>
<form>
<input type="checkbox" id="canonic_check" onclick='show_smiles();'" >Canonical SMILES
</form>
<BR>
SMILES: <b><span id="smiles_container" ></span></b>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>All Classes</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="export/client/JSME.html" title="class in export.client" target="classFrame">JSME</a></li>
<li><a href="export/client/Utils.html" title="class in export.client" target="classFrame">Utils</a></li>
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>All Classes</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="export/client/JSME.html" title="class in export.client">JSME</a></li>
<li><a href="export/client/Utils.html" title="class in export.client">Utils</a></li>
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>Constant Field Values</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Constant Field Values";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
<h2 title="Contents">Contents</h2>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>Deprecated List</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Deprecated List";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#method">Deprecated Methods</a></li>
</ul>
</div>
<div class="contentContainer"><a name="method">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="export/client/JSME.html#getNotifyStructuralChangeJSfunction--">export.client.JSME.getNotifyStructuralChangeJSfunction()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="export/client/JSME.html#setNotifyStructuralChangeJSfunction-java.lang.String-">export.client.JSME.setNotifyStructuralChangeJSfunction(String)</a></td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>Utils</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Utils";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../export/client/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../export/client/JSME.html" title="class in export.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?export/client/Utils.html" target="_top">Frames</a></li>
<li><a href="Utils.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">export.client</div>
<h2 title="Class Utils" class="title">Class Utils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>export.client.Utils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Utils</span>
extends java.lang.Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../export/client/Utils.html#Utils--">Utils</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../export/client/Utils.html#runAfterBrowserEventLoopReturns-JavaScriptObject-">runAfterBrowserEventLoopReturns</a></span>(JavaScriptObject&nbsp;jsFunction)</code>
<div class="block">Run some Javascript code after the browser event loop returns.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../export/client/Utils.html#safeLog-java.lang.String-">safeLog</a></span>(java.lang.String&nbsp;msg)</code>
<div class="block">console.log tested on Chrome with success On IE: the console is not
available unless debugger is on: causes an exception.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Utils--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Utils</h4>
<pre>public&nbsp;Utils()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="runAfterBrowserEventLoopReturns-JavaScriptObject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runAfterBrowserEventLoopReturns</h4>
<pre>public static&nbsp;void&nbsp;runAfterBrowserEventLoopReturns(JavaScriptObject&nbsp;jsFunction)</pre>
<div class="block">Run some Javascript code after the browser event loop returns. Example:
JSApplet.Utils.runAfterBrowserEventLoopReturns(myFunction);</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jsFunction</code> - : a function defined in JavaScript such as :
function(){alert("DOM update finished")};</dd>
</dl>
</li>
</ul>
<a name="safeLog-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>safeLog</h4>
<pre>public static&nbsp;void&nbsp;safeLog(java.lang.String&nbsp;msg)</pre>
<div class="block">console.log tested on Chrome with success On IE: the console is not
available unless debugger is on: causes an exception. This method
catches the exception and ignores it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>msg</code> - </dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../export/client/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../export/client/JSME.html" title="class in export.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?export/client/Utils.html" target="_top">Frames</a></li>
<li><a href="Utils.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>export.client</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<h1 class="bar"><a href="../../export/client/package-summary.html" target="classFrame">export.client</a></h1>
<div class="indexContainer">
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="JSME.html" title="class in export.client" target="classFrame">JSME</a></li>
<li><a href="Utils.html" title="class in export.client" target="classFrame">Utils</a></li>
</ul>
</div>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>export.client</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="export.client";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Package</li>
<li>Next&nbsp;Package</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?export/client/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;export.client</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../export/client/JSME.html" title="class in export.client">JSME</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../export/client/Utils.html" title="class in export.client">Utils</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Package</li>
<li>Next&nbsp;Package</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?export/client/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>export.client Class Hierarchy</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="export.client Class Hierarchy";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?export/client/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For Package export.client</h1>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">export.client.<a href="../../export/client/JSME.html" title="class in export.client"><span class="typeNameLink">JSME</span></a></li>
<li type="circle">export.client.<a href="../../export/client/Utils.html" title="class in export.client"><span class="typeNameLink">Utils</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../index.html?export/client/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>API Help</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API Help";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">How This API Document Is Organized</h1>
<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<h2>Package</h2>
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
<ul>
<li>Interfaces (italic)</li>
<li>Classes</li>
<li>Enums</li>
<li>Exceptions</li>
<li>Errors</li>
<li>Annotation Types</li>
</ul>
</li>
<li class="blockList">
<h2>Class/Interface</h2>
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
<ul>
<li>Class inheritance diagram</li>
<li>Direct Subclasses</li>
<li>All Known Subinterfaces</li>
<li>All Known Implementing Classes</li>
<li>Class/interface declaration</li>
<li>Class/interface description</li>
</ul>
<ul>
<li>Nested Class Summary</li>
<li>Field Summary</li>
<li>Constructor Summary</li>
<li>Method Summary</li>
</ul>
<ul>
<li>Field Detail</li>
<li>Constructor Detail</li>
<li>Method Detail</li>
</ul>
<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
</li>
<li class="blockList">
<h2>Annotation Type</h2>
<p>Each annotation type has its own separate page with the following sections:</p>
<ul>
<li>Annotation Type declaration</li>
<li>Annotation Type description</li>
<li>Required Element Summary</li>
<li>Optional Element Summary</li>
<li>Element Detail</li>
</ul>
</li>
<li class="blockList">
<h2>Enum</h2>
<p>Each enum has its own separate page with the following sections:</p>
<ul>
<li>Enum declaration</li>
<li>Enum description</li>
<li>Enum Constant Summary</li>
<li>Enum Constant Detail</li>
</ul>
</li>
<li class="blockList">
<h2>Tree (Class Hierarchy)</h2>
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
<ul>
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
</ul>
</li>
<li class="blockList">
<h2>Deprecated API</h2>
<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
</li>
<li class="blockList">
<h2>Index</h2>
<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
</li>
<li class="blockList">
<h2>Prev/Next</h2>
<p>These links take you to the next or previous class, interface, package, or related page.</p>
</li>
<li class="blockList">
<h2>Frames/No Frames</h2>
<p>These links show and hide the HTML frames. All pages are available with or without frames.</p>
</li>
<li class="blockList">
<h2>All Classes</h2>
<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
</li>
<li class="blockList">
<h2>Serialized Form</h2>
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
</li>
<li class="blockList">
<h2>Constant Field Values</h2>
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
</li>
</ul>
<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>Generated Documentation (Untitled)</title>
<script type="text/javascript">
targetPage = "" + window.location.search;
if (targetPage != "" && targetPage != "undefined")
targetPage = targetPage.substring(1);
if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
targetPage = "undefined";
function validURL(url) {
try {
url = decodeURIComponent(url);
}
catch (error) {
return false;
}
var pos = url.indexOf(".html");
if (pos == -1 || pos != url.length - 5)
return false;
var allowNumber = false;
var allowSep = false;
var seenDot = false;
for (var i = 0; i < url.length - 5; i++) {
var ch = url.charAt(i);
if ('a' <= ch && ch <= 'z' ||
'A' <= ch && ch <= 'Z' ||
ch == '$' ||
ch == '_' ||
ch.charCodeAt(0) > 127) {
allowNumber = true;
allowSep = true;
} else if ('0' <= ch && ch <= '9'
|| ch == '-') {
if (!allowNumber)
return false;
} else if (ch == '/' || ch == '.') {
if (!allowSep)
return false;
allowNumber = false;
allowSep = false;
if (ch == '.')
seenDot = true;
if (ch == '/' && seenDot)
return false;
} else {
return false;
}
}
return true;
}
function loadFrames() {
if (targetPage != "" && targetPage != "undefined")
top.classFrame.location = top.targetPage;
}
</script>
</head>
<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
<frame src="export/client/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
<noframes>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<h2>Frame Alert</h2>
<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="export/client/package-summary.html">Non-frame version</a>.</p>
</noframes>
</frameset>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_05) on Sat Jun 28 16:45:44 CEST 2014 -->
<title>Class Hierarchy</title>
<meta name="date" content="2014-06-28">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Class Hierarchy";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For All Packages</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="export/client/package-tree.html">export.client</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.Object
<ul>
<li type="circle">export.client.<a href="export/client/JSME.html" title="class in export.client"><span class="typeNameLink">JSME</span></a></li>
<li type="circle">export.client.<a href="export/client/Utils.html" title="class in export.client"><span class="typeNameLink">Utils</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="export/client/package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
function show(type)
{
count = 0;
for (var key in methods) {
var row = document.getElementById(key);
if ((methods[key] & type) != 0) {
row.style.display = '';
row.className = (count++ % 2) ? rowColor : altColor;
}
else
row.style.display = 'none';
}
updateTabs(type);
}
function updateTabs(type)
{
for (var value in tabs) {
var sNode = document.getElementById(tabs[value][0]);
var spanNode = sNode.firstChild;
if (value == type) {
sNode.className = activeTableTab;
spanNode.innerHTML = tabs[value][1];
}
else {
sNode.className = tableTab;
spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
}
}
}
div.example_code {
background-color: #F6F4F0;
border: 1px solid #D4D4D4;
font-family: "courier new";
font-size: 90%;
padding: 5px;
width: 98%;
border-style:solid;
border-color:white;
border-width:15px;
width: 90%;
}
div.example_code_jsme {
background-color: #F6F4F8;
border: 1px solid #D4D4D4;
font-family: "courier new";
font-size: 90%;
padding: 5px;
border-style:solid;
border-color:white;
border-width:15px;
width: 90%;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>JSME Molecule Editor</title>
</head>
<body>
<h1>JSME Molecule Editor Distribution</h1>
This distribution contains 3 directories:<br>
<ul>
<li>jsme - the actual JSME code - every file in the directory is a JavaScript code optimized for specific browser</li>
<li><a href="api_javadoc/index.html">api_javadoc</a> - the JSME API - please note that although the JSME is in JavaScript, the documentation was generated automatically and therefore follows the Java conventions, anyway it should provide sufficient information to call low-level JSME functions</li>
<li>jme_examples - examples of usage of JSME using the JME to JSME migration</li>
<ul>
<li><a href="jme_examples/jme_example1.html">example1</a></li>
<li><a href="jme_examples/jme_example2.html">example2</a></li>
<li><a href="jme_examples/jme_example3.html">example3</a></li>
<li><a href="jme_examples/jme_example4.html">example4</a></li>
</ul>
</ul>
<p>
Files contained in the current directory should help you to implement JSME easily:<p>
<a href="doc.html">doc.html</a> provides basic information about JSME implementation into web page - start with this document<br>
<p>
<p>
Example pages:<br>
<ul>
<li><a href="JSME_minimal.html">JSME_minimal.html</a> minimalistic example how to incorporate JSME into a web page</li>
<li><a href="JSME_test.html">JSME_test.html</a> Example containing description of various program options</li>
<li><a href="JSME_dnd_demo.html">JSME_dnd_demo.html</a> Example illustrating JSME drag-and-drop capabilities</li>
<li><a href="JSME_atom_highlight_demo.html">JSME_atom_highlight_demo.html</a> Example of atom highlighting</li>
<li><a href="JSME_smiles_atom_highlight.html">JSME_smiles_atom_highlight.html</a> Example of atom highlighting inside a SMILES</li>
<li><a href="JSME_chemical_resolver_demo.html">JSME_chemical_resolver_demo.html</a> JSME can communicate with the <a href="http://cactus.nci.nih.gov/chemical/structure">Chemical Identifier Resolver service</a> at NIH and automatically retrieve pasted molecules</li>
<li><a href="JSME_callback_and_star.html">JSME_callback_and_star.html</a>JavaScript callback for structure modification. Atom marking</li>
<li><a href="JSME_resize.html">JSME_resize.html</a> Resize the applet</li>
<li><a href="JSME_autoresize.html">JSME_autoresize.html</a> Resize the applet when the window size changes</li>
</ul>
<p>
And some other files:<br>
<ul>
<li><a href="license.txt">license.txt</a> contains text of the BSD license under which the JSME is distributed</li>
<li><a href="release_notes.txt">release_notes.txt</a> provides JSME changelog</li>
</ul>
<p>
If you are using the JSME cite please the following article:<br>
B. Bienfait and P. Ertl, <a href="http://www.jcheminf.com/content/5/1/24"><b>JSME: a free molecule editor in JavaScript</b></a>, J. Cheminformatics 5:24 (2013)
<p>
Happy molecule editing!
</body>
<HTML>
<HEAD>
<TITLE>JME Example 1</TITLE>
<script type="text/javascript" language="javascript"
src="../jsme/jsme.nocache.js"></script>
<SCRIPT LANGUAGE="JavaScript">
function getSmiles() {
var drawing = document.JME.smiles();
document.form.smi.value = drawing;
}
function getJmeFile() {
var jme = document.JME.jmeFile();
document.form.jme_output.value = jme;
}
function getMolFile() {
var mol = document.JME.molFile();
document.form.mol_output.value = mol;
}
function processJme() {
document.JME.readMolecule(document.form.jme_output.value);
}
function useMol() {
document.JME.readMolFile(document.form.mol_output.value);
}
function readMolecule() {
var jme = "16 17 C 7.37 -8.99 C 7.37 -7.59 C 6.16 -6.89 C 4.95 -7.59 C 4.95 -8.99 C 6.16 -9.69 N 8.58 -6.89 C 8.58 -5.49 C 7.37 -4.79 O 6.16 -5.49 C 9.80 -7.59 O 9.80 -8.99 C 11.01 -6.89 Cl 12.22 -7.59 Cl 11.01 -5.49 C 9.80 -4.79 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 7 8 1 8 9 1 9 10 1 3 10 1 2 7 1 7 11 1 11 12 2 11 13 1 13 14 1 13 15 1 8 16 1";
document.JME.readMolecule(jme);
}
function readMultipart() {
var jme = "9 9 C 6.68 -7.15 C 5.47 -6.45 C 4.26 -7.15 C 4.26 -8.55 C 5.47 -9.25 C 6.68 -8.55 C 5.47 -5.05 O- 6.68 -4.35 O 4.26 -4.35 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 2 7 1 7 8 1 7 9 2|1 0 Na+ 12.21 -6.61";
document.JME.readMolecule(jme)
}
function readReaction() {
var jme = "3 2 C:1 1.41 -7.12 O:2 1.41 -5.72 Cl 2.63 -7.82 1 2 2 1 3 1|3 2 N:3 5.72 -6.78 C:4 7.12 -6.78 H:5 5.02 -7.99 1 2 1 1 3 1 >> 5 4 C:1 13.51 -6.40 O:2 13.51 -5.00 N:3 14.72 -7.10 C:4 15.94 -6.40 H:5 14.71 -8.50 1 2 2 1 3 1 3 4 1 3 5 1";
document.JME.readMolecule(jme);
}
function openHelpWindow() {
window.open("http://www.molinspiration.com/jme/help/jme2008hints.html","jmehelp","toolbar=no,menubar=no,scrollbars=yes,resizable=yes,width=510,height=675,left=400,top=20");
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<center>
<p>
<H2>Example of Java - JavaScript communication and data export /
import</H2>
<P>
<table border=0 width="100%">
<tr>
<td align="center">
<table>
<tr>
<td>
<div code="JME.class" name="JME" archive="JME.jar" width=360
height=315>You have to enable Java and JavaScritpt on
your machine !</div>
</td>
</tr>
<tr>
<td align="right"><a href="javascript:openHelpWindow();">JME
Help</a></td>
</tr>
</table>
</td>
<td align="center">
<FORM METHOD="POST" NAME="form" ONSUBMIT="return false;">
<p>
<CENTER>
<b>smiles</b><BR> <INPUT TYPE="text" NAME="smi" SIZE=48"><BR>
<p>
<b>jme string</b><BR>
<TEXTAREA NAME="jme_output" ROWS=1 COLS=40></TEXTAREA>
<p>
<b>mol file</b><BR>
<TEXTAREA NAME="mol_output" ROWS=5 COLS=40></TEXTAREA>
<P>
<INPUT TYPE="button" VALUE="Get SMILES" onClick="getSmiles()">
&nbsp; <INPUT TYPE="button" VALUE="Get JME string"
onClick="getJmeFile()"> &nbsp; <INPUT TYPE="button"
VALUE="Get mol file" onClick="getMolFile()"> &nbsp;
<p>
<INPUT TYPE="button" VALUE="Use JME" onClick="processJme()">
&nbsp; <INPUT TYPE="button" VALUE="Use mol file"
onClick="useMol()">
<P>
<INPUT TYPE="button" VALUE="Clear Editor"
onClick="document.JME.reset()"> &nbsp; <INPUT
TYPE="reset" VALUE="Clear Fields">
</CENTER>
</FORM>
</td>
</tr>
</table>
<FORM METHOD="POST" NAME="for2m" ONSUBMIT="return false;">
<INPUT TYPE="button" VALUE="Read Molecule" onClick="readMolecule()">
&nbsp;&nbsp; <INPUT TYPE="button" VALUE="Read Multipart Structure"
onClick="readMultipart()"> &nbsp;&nbsp; <INPUT TYPE="button"
VALUE="Read Reaction with Mapping" onClick="readReaction()">
</form>
<p>
<TABLE BORDER=1>
<CAPTION>
<B>Keyboard shortcuts</B>
</CAPTION>
<TR>
<TD><FONT SIZE=2>bonds -,=,#</FONT></TD>
<TD><FONT SIZE=2>rings 3..8, Ph is 1, furyl 0</FONT></TD>
<TD><FONT SIZE=2>atoms C,N,O,P,S,F,L,B,I,H</FONT></TD>
<TD><FONT SIZE=2>groups t - tert.butyl, ft - CF3, y -
nitro, a - COOH, z - SO3H</FONT></TD>
</TR>
<TR>
<TD><FONT SIZE=2>d - delete</FONT></TD>
<TD COLSPAN=3><FONT SIZE=2>Esc - return to the standard
state (C, single bond)</FONT></TD>
<TR>
<TD COLSPAN=4><FONT SIZE=2>molecule may by moved by
"dragging" free space and rotated by pressing concurrently also
the shift key</FONT></TD>
</TR>
</TABLE>
</center>
<P>
</BODY>
</HTML>
<html>
<head>
<title>JME Example 2</title>
<script language="JavaScript">
var smiles = "";
var jme = "0 0";
function startEditor() {
window.open('jme_window.html','JME','width=500,height=450,scrollbars=no,resizable=yes');
}
function fromEditor(smiles,jme) {
// this function is called from jme_window
// editor fills variable smiles & jme
if (smiles=="") {
alert ("no molecule submitted");
return;
}
document.form.smiles.value = smiles;
}
function processMolecule() {
smiles = document.form.smiles.value;
if (smiles == "") {alert("Nothing to process!"); return;}
alert('submitting '+smiles+' for processing!');
// in actual application remove line above and add something like this
// document.form.submit();
}
</script>
</head>
<body BGCOLOR="#FFFFFF">
<H2>Example of Structure Input</H2>
<form method="post" name="form" action="http://your_machine/cgi-bin/your_script">
Press the Draw Molecule button, draw molecule and then press Submit Molecule button in the editor window.<P>
<input type="text" size=40 value="" name="smiles">
&nbsp;&nbsp;
<INPUT TYPE="RESET" VALUE="Clear">
&nbsp;&nbsp
<input type="button" value="Draw Molecule" onClick="startEditor();">
<P>
<input type="button" value="Process Molecule" onClick="processMolecule();">
</form>
<P>
</body>
</html>
<html>
<head>
<script type="text/javascript" language="javascript"
src="../jsme/jsme.nocache.js"></script>
<title>JME Example3</title>
<script>
function fromEditor(f) {
var n = f.to.selectedIndex;
var jme = document.JME.jmeFile();
document.jsapplets[n+1].readMolecule(jme);
}
function toEditor(f) {
var n = f.to.selectedIndex;
var jme = document.jsapplets[n+1].jmeFile();
document.JME.readMolecule(jme);
}
function loadJmeFile() {
var jme="24 26 C 9.72 -8.71 C 9.72 -7.31 C 8.51 -6.61 C 7.30 -7.31 C 7.30 -8.71 C 8.51 -9.41 N 10.94 -9.41 C 12.15 -8.71 N 12.15 -7.31 C 10.94 -6.61 S 6.09 -6.61 N 4.87 -5.91 O 6.79 -5.40 O 5.39 -7.82 Cl 6.09 -9.41 O 10.94 -5.21 C 13.36 -9.41 C 13.36 -6.61 C 14.57 -7.31 C 15.79 -6.61 C 15.79 -5.21 C 14.57 -4.51 C 13.36 -5.21 C 14.57 -8.71 1 2 1 2 3 2 3 4 1 4 5 2 5 6 1 6 1 2 7 8 1 8 9 1 9 10 1 2 10 1 1 7 1 4 11 1 11 12 1 11 13 2 11 14 2 5 15 1 10 16 2 8 17 1 9 18 1 19 20 1 20 21 2 21 22 1 22 23 2 18 23 1 18 19 2 19 24 1";
document.jsapplets[3].readMolecule(jme);
}
function loadMolFile() {
var mol = "O=C(O)c4cn(C1CC1)c3cc(N2CCNCC2)c(F)cc3c4=O |JME 2000.10 Mon Nov 06 13:13:26 GMT+01:00 2000 || 24 27 V2000 | 3.9755 -8.0947 0.0000 O | 7.6150 -10.1944 0.0000 O | 5.1953 -10.1944 0.0000 O | 12.4643 -8.7946 0.0000 F | 10.0346 -8.7946 0.0000 C | 10.0346 -5.9950 0.0000 C | 6.4051 -6.6949 0.0000 C | 13.6741 -3.8953 0.0000 C | 14.8839 -5.9950 0.0000 C | 6.9151 -3.3754 0.0000 C | 8.3149 -3.3754 0.0000 C | 12.4643 -4.5952 0.0000 C | 13.6741 -6.6949 0.0000 C | 14.8839 -4.5952 0.0000 N | 5.1953 -8.7946 0.0000 C | 11.2544 -8.0947 0.0000 C | 6.4051 -8.0947 0.0000 C | 11.2544 -6.6949 0.0000 C | 7.6150 -8.7946 0.0000 C | 8.8248 -8.0947 0.0000 C | 8.8248 -6.6949 0.0000 C | 7.6150 -4.5952 0.0000 C | 12.4643 -5.9950 0.0000 N | 7.6150 -5.9950 0.0000 N | 1 15 2 0 | 2 19 2 0 | 3 15 1 0 | 4 16 1 0 | 5 16 1 0 | 5 20 2 0 | 6 18 1 0 | 6 21 2 0 | 7 17 2 0 | 7 24 1 0 | 8 12 1 0 | 8 14 1 0 | 9 13 1 0 | 9 14 1 0 | 10 11 1 0 | 10 22 1 0 | 11 22 1 0 | 12 23 1 0 | 13 23 1 0 | 15 17 1 0 | 16 18 2 0 | 17 19 1 0 | 18 23 1 0 | 19 20 1 0 | 20 21 1 0 | 21 24 1 0 | 22 24 1 0 |M END ";
document.jsapplets[4].readMolFile(mol);
}
//Replacement for body onLoad
//otherwise onLoad will be called before all JSME applets are ready
function jsmeOnLoad() {
loadJmeFile();loadMolFile();
}
</script>
</head>
<body onLoad="">
<h2>Loading molecules to and from JME</h2>
<form>
<font size="2"><table width="100%">
<tr>
<td valign="top"><div name="JME" code="JME.class"
archive="JME.jar" width=350 height=350></div>
<br>
<font face="arial,helvetica,sans-serif"><small><a
href="http://www.molinspiration.com/jme/index.html">JME
Editor</a> courtesy of Peter Ertl, Novartis</small></font>
<p>
Active molecule window # &nbsp;&nbsp; <select name="to"><option>1
<option>2
<option>3
<option>4</select>
<p>
<input type="button" value="Transfer from editor"
onClick="fromEditor(this.form)">
<p>
<input type="button" value="Transfer to editor"
onClick="toEditor(this.form)"></td>
<td><table border=1>
<tr>
<td>
<!--//-->
<div code="JME.class" archive="JME.jar" width=250 height=120>
<param name="options" value="depict">
<param name="mol"
value=" CC(C)NCC(O)COc1cccc2[nH]ccc12|
JME 2000.10 Mon Nov 06 11:12:01 GMT+01:00 2000|
|
18 19 V2000|
4.6662 -8.3962 0.0000 C |
3.4157 -6.3154 0.0000 C |
8.2377 -4.8348 0.0000 O |
13.1697 -8.9465 0.0000 C |
14.7704 -4.6047 0.0000 C |
11.9392 -8.2662 0.0000 C |
14.3702 -8.2262 0.0000 C |
13.3798 -4.7747 0.0000 C |
7.0672 -6.9556 0.0000 C |
9.4882 -6.9156 0.0000 C |
5.8367 -6.2754 0.0000 N |
15.3606 -5.8752 0.0000 N |
10.6887 -6.1953 0.0000 O |
11.9192 -6.8656 0.0000 C |
14.3402 -6.8256 0.0000 C |
13.1197 -6.1453 0.0000 C |
4.6362 -6.9957 0.0000 C |
8.2677 -6.2353 0.0000 C |
1 17 1 0 |
2 17 1 0 |
3 18 1 0 |
4 6 2 0 |
4 7 1 0 |
5 8 2 0 |
5 12 1 0 |
6 14 1 0 |
7 15 2 0 |
8 16 1 0 |
9 11 1 0 |
9 18 1 0 |
10 13 1 0 |
10 18 1 0 |
11 17 1 0 |
12 15 1 0 |
13 14 1 0 |
14 16 2 0 |
15 16 1 0 |
M END">
</div>
</td>
</tr>
<tr>
<td><div code="JME.class" archive="JME.jar" width=250
height=120>
<param name="options" value="depict">
<param name="jme"
value="22 23 O 2.80 -9.04 O 4.02 -6.94 O 4.02 -11.14 C 7.65 -10.44 C 11.29 -6.94 C 12.50 -9.04 C 6.44 -11.14 C 12.50 -6.24 C 13.71 -8.34 C 6.44 -8.34 N 10.08 -9.04 N 8.86 -8.34 C 4.02 -8.34 C 11.29 -8.34 C 7.65 -9.04 C 5.23 -10.44 C 13.71 -6.94 C 5.23 -9.04 O 14.93 -6.24 C 14.93 -9.04 O 14.93 -10.44 O 16.14 -8.34 1 13 2 2 13 1 3 16 1 4 7 2 4 15 1 5 8 2 5 14 1 6 9 1 6 14 2 7 16 1 8 17 1 9 17 2 10 15 2 10 18 1 11 12 2 11 14 1 12 15 1 13 18 1 16 18 2 17 19 1 9 20 1 20 21 1 20 22 2">
</div></td>
</tr>
<tr>
<td><div code="JME.class" archive="JME.jar" width=250
height=120>
<param name="options" value="depict">
</div></td>
</tr>
<tr>
<td><div code="JME.class" archive="JME.jar" width=250
height=120>
<param name="options" value="depict">
</div></td>
</tr>
</table></td>
</tr>
</table></font>
</form>
</body>
</html>
\ No newline at end of file
<HTML>
<HEAD>
<script type="text/javascript" language="javascript"
src="../jsme/jsme.nocache.js"></script>
<TITLE>JME Example 4</TITLE>
<script>
function saveJMECookie() {
var jme = document.JME.jmeFile();
document.cookie = "jme="+jme+";expires=Thu, 31 Dec 2020 00:00:00 GMT; path=/";
}
function readJMECookie() {
var editor = document.JME;
if (editor.smiles().length > 0) return; // editing already started
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf("jme=") == 0) {
var jme = c.substring(4,c.length);
editor.readMolecule(jme);
return;
}
}
}
function substituent(r) {
document.JME.setSubstituent(r);
}
function openJMEHelp() {
window.open("http://www.molinspiration.com/jme/help/jme2008hints.html","jmehelp","toolbar=no,menubar=no,scrollbars=yes,resizable=yes,width=510,height=675,left=400,top=20");
}
//Replacement for body onLoad - needed for IE678 timing compatibility
//otherwise onLoad will be called before all JSME applets are ready
function jsmeOnLoad() {
readJMECookie();
}
</script>
</HEAD>
<BODY BGCOLOR="#FFFFFF" onLoad=""
onUnload="saveJMECookie()">
<p>
<H2>Adding additional functionality to JME by JavaScript</H2>
Capabilities of JME may be enhanced by adding relatively simple
JavaScript code to the page containing JME.
<br>
<h3>Substituent menu</h3>
This option allows fast and convenient creation of common organic
substituents. Check the JavaScript code in this page to see how the
substituent menu should be implemented.
<p>
<h3>Molecule persistency</h3>
Several users asked for a "persistent molecule" in the JME Editor. That
means that when they visit another page and then come back, the JME
should remember the molecule recently edited. It is relatively easy to
implement this feature. It requires just to add two JavaScript
functions to the page (saveJMECookie and read JMECookie), as shown in
the source of this page. Additionally, respective event handlers must
be added into the page BODY tag.
<br>Whenever the HTML page with the editor is abandoned, the
actual molecule is stored into a so called "cookie" (a small piece of
persistent information associated with this particular web page) and
when the page is revisited (even after several weeks), the molecule is
automatically restored.
<p>
<center>
<table cellpadding=0 cellspacing=0 border=0 width=370>
<tr>
<td align=left>&nbsp;</td>
<td align=right><select
onChange="substituent(options[selectedIndex].text)">
<option>Select substituent
<option>-C(=O)OH
<option>-C(=O)OMe
<option>-OC(=O)Me
<option>-CMe3
<option>-CF3
<option>-CCl3
<option>-NO2
<option>-SO2-NH2
<option>-NH-SO2-Me
<option>-NMe2
<option>-C#N
<option>-C#C-Me
<option>-C#CH</select></td>
</tr>
</table>
<div name='JME' code='JME.class' codebase='.' archive='JME.jar'
width=370 height=312> You have to enable Java in your
browser.</div>
<font face="helvetica,arial,sans-serif"><table width=370
cellpadding=0 cellspacing=0 border=0>
<tr>
<td align="left"><a href="http://www.molinspiration.com/jme/"><small>JME
Editor</a> courtesy of Peter Ertl, Novartis</small></td>
<td align="right"><small><a
href="javascript:openJMEHelp();"
onMouseOver="window.status='Show basic JME editor help'; return true;"
onMouseOut="window.status=''; return true;">JME help</a></small></td>
</tr>
</table>
</center>
</BODY>
</HTML>
\ No newline at end of file
<html>
<head>
<title>JME Molecular Editor</title>
<script type="text/javascript" language="javascript"
src="../jsme/jsme.nocache.js"></script>
<script language="JavaScript">function submitSmiles() {
var smiles = document.JME.smiles();
var jme = document.JME.jmeFile();
if (smiles == "") {
alert("Nothing to submit");
}
else {
opener.fromEditor(smiles,jme);
window.close();
}
}
function openHelpWindow() {
window.open("http://www.molinspiration.com/jme/help/jme2008hints.html","jmehelp","toolbar=no,menubar=no,scrollbars=yes,resizable=yes,width=510,height=675,left=400,top=20");
}
</SCRIPT>
</head>
<body bgcolor="#ffffff">
<center>
<!--//-->
<div code="JME.class" name="JME" archive="JME.jar" width="90%"
height="85%">You have to enable Java and JavaScritpt on your
machine !</div>
<form name="form_editor">
<input type="button" value=" Submit Molecule "
onClick="submitSmiles()"> &nbsp;&nbsp; <input type="button"
value=" Close " onClick="window.close()"> &nbsp;&nbsp; <input
type="button" value=" Help " onClick="openHelpWindow()">
</form>
</center>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
var JN="3",KN="Any",LN="Aromatic",MN="Nonring",NN="Reset",ON="Ring";function PN(){PN=s;QN=new jo(Tc,new RN)}function RN(){}r(192,189,{},RN);_.Pc=function(a){Gv();mK(this,a.b,SN(a.a.a,a.a.a.ob.selectedIndex))};_.Sc=function(){return QN};var QN;function TN(a,b){if(0>b||b>=a.ob.options.length)throw new Us;}function SN(a,b){TN(a,b);return a.ob.options[b].value}function UN(){this.ob=$doc.createElement("<SELECT>");this.ob[Vc]="gwt-ListBox"}r(338,316,ih,UN);function VN(){VN=s}
function WN(a,b){if(null==b)throw new Kp("Missing message: awt.103");var c=-1,d,e,f;f=a.mc.a.ob;e=Em(df);e.text=b;e.removeAttribute("bidiwrapped");e.value=b;d=f.options.length;(0>c||c>d)&&(c=d);c==d?f.add(e):(c=f.options[c])?f.add(e,c.index):f.add(e)}function XN(){VN();Fv.call(this);new ri;this.mc=new YN((Gv(),this))}r(405,392,{89:1,91:1,98:1,110:1,116:1},XN);_.Yd=function(){return Kv(this.mc,this)};
_.le=function(){return(null==this.jc&&(this.jc=rv(this)),this.jc)+sa+this.uc+sa+this.vc+sa+this.rc+Hg+this.hc+(this.qc?l:",hidden")+",current="+SN(this.mc.a,this.mc.a.ob.selectedIndex)};function ZN(){LJ.call(this,7)}r(418,1,mh,ZN);function $N(a){NJ.call(this,a,0)}r(423,392,Th,$N);function aO(a){var b=a.j;lK(a.mc.c,b.a,b.b);!tv(a)&&fJ(a);aJ(a)}
function bO(a,b,c){iK.call(this);this.mc&&GJ(this.mc.c,!1);DJ(this,!1);Tv(this,new LJ(0));a=new NJ(a,1);$(this,a,null);a=new Yv;$(a,this.i,null);$(this,a,null);b&&(this.j=uv(b),CJ(this),hK(this.j,~~(zm(b.$b.ob,Ze)/2)-~~(this.rc/2),~~(zm(b.$b.ob,Ye)/2)-~~(this.hc/2)));c&&Z(this,c)}r(540,541,AF,bO);_.dg=function(){return"OK"};r(546,547,hh);_.Lc=function(){aO(new bO(this.b,this.a,(yy(),Ay)))};r(549,547,hh);_.Lc=function(){!this.a.Ib?this.a.Ib=new cO(this.a):this.a.Ib.mc.c.gb?$K(this.a.Ib.mc.c):aO(this.a.Ib)};
function dO(a,b){XI(b)==a.a?Z(b,(pw(),yw)):Z(b,a.a)}
function eO(a){var b,c,d,e;e=l;d=!1;XI(fO)!=a.a?(e=qa,d=!0):XI(gO)!=a.a?(e="!#6",d=!0):XI(hO)!=a.a?(Z(iO,(pw(),yw)),Z(jO,yw),Z(kO,yw),Z(lO,yw),e="F,Cl,Br,I"):(b=XI(mO)!=a.a,c=XI(nO)!=a.a,XI(oO)!=a.a&&(b?e+="c,":c?e+="C,":e+="#6,"),XI(pO)!=a.a&&(b?e+="n,":c?e+="N,":e+="#7,"),XI(qO)!=a.a&&(b?e+="o,":c?e+="O,":e+="#8,"),XI(rO)!=a.a&&(b?e+="s,":c?e+="S,":e+="#16,"),XI(sO)!=a.a&&(b?e+="p,":c?e+="P,":e+="#15,"),XI(iO)!=a.a&&(e+="F,"),XI(jO)!=a.a&&(e+="Cl,"),XI(kO)!=a.a&&(e+="Br,"),XI(lO)!=a.a&&(e+="I,"),
tC(e,sa)&&(e=e.substr(0,e.length-1-0)),1>e.length&&!a.b&&(b?e=nc:c?e=lb:(Z(fO,(pw(),yw)),e=qa)));b=l;d&&XI(mO)!=a.a&&(b+=";a");d&&XI(nO)!=a.a&&(b+=";A");XI(vO)!=a.a&&(b+=";R");XI(wO)!=a.a&&(b+=";!R");XI(fO)!=a.a&&0<b.length?e=b.substr(1,b.length-1):e+=b;d=xO.mc.a.ob.selectedIndex;0<d&&(--d,e+=";H"+d);d=yO.mc.a.ob.selectedIndex;0<d&&(--d,e+=";D"+d);XI(zO)!=a.a&&(e="~");XI(AO)!=a.a&&(e=ab);XI(BO)!=a.a&&(e=kb);XI(CO)!=a.a&&(e="!@");QJ(a.e,e)}
function DO(a){EO(a);FO(a);var b=xO.mc.a;TN(b,0);b.ob.options[0].selected=!0;b=yO.mc.a;TN(b,0);b.ob.options[0].selected=!0;Z(mO,a.a);Z(nO,a.a);Z(vO,a.a);Z(wO,a.a);Z(xO,a.a);Z(yO,a.a);GO(a)}function EO(a){Z(oO,a.a);Z(pO,a.a);Z(qO,a.a);Z(rO,a.a);Z(sO,a.a);Z(iO,a.a);Z(jO,a.a);Z(kO,a.a);Z(lO,a.a)}function FO(a){Z(fO,a.a);Z(gO,a.a);Z(hO,a.a)}function GO(a){Z(zO,a.a);Z(AO,a.a);Z(BO,a.a);Z(CO,a.a);a.b=!1}
function cO(a){EJ.call(this,"Atom/Bond Query");this.i=new xJ(this.dg());iw(this.q,new jK(this));this.a=(yy(),Ay);this.c=a;this.d||(a=uv(a),this.d=new PJ(a),hK(this.d,-150,10));this.j=this.d;Tv(this,new ZN);Z(this,this.a);a=new Yv;Tv(a,new Pw(0,3,1));$(a,new $N("Atom type :"),null);fO=new xJ(KN);gO=new xJ("Any except C");hO=new xJ("Halogen");$(a,fO,null);$(a,gO,null);$(a,hO,null);$(this,a,null);a=new Yv;Tv(a,new Pw(0,3,1));$(a,new NJ("Or select one or more from the list :",0),null);$(this,a,null);
a=new Yv;Tv(a,new Pw(0,3,1));oO=new xJ(ob);pO=new xJ(Kb);qO=new xJ(Ob);rO=new xJ(Xb);sO=new xJ(Pb);iO=new xJ(yb);jO=new xJ(tb);kO=new xJ(nb);lO=new xJ(Db);$(a,oO,null);$(a,pO,null);$(a,qO,null);$(a,rO,null);$(a,sO,null);$(a,iO,null);$(a,jO,null);$(a,kO,null);$(a,lO,null);$(this,a,null);a=new Yv;Tv(a,new Pw(0,3,1));xO=new XN;WN(xO,KN);WN(xO,Wa);WN(xO,Ya);WN(xO,$a);WN(xO,JN);$(a,new $N("Number of hydrogens : "),null);$(a,xO,null);$(this,a,null);a=new Yv;Tv(a,new Pw(0,3,1));yO=new XN;WN(yO,KN);WN(yO,
Wa);WN(yO,Ya);WN(yO,$a);WN(yO,JN);WN(yO,"4");WN(yO,"5");WN(yO,"6");$(a,new NJ("Number of connections :",0),null);$(a,yO,null);$(a,new NJ(" (H's don't count.)",0),null);$(this,a,null);a=new Yv;Tv(a,new Pw(0,3,1));$(a,new $N("Atom is :"),null);mO=new xJ(LN);$(a,mO,null);nO=new xJ("Nonaromatic");$(a,nO,null);vO=new xJ(ON);$(a,vO,null);wO=new xJ(MN);$(a,wO,null);$(this,a,null);a=new Yv;Z(a,Fw(XI(this)));Tv(a,new Pw(0,3,1));$(a,new $N("Bond is :"),null);zO=new xJ(KN);$(a,zO,null);AO=new xJ(LN);$(a,AO,
null);BO=new xJ(ON);$(a,BO,null);CO=new xJ(MN);$(a,CO,null);$(this,a,null);a=new Yv;Tv(a,new Pw(1,3,1));this.e=new vx(qa,20);$(a,this.e,null);$(a,new xJ(NN),null);$(a,this.i,null);$(this,a,null);this.mc&&GJ(this.mc.c,!1);DJ(this,!1);EO(this);FO(this);GO(this);Z(mO,this.a);Z(nO,this.a);Z(vO,this.a);Z(wO,this.a);Z(xO,this.a);Z(yO,this.a);dO(this,fO);CJ(this);a=this.j;lK(this.mc.c,a.a,a.b);!tv(this)&&fJ(this);aJ(this)}r(559,541,AF,cO);
_.eg=function(a,b){var c;H(b,NN)?(DO(this),dO(this,fO),eO(this)):E(a.f,88)?(GO(this),rq(a.f)===rq(fO)?(EO(this),FO(this)):rq(a.f)===rq(gO)?(EO(this),FO(this)):rq(a.f)===rq(hO)?(EO(this),FO(this)):rq(a.f)===rq(vO)?Z(wO,this.a):rq(a.f)===rq(wO)?(Z(vO,this.a),Z(mO,this.a)):rq(a.f)===rq(mO)?(Z(nO,this.a),Z(wO,this.a)):rq(a.f)===rq(nO)?Z(mO,this.a):rq(a.f)===rq(zO)||rq(a.f)===rq(AO)||rq(a.f)===rq(BO)||rq(a.f)===rq(CO)?(DO(this),this.b=!0):FO(this),dO(this,a.f),eO(this)):E(a.f,89)&&(GO(this),c=a.f,0==c.mc.a.ob.selectedIndex?
Z(c,this.a):Z(c,(pw(),yw)),eO(this));107!=this.c.e&&(this.c.e=107,cw(this.c));return!0};_.fg=function(){return Am(this.e.mc.a.ob,xg)};_.gg=function(){return this.b};_.b=!1;_.c=null;_.d=null;var fO=_.e=null,zO=null,gO=null,mO=null,AO=null,kO=null,oO=null,yO=null,xO=null,jO=null,iO=null,hO=null,lO=null,pO=null,nO=null,wO=null,CO=null,qO=null,sO=null,vO=null,BO=null,rO=null;function YN(a){FE();HE.call(this);this.a=new UN;os(this.a,new HO(this,a),(PN(),PN(),QN))}r(604,602,{},YN);_.Fe=function(){return this.a};
_.a=null;function HO(a,b){this.a=a;this.b=b}r(605,1,{},HO);_.a=null;_.b=null;Y(540);Y(559);Y(405);Y(604);Y(605);Y(338);Y(192);y(vF)(1);
\ No newline at end of file
r(548,547,hh);_.Lc=function(){this.a.d&&fK(this.a.d);this.a.d=new kK(0,this.a)};y(vF)(2);
\ No newline at end of file
r(550,547,hh);_.Lc=function(){this.a.Rb&&fK(this.a.Rb);this.a.Rb=new kK(1,this.a)};y(vF)(3);
\ No newline at end of file
r(551,547,hh);_.Lc=function(){this.a.s&&(fK(this.a.s),this.a.s=null);0==this.a.cb.E&&(this.a.s=new kK(2,this.a))};y(vF)(4);
\ No newline at end of file
r(201,189,{});function IO(){IO=s;JO=new jo("dragend",new KO)}function LO(a){a.a.cancelBubble=!0;Fm(a.a)}function KO(){}r(202,201,{},KO);_.Pc=function(){LO(this)};_.Sc=function(){return JO};var JO;function MO(){MO=s;NO=new jo("dragenter",new OO)}function OO(){}r(203,201,{},OO);_.Pc=function(){LO(this)};_.Sc=function(){return NO};var NO;function PO(){PO=s;QO=new jo("dragover",new RO)}function RO(){}r(204,201,{},RO);_.Pc=function(){LO(this)};_.Sc=function(){return QO};var QO;
function SO(){SO=s;TO=new jo("drop",new UO)}function UO(){}r(205,201,{},UO);_.Pc=function(a){var b,c,d,e;this.a.cancelBubble=!0;Fm(this.a);d=(this.a.dataTransfer||null).files;e=0;a:for(;e<d.length;++e){if(0<a.a.d&&e>=a.a.d)break a;b=d[e];c=new FileReader;VO(c,a.a.b);1==a.a.c&&c.readAsText(b)}0==d.length&&(b=(this.a.dataTransfer||null).getData(hg),a.a.b.a.a.e.ob[xg]=null!=b?b:l)};_.Sc=function(){return TO};var TO;function WO(a,b,c){Jp(!a.lb?a.lb=new Yp(a):a.lb,c,b)}
function XO(a){var b=Em(rd);FG(Xf,EG(b));this.ob=b;this.b=new uI(this.ob);this.ob[Vc]="gwt-HTML";tI(this.b,a,!0);CI(this)}r(323,324,{13:1,15:1,17:1,18:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,30:1,31:1,32:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1,44:1,45:1,47:1,49:1,53:1,58:1,68:1,69:1,70:1,73:1,77:1,80:1,81:1,83:1},XO);function YO(){Vu();var a=Em("textarea");!hr&&(hr=new gr);!fr&&(fr=new er);this.ob=a;this.ob[Vc]="gwt-TextArea"}r(363,364,Rh,YO);
function ZO(a,b){var c,d;c=Em(sg);d=Em(gg);d[wc]=a.a.a;d.style[yg]=a.b.a;var e=(jr(),kr(d));c.appendChild(e);ir(a.d,c);Rs(a,b,d)}function $O(){Lt.call(this);this.a=(Ot(),Vt);this.b=(Wt(),Zt);this.e[Rc]=Wa;this.e[Qc]=Wa}r(372,317,Hh,$O);_.Dd=function(a){var b;b=Dm(a.ob);(a=Vs(this,a))&&this.d.removeChild(Dm(b));return a};
function aP(a){try{a.v=!1;var b,c,d;d=a.gb;c=a._;d||(a.ob.style[zg]=$d,a._=!1,a.Qd());b=a.ob;b.style[ie]=0+(Dn(),nf);b.style[ng]=Xa;lK(a,Fi(Qm($doc)+(Pm()-zm(a.ob,Ze)>>1),0),Fi(Rm($doc)+(Om()-zm(a.ob,Ye)>>1),0));d||((a._=c)?(a.ob.style[ed]=Ff,a.ob.style[zg]=Dg,gi(a.fb,200)):a.ob.style[zg]=Dg)}finally{a.v=!0}}function bP(a){a.f=(new xJ(a.i)).mc.Fe();os(a.f,new cP(a),(po(),po(),qo));a.d=F(dP,m,60,[a.f])}
function eP(){GK();var a,b,c,d,e,f;cL.call(this,(uL(),vL),null,!0);this.xg();this.cb=!0;a=new XO(this.j);this.e=new YO;this.e.ob.style[Gg]=Za;cs(this.e,Za);this.vg();xK(this,"400px");f=new $O;f.ob.style[Zd]=Za;f.e[Rc]=10;c=(Ot(),Pt);f.a=c;ZO(f,a);ZO(f,this.e);e=new cu;e.e[Rc]=20;for(b=this.d,c=0,d=b.length;c<d;++c)a=b[c],$t(e,a);ZO(f,e);LK(this,f);GJ(this,!1);this.wg()}r(612,613,CF,eP);_.vg=function(){bP(this)};_.wg=function(){var a=this.e;a.ob.readOnly=!0;var b=fs(a.ob)+"-readonly";bs(a.qd(),b,!0)};
_.xg=function(){FJ(this.H.b,"Copy")};_.d=null;_.e=null;_.f=null;_.i="Close";_.j="Press Ctrl-C (Command-C on Mac) or right click (Option-click on Mac) on the selected text to copy it, then paste into another program.";function cP(a){this.a=a}r(615,1,{},cP);_.Uc=function(){NK(this.a,!1)};_.a=null;function fP(a){this.a=a}r(616,1,{},fP);
_.Cc=function(){ks(this.a.e.ob,!0);lu(this.a.e.ob);var a=this.a.e,b;b=Am(a.ob,xg).length;if(0<b&&a.jb){if(0>b)throw new pC("Length must be a positive integer. Length: "+b);if(b>Am(a.ob,xg).length)throw new pC("From Index: 0 To Index: "+b+" Text Length: "+Am(a.ob,xg).length);var a=a.ob,c=0;try{var d=a.createTextRange(),e=a.value.substr(c,b).match(/(\r\n)/gi);null!=e&&(b-=e.length);var f=a.value.substring(0,c).match(/(\r\n)/gi);null!=f&&(c-=f.length);d.collapse(!0);d.moveStart("character",c);d.moveEnd("character",
b);d.select()}catch(g){}}};_.a=null;function gP(a){a.i="Cancel";a.j="Paste the text to import into the text area below.";a.b="Accept";FJ(a.H.b,"Paste")}function hP(a){GK();eP.call(this);this.c=a}r(618,612,CF,hP);_.vg=function(){bP(this);this.a=(new xJ(this.b)).mc.Fe();os(this.a,new iP(this),(po(),po(),qo));this.d=F(dP,m,60,[this.a,this.f])};_.wg=function(){cs(this.e,"150px")};_.xg=function(){gP(this)};_.Qd=function(){bL(this);nm((km(),lm),new jP(this))};_.a=null;_.b=null;_.c=null;
function kP(a){GK();hP.call(this,a)}r(617,618,CF,kP);_.wg=function(){cs(this.e,"150px");var a=new lP(this),b=this.e;WO(b,new mP,(MO(),MO(),NO));WO(b,new nP,(IO(),IO(),JO));WO(b,new oP,(PO(),PO(),QO));WO(b,new pP(a),(SO(),SO(),TO))};_.xg=function(){gP(this);this.j+=" Or drag and drop a file on it."};r(621,1,{});r(620,621,{});_.b=null;_.c=1;_.d=-1;function lP(a){this.a=a;this.b=new qP(this);this.c=this.d=1}r(619,620,{},lP);_.a=null;function qP(a){this.a=a}r(622,1,{},qP);
_.yg=function(a){this.a.a.e.ob[xg]=null!=a?a:l};_.a=null;function iP(a){this.a=a}r(626,1,{},iP);_.Uc=function(){if(this.a.c){var a=this.a.c,b;b=new Px(a.a,0,Am(this.a.e.ob,xg));eD(a.a.a,b.a)}NK(this.a,!1)};_.a=null;function jP(a){this.a=a}r(627,1,{},jP);_.Cc=function(){ks(this.a.e.ob,!0);lu(this.a.e.ob)};_.a=null;r(628,1,hh);_.Kc=ns;_.Lc=function(){var a,b;a=new rP(this.a);void 0!=$wnd.FileReader?b=new kP(a):b=new hP(a);zK(b);aP(b)};_.a=null;function rP(a){this.a=a}r(629,1,{},rP);_.a=null;
r(630,1,hh);_.Kc=ns;_.Lc=function(){var a;a=new eP;var b=this.a,c;Uu(a.e,b);b=(c=uC(b,"\r\n|\r|\n|\n\r"),c.length);cs(a.e,20*(10>b?b:10)+nf);nm((km(),lm),new fP(a));zK(a);aP(a)};_.a=null;function VO(a,b){a.onloadend=function(a){b.yg(a.target.result)}}function pP(a){this.a=a}r(635,1,{},pP);_.a=null;function mP(){}r(636,1,{},mP);function nP(){}r(637,1,{},nP);function oP(){}r(638,1,{},oP);Y(621);Y(620);Y(635);Y(636);Y(637);Y(638);Y(201);Y(203);Y(202);Y(204);Y(205);Y(612);var dP=cC(776,GN);Y(618);Y(617);
Y(628);Y(629);Y(630);Y(615);Y(616);Y(626);Y(627);Y(619);Y(622);Y(323);Y(372);Y(363);y(vF)(5);function ns(){};
\ No newline at end of file
var sN="3",tN="Any",uN="Aromatic",vN="Nonring",wN="Reset",xN="Ring";function yN(){yN=s;zN=new Zn(Sc,new AN)}function AN(){}r(191,188,{},AN);_.Pc=function(a){yv();YJ(this,a.b,BN(a.a.a,a.a.a.ob.selectedIndex))};_.Sc=function(){return zN};var zN;function CN(a,b){if(0>b||b>=a.ob.options.length)throw new As;}function BN(a,b){CN(a,b);return a.ob.options[b].value}function DN(){this.ob=$doc.createElement("select");this.ob[Uc]="gwt-ListBox"}r(336,314,dh,DN);function EN(){EN=s}
function FN(a,b){if(null==b)throw new Bp("Missing message: awt.103");var c=-1,d,e,f;f=a.mc.a.ob;e=$doc.createElement(gf);e.text=b;e.removeAttribute("bidiwrapped");e.value=b;d=f.options.length;(0>c||c>d)&&(c=d);c==d?f.add(e,null):(c=f.options[c],f.add(e,c))}function GN(){EN();xv.call(this);new mi;this.mc=new HN((yv(),this))}r(401,388,{89:1,91:1,98:1,110:1,116:1},GN);_.Yd=function(){return Cv(this.mc,this)};
_.le=function(){return(null==this.jc&&(this.jc=jv(this)),this.jc)+va+this.uc+va+this.vc+va+this.rc+Cg+this.hc+(this.qc?l:",hidden")+",current="+BN(this.mc.a,this.mc.a.ob.selectedIndex)};function IN(){wJ.call(this,7)}r(414,1,hh,IN);function JN(a){yJ.call(this,a,0)}r(419,388,Oh,JN);function KN(a){var b=a.j;XJ(a.mc.c,b.a,b.b);!lv(a)&&RI(a);MI(a)}
function LN(a,b,c){UJ.call(this);this.mc&&rJ(this.mc.c,!1);oJ(this,!1);Lv(this,new wJ(0));a=new yJ(a,1);$(this,a,null);a=new Qv;$(a,this.i,null);$(this,a,null);b&&(this.j=mv(b),nJ(this),TJ(this.j,~~(um(b.$b.ob,df)/2)-~~(this.rc/2),~~(um(b.$b.ob,cf)/2)-~~(this.hc/2)));c&&Z(this,c)}r(536,537,nF,LN);_.dg=function(){return"OK"};r(542,543,ch);_.Lc=function(){KN(new LN(this.b,this.a,(ny(),py)))};r(545,543,ch);_.Lc=function(){!this.a.Ib?this.a.Ib=new MN(this.a):this.a.Ib.mc.c.gb?LK(this.a.Ib.mc.c):KN(this.a.Ib)};
function NN(a,b){II(b)==a.a?Z(b,(hw(),qw)):Z(b,a.a)}
function ON(a){var b,c,d,e;e=l;d=!1;II(PN)!=a.a?(e=ta,d=!0):II(QN)!=a.a?(e="!#6",d=!0):II(RN)!=a.a?(Z(SN,(hw(),qw)),Z(TN,qw),Z(UN,qw),Z(VN,qw),e="F,Cl,Br,I"):(b=II(WN)!=a.a,c=II(XN)!=a.a,II(YN)!=a.a&&(b?e+="c,":c?e+="C,":e+="#6,"),II(ZN)!=a.a&&(b?e+="n,":c?e+="N,":e+="#7,"),II($N)!=a.a&&(b?e+="o,":c?e+="O,":e+="#8,"),II(aO)!=a.a&&(b?e+="s,":c?e+="S,":e+="#16,"),II(dO)!=a.a&&(b?e+="p,":c?e+="P,":e+="#15,"),II(SN)!=a.a&&(e+="F,"),II(TN)!=a.a&&(e+="Cl,"),II(UN)!=a.a&&(e+="Br,"),II(VN)!=a.a&&(e+="I,"),
iC(e,va)&&(e=e.substr(0,e.length-1-0)),1>e.length&&!a.b&&(b?e=mc:c?e=ob:(Z(PN,(hw(),qw)),e=ta)));b=l;d&&II(WN)!=a.a&&(b+=";a");d&&II(XN)!=a.a&&(b+=";A");II(eO)!=a.a&&(b+=";R");II(fO)!=a.a&&(b+=";!R");II(PN)!=a.a&&0<b.length?e=b.substr(1,b.length-1):e+=b;d=gO.mc.a.ob.selectedIndex;0<d&&(--d,e+=";H"+d);d=hO.mc.a.ob.selectedIndex;0<d&&(--d,e+=";D"+d);II(iO)!=a.a&&(e="~");II(jO)!=a.a&&(e=eb);II(kO)!=a.a&&(e=nb);II(lO)!=a.a&&(e="!@");BJ(a.e,e)}
function mO(a){nO(a);oO(a);var b=gO.mc.a;CN(b,0);b.ob.options[0].selected=!0;b=hO.mc.a;CN(b,0);b.ob.options[0].selected=!0;Z(WN,a.a);Z(XN,a.a);Z(eO,a.a);Z(fO,a.a);Z(gO,a.a);Z(hO,a.a);pO(a)}function nO(a){Z(YN,a.a);Z(ZN,a.a);Z($N,a.a);Z(aO,a.a);Z(dO,a.a);Z(SN,a.a);Z(TN,a.a);Z(UN,a.a);Z(VN,a.a)}function oO(a){Z(PN,a.a);Z(QN,a.a);Z(RN,a.a)}function pO(a){Z(iO,a.a);Z(jO,a.a);Z(kO,a.a);Z(lO,a.a);a.b=!1}
function MN(a){pJ.call(this,"Atom/Bond Query");this.i=new iJ(this.dg());aw(this.q,new VJ(this));this.a=(ny(),py);this.c=a;this.d||(a=mv(a),this.d=new AJ(a),TJ(this.d,-150,10));this.j=this.d;Lv(this,new IN);Z(this,this.a);a=new Qv;Lv(a,new Hw(0,3,1));$(a,new JN("Atom type :"),null);PN=new iJ(tN);QN=new iJ("Any except C");RN=new iJ("Halogen");$(a,PN,null);$(a,QN,null);$(a,RN,null);$(this,a,null);a=new Qv;Lv(a,new Hw(0,3,1));$(a,new yJ("Or select one or more from the list :",0),null);$(this,a,null);
a=new Qv;Lv(a,new Hw(0,3,1));YN=new iJ(rb);ZN=new iJ(Lb);$N=new iJ(Rb);aO=new iJ(Yb);dO=new iJ(Sb);SN=new iJ(Ab);TN=new iJ(vb);UN=new iJ(qb);VN=new iJ(Gb);$(a,YN,null);$(a,ZN,null);$(a,$N,null);$(a,aO,null);$(a,dO,null);$(a,SN,null);$(a,TN,null);$(a,UN,null);$(a,VN,null);$(this,a,null);a=new Qv;Lv(a,new Hw(0,3,1));gO=new GN;FN(gO,tN);FN(gO,Ya);FN(gO,$a);FN(gO,db);FN(gO,sN);$(a,new JN("Number of hydrogens : "),null);$(a,gO,null);$(this,a,null);a=new Qv;Lv(a,new Hw(0,3,1));hO=new GN;FN(hO,tN);FN(hO,
Ya);FN(hO,$a);FN(hO,db);FN(hO,sN);FN(hO,"4");FN(hO,"5");FN(hO,"6");$(a,new yJ("Number of connections :",0),null);$(a,hO,null);$(a,new yJ(" (H's don't count.)",0),null);$(this,a,null);a=new Qv;Lv(a,new Hw(0,3,1));$(a,new JN("Atom is :"),null);WN=new iJ(uN);$(a,WN,null);XN=new iJ("Nonaromatic");$(a,XN,null);eO=new iJ(xN);$(a,eO,null);fO=new iJ(vN);$(a,fO,null);$(this,a,null);a=new Qv;Z(a,xw(II(this)));Lv(a,new Hw(0,3,1));$(a,new JN("Bond is :"),null);iO=new iJ(tN);$(a,iO,null);jO=new iJ(uN);$(a,jO,
null);kO=new iJ(xN);$(a,kO,null);lO=new iJ(vN);$(a,lO,null);$(this,a,null);a=new Qv;Lv(a,new Hw(1,3,1));this.e=new mx(ta,20);$(a,this.e,null);$(a,new iJ(wN),null);$(a,this.i,null);$(this,a,null);this.mc&&rJ(this.mc.c,!1);oJ(this,!1);nO(this);oO(this);pO(this);Z(WN,this.a);Z(XN,this.a);Z(eO,this.a);Z(fO,this.a);Z(gO,this.a);Z(hO,this.a);NN(this,PN);nJ(this);a=this.j;XJ(this.mc.c,a.a,a.b);!lv(this)&&RI(this);MI(this)}r(555,537,nF,MN);
_.eg=function(a,b){var c;H(b,wN)?(mO(this),NN(this,PN),ON(this)):E(a.f,88)?(pO(this),iq(a.f)===iq(PN)?(nO(this),oO(this)):iq(a.f)===iq(QN)?(nO(this),oO(this)):iq(a.f)===iq(RN)?(nO(this),oO(this)):iq(a.f)===iq(eO)?Z(fO,this.a):iq(a.f)===iq(fO)?(Z(eO,this.a),Z(WN,this.a)):iq(a.f)===iq(WN)?(Z(XN,this.a),Z(fO,this.a)):iq(a.f)===iq(XN)?Z(WN,this.a):iq(a.f)===iq(iO)||iq(a.f)===iq(jO)||iq(a.f)===iq(kO)||iq(a.f)===iq(lO)?(mO(this),this.b=!0):oO(this),NN(this,a.f),ON(this)):E(a.f,89)&&(pO(this),c=a.f,0==c.mc.a.ob.selectedIndex?
Z(c,this.a):Z(c,(hw(),qw)),ON(this));107!=this.c.e&&(this.c.e=107,Vv(this.c));return!0};_.fg=function(){return vm(this.e.mc.a.ob,tg)};_.gg=function(){return this.b};_.b=!1;_.c=null;_.d=null;var PN=_.e=null,iO=null,QN=null,WN=null,jO=null,UN=null,YN=null,hO=null,gO=null,TN=null,SN=null,RN=null,VN=null,ZN=null,XN=null,fO=null,lO=null,$N=null,dO=null,eO=null,kO=null,aO=null;function HN(a){sE();uE.call(this);this.a=new DN;hs(this.a,new qO(this,a),(yN(),yN(),zN))}r(601,599,{},HN);_.Fe=function(){return this.a};
_.a=null;function qO(a,b){this.a=a;this.b=b}r(602,1,{},qO);_.a=null;_.b=null;Y(536);Y(555);Y(401);Y(601);Y(602);Y(336);Y(191);y(iF)(1);
\ No newline at end of file
r(544,543,ch);_.Lc=function(){this.a.d&&RJ(this.a.d);this.a.d=new WJ(0,this.a)};y(iF)(2);
\ No newline at end of file
r(546,543,ch);_.Lc=function(){this.a.Rb&&RJ(this.a.Rb);this.a.Rb=new WJ(1,this.a)};y(iF)(3);
\ No newline at end of file
r(547,543,ch);_.Lc=function(){this.a.s&&(RJ(this.a.s),this.a.s=null);0==this.a.cb.E&&(this.a.s=new WJ(2,this.a))};y(iF)(4);
\ No newline at end of file
r(200,188,{});function rO(){rO=s;sO=new Zn(xd,new tO)}function uO(a){a.a.stopPropagation();a.a.preventDefault()}function tO(){}r(201,200,{},tO);_.Pc=function(){uO(this)};_.Sc=function(){return sO};var sO;function vO(){vO=s;wO=new Zn(yd,new xO)}function xO(){}r(202,200,{},xO);_.Pc=function(){uO(this)};_.Sc=function(){return wO};var wO;function yO(){yO=s;zO=new Zn(zd,new AO)}function AO(){}r(203,200,{},AO);_.Pc=function(){uO(this)};_.Sc=function(){return zO};var zO;
function BO(){BO=s;CO=new Zn(Ad,new DO)}function DO(){}r(204,200,{},DO);_.Pc=function(a){var b,c,d,e;this.a.stopPropagation();this.a.preventDefault();d=(this.a.dataTransfer||null).files;e=0;a:for(;e<d.length;++e){if(0<a.a.d&&e>=a.a.d)break a;b=d[e];c=new FileReader;EO(c,a.a.b);1==a.a.c&&c.readAsText(b)}0==d.length&&(b=(this.a.dataTransfer||null).getData(dg),a.a.b.a.a.e.ob[tg]=null!=b?b:l)};_.Sc=function(){return CO};var CO;
function FO(a,b,c){var d=a.ob,e=c.b;hr();Rr(d,e);Ap(!a.lb?a.lb=new Pp(a):a.lb,c,b)}function GO(a){var b=$doc.createElement(qd);lH(Tf,b.tagName);this.ob=b;this.b=new fI(this.ob);this.ob[Uc]="gwt-HTML";eI(this.b,a,!0);nI(this)}r(321,322,{13:1,15:1,17:1,18:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,30:1,31:1,32:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1,44:1,45:1,47:1,49:1,53:1,58:1,68:1,69:1,70:1,73:1,77:1,80:1,81:1,83:1},GO);
function HO(){Nu();var a=$doc.createElement("textarea");!Zq&&(Zq=new Yq);!Xq&&(Xq=new Wq);this.ob=a;this.ob[Uc]="gwt-TextArea"}r(361,362,Mh,HO);function IO(a,b){var c,d;c=$doc.createElement(og);d=$doc.createElement(cg);d[vc]=a.a.a;d.style[ug]=a.b.a;var e=(ar(),br(d));c.appendChild(e);$q(a.d,c);xs(a,b,d)}function JO(){Et.call(this);this.a=(Ht(),Ot);this.b=(Pt(),St);this.e[Qc]=Ya;this.e[Pc]=Ya}r(370,315,Ih,JO);_.Dd=function(a){var b;b=ym(a.ob);(a=Bs(this,a))&&this.d.removeChild(ym(b));return a};
function KO(a){try{a.v=!1;var b,c,d;d=a.gb;c=a._;d||(a.ob.style[vg]=ce,a._=!1,a.Qd());b=a.ob;b.style[me]=0+(sn(),qf);b.style[jg]=Za;XJ(a,Ai(Fm($doc)+(Em()-um(a.ob,df)>>1),0),Ai(Gm($doc)+(Dm()-um(a.ob,cf)>>1),0));d||((a._=c)?(a.ob.style[dd]=wf,a.ob.style[vg]=zg,bi(a.fb,200)):a.ob.style[vg]=zg)}finally{a.v=!0}}function LO(a){a.f=(new iJ(a.i)).mc.Fe();hs(a.f,new MO(a),(fo(),fo(),go));a.d=F(NO,m,60,[a.f])}
function OO(){rK();var a,b,c,d,e,f;OK.call(this,(fL(),gL),null,!0);this.xg();this.cb=!0;a=new GO(this.j);this.e=new HO;this.e.ob.style[Bg]=cb;Wr(this.e,cb);this.vg();iK(this,"400px");f=new JO;f.ob.style[be]=cb;f.e[Qc]=10;c=(Ht(),It);f.a=c;IO(f,a);IO(f,this.e);e=new Wt;e.e[Qc]=20;for(b=this.d,c=0,d=b.length;c<d;++c)a=b[c],Tt(e,a);IO(f,e);wK(this,f);rJ(this,!1);this.wg()}r(609,610,pF,OO);_.vg=function(){LO(this)};_.wg=function(){var a=this.e;a.ob.readOnly=!0;var b=Zr(a.ob)+"-readonly";Vr(a.qd(),b,!0)};
_.xg=function(){qJ(this.H.b,"Copy")};_.d=null;_.e=null;_.f=null;_.i="Close";_.j="Press Ctrl-C (Command-C on Mac) or right click (Option-click on Mac) on the selected text to copy it, then paste into another program.";function MO(a){this.a=a}r(612,1,{},MO);_.Uc=function(){yK(this.a,!1)};_.a=null;function PO(a){this.a=a}r(613,1,{},PO);
_.Cc=function(){ds(this.a.e.ob,!0);this.a.e.ob.focus();var a=this.a.e,b;b=vm(a.ob,tg).length;if(0<b&&a.jb){if(0>b)throw new eC("Length must be a positive integer. Length: "+b);if(b>vm(a.ob,tg).length)throw new eC("From Index: 0 To Index: "+b+" Text Length: "+vm(a.ob,tg).length);try{a.ob.setSelectionRange(0,0+b)}catch(c){}}};_.a=null;function QO(a){a.i="Cancel";a.j="Paste the text to import into the text area below.";a.b="Accept";qJ(a.H.b,"Paste")}function RO(a){rK();OO.call(this);this.c=a}
r(615,609,pF,RO);_.vg=function(){LO(this);this.a=(new iJ(this.b)).mc.Fe();hs(this.a,new SO(this),(fo(),fo(),go));this.d=F(NO,m,60,[this.a,this.f])};_.wg=function(){Wr(this.e,"150px")};_.xg=function(){QO(this)};_.Qd=function(){NK(this);jm((gm(),hm),new TO(this))};_.a=null;_.b=null;_.c=null;function UO(a){rK();RO.call(this,a)}r(614,615,pF,UO);
_.wg=function(){Wr(this.e,"150px");var a=new VO(this),b=this.e;FO(b,new WO,(vO(),vO(),wO));FO(b,new XO,(rO(),rO(),sO));FO(b,new YO,(yO(),yO(),zO));FO(b,new ZO(a),(BO(),BO(),CO))};_.xg=function(){QO(this);this.j+=" Or drag and drop a file on it."};r(618,1,{});r(617,618,{});_.b=null;_.c=1;_.d=-1;function VO(a){this.a=a;this.b=new $O(this);this.c=this.d=1}r(616,617,{},VO);_.a=null;function $O(a){this.a=a}r(619,1,{},$O);_.yg=function(a){this.a.a.e.ob[tg]=null!=a?a:l};_.a=null;
function SO(a){this.a=a}r(621,1,{},SO);_.Uc=function(){if(this.a.c){var a=this.a.c,b;b=new Dx(a.a,0,vm(this.a.e.ob,tg));UC(a.a.a,b.a)}yK(this.a,!1)};_.a=null;function TO(a){this.a=a}r(622,1,{},TO);_.Cc=function(){ds(this.a.e.ob,!0);this.a.e.ob.focus()};_.a=null;r(623,1,ch);_.Lc=function(){var a,b;a=new aP(this.a);void 0!=$wnd.FileReader?b=new UO(a):b=new RO(a);kK(b);KO(b)};function aP(a){this.a=a}r(624,1,{},aP);_.a=null;r(625,1,ch);
_.Lc=function(){var a;a=new OO;var b=this.a,c;Mu(a.e,b);b=(c=jC(b,"\r\n|\r|\n|\n\r"),c.length);Wr(a.e,20*(10>b?b:10)+qf);jm((gm(),hm),new PO(a));kK(a);KO(a)};function EO(a,b){a.onloadend=function(a){b.yg(a.target.result)}}function ZO(a){this.a=a}r(630,1,{},ZO);_.a=null;function WO(){}r(631,1,{},WO);function XO(){}r(632,1,{},XO);function YO(){}r(633,1,{},YO);Y(618);Y(617);Y(630);Y(631);Y(632);Y(633);Y(200);Y(202);Y(201);Y(203);Y(204);Y(609);var NO=SB(770,pN);Y(615);Y(614);Y(624);Y(612);Y(613);Y(621);
Y(622);Y(616);Y(619);Y(321);Y(370);Y(361);y(iF)(5);
\ No newline at end of file
var JN="3",KN="Any",LN="Aromatic",MN="Nonring",NN="Reset",ON="Ring";function PN(){PN=s;QN=new ko(Vc,new RN)}function RN(){}r(196,193,{},RN);_.Tc=function(a){Tv();pK(this,a.b,SN(a.a.a,a.a.a.ob.selectedIndex))};_.Wc=function(){return QN};var QN;function TN(a,b){if(0>b||b>=a.ob.options.length)throw new Ks;}function SN(a,b){TN(a,b);return a.ob.options[b].value}function UN(){Ot();this.ob=$doc.createElement("select");this.ob[dd]="gwt-ListBox"}r(341,319,jh,UN);function VN(){VN=s}
function WN(a,b){if(null==b)throw new Lp("Missing message: awt.103");var c=-1,d,e,f;f=a.mc.a.ob;e=$doc.createElement(lf);e.text=b;e.removeAttribute("bidiwrapped");e.value=b;d=f.options.length;(0>c||c>d)&&(c=d);c==d?f.add(e,null):(c=f.options[c],f.add(e,c))}function XN(){VN();Sv.call(this);new qi;this.mc=new YN((Tv(),this))}r(408,395,{89:1,91:1,98:1,110:1,116:1},XN);_.be=function(){return Xv(this.mc,this)};
_.qe=function(){return(null==this.jc&&(this.jc=Ev(this)),this.jc)+va+this.uc+va+this.vc+va+this.rc+Jg+this.hc+(this.qc?l:",hidden")+",current="+SN(this.mc.a,this.mc.a.ob.selectedIndex)};function ZN(){PJ.call(this,7)}r(421,1,mh,ZN);function $N(a){RJ.call(this,a,0)}r(426,395,Ah,$N);function aO(a){var b=a.j;oK(a.mc.c,b.a,b.b);!Gv(a)&&jJ(a);eJ(a)}
function bO(a,b,c){lK.call(this);this.mc&&KJ(this.mc.c,!1);HJ(this,!1);fw(this,new PJ(0));a=new RJ(a,1);$(this,a,null);a=new kw;$(a,this.i,null);$(this,a,null);b&&(this.j=Hv(b),GJ(this),kK(this.j,~~(Fm(b.$b.ob,hf)/2)-~~(this.rc/2),~~(Fm(b.$b.ob,gf)/2)-~~(this.hc/2)));c&&Z(this,c)}r(543,544,JF,bO);_.ig=function(){return"OK"};r(549,550,Fh);_.Pc=function(){aO(new bO(this.b,this.a,(Ly(),Ny)))};r(552,550,Fh);_.Pc=function(){!this.a.Ib?this.a.Ib=new cO(this.a):this.a.Ib.mc.c.gb?cL(this.a.Ib.mc.c):aO(this.a.Ib)};
function dO(a,b){aJ(b)==a.a?Z(b,(Cw(),Lw)):Z(b,a.a)}
function eO(a){var b,c,d,e;e=l;d=!1;aJ(fO)!=a.a?(e=ta,d=!0):aJ(gO)!=a.a?(e="!#6",d=!0):aJ(hO)!=a.a?(Z(iO,(Cw(),Lw)),Z(jO,Lw),Z(kO,Lw),Z(lO,Lw),e="F,Cl,Br,I"):(b=aJ(mO)!=a.a,c=aJ(nO)!=a.a,aJ(oO)!=a.a&&(b?e+="c,":c?e+="C,":e+="#6,"),aJ(pO)!=a.a&&(b?e+="n,":c?e+="N,":e+="#7,"),aJ(qO)!=a.a&&(b?e+="o,":c?e+="O,":e+="#8,"),aJ(rO)!=a.a&&(b?e+="s,":c?e+="S,":e+="#16,"),aJ(uO)!=a.a&&(b?e+="p,":c?e+="P,":e+="#15,"),aJ(iO)!=a.a&&(e+="F,"),aJ(jO)!=a.a&&(e+="Cl,"),aJ(kO)!=a.a&&(e+="Br,"),aJ(lO)!=a.a&&(e+="I,"),
GC(e,va)&&(e=e.substr(0,e.length-1-0)),1>e.length&&!a.b&&(b?e=nc:c?e=pb:(Z(fO,(Cw(),Lw)),e=ta)));b=l;d&&aJ(mO)!=a.a&&(b+=";a");d&&aJ(nO)!=a.a&&(b+=";A");aJ(vO)!=a.a&&(b+=";R");aJ(wO)!=a.a&&(b+=";!R");aJ(fO)!=a.a&&0<b.length?e=b.substr(1,b.length-1):e+=b;d=xO.mc.a.ob.selectedIndex;0<d&&(--d,e+=";H"+d);d=yO.mc.a.ob.selectedIndex;0<d&&(--d,e+=";D"+d);aJ(zO)!=a.a&&(e="~");aJ(AO)!=a.a&&(e=fb);aJ(BO)!=a.a&&(e=ob);aJ(CO)!=a.a&&(e="!@");Ix(a.e.mc,e)}
function DO(a){EO(a);FO(a);var b=xO.mc.a;TN(b,0);b.ob.options[0].selected=!0;b=yO.mc.a;TN(b,0);b.ob.options[0].selected=!0;Z(mO,a.a);Z(nO,a.a);Z(vO,a.a);Z(wO,a.a);Z(xO,a.a);Z(yO,a.a);GO(a)}function EO(a){Z(oO,a.a);Z(pO,a.a);Z(qO,a.a);Z(rO,a.a);Z(uO,a.a);Z(iO,a.a);Z(jO,a.a);Z(kO,a.a);Z(lO,a.a)}function FO(a){Z(fO,a.a);Z(gO,a.a);Z(hO,a.a)}function GO(a){Z(zO,a.a);Z(AO,a.a);Z(BO,a.a);Z(CO,a.a);a.b=!1}
function cO(a){IJ.call(this,"Atom/Bond Query");this.i=new BJ(this.ig());vw(this.q,new mK(this));this.a=(Ly(),Ny);this.c=a;this.d||(a=Hv(a),this.d=new TJ(a),kK(this.d,-150,10));this.j=this.d;fw(this,new ZN);Z(this,this.a);a=new kw;fw(a,new bx(0,3,1));$(a,new $N("Atom type :"),null);fO=new BJ(KN);gO=new BJ("Any except C");hO=new BJ("Halogen");$(a,fO,null);$(a,gO,null);$(a,hO,null);$(this,a,null);a=new kw;fw(a,new bx(0,3,1));$(a,new RJ("Or select one or more from the list :",0),null);$(this,a,null);
a=new kw;fw(a,new bx(0,3,1));oO=new BJ(ub);pO=new BJ(Pb);qO=new BJ(Tb);rO=new BJ(ac);uO=new BJ(Ub);iO=new BJ(Cb);jO=new BJ(yb);kO=new BJ(tb);lO=new BJ(Ib);$(a,oO,null);$(a,pO,null);$(a,qO,null);$(a,rO,null);$(a,uO,null);$(a,iO,null);$(a,jO,null);$(a,kO,null);$(a,lO,null);$(this,a,null);a=new kw;fw(a,new bx(0,3,1));xO=new XN;WN(xO,KN);WN(xO,Ya);WN(xO,$a);WN(xO,eb);WN(xO,JN);$(a,new $N("Number of hydrogens : "),null);$(a,xO,null);$(this,a,null);a=new kw;fw(a,new bx(0,3,1));yO=new XN;WN(yO,KN);WN(yO,
Ya);WN(yO,$a);WN(yO,eb);WN(yO,JN);WN(yO,"4");WN(yO,"5");WN(yO,"6");$(a,new RJ("Number of connections :",0),null);$(a,yO,null);$(a,new RJ(" (H's don't count.)",0),null);$(this,a,null);a=new kw;fw(a,new bx(0,3,1));$(a,new $N("Atom is :"),null);mO=new BJ(LN);$(a,mO,null);nO=new BJ("Nonaromatic");$(a,nO,null);vO=new BJ(ON);$(a,vO,null);wO=new BJ(MN);$(a,wO,null);$(this,a,null);a=new kw;Z(a,Sw(aJ(this)));fw(a,new bx(0,3,1));$(a,new $N("Bond is :"),null);zO=new BJ(KN);$(a,zO,null);AO=new BJ(LN);$(a,AO,
null);BO=new BJ(ON);$(a,BO,null);CO=new BJ(MN);$(a,CO,null);$(this,a,null);a=new kw;fw(a,new bx(1,3,1));this.e=new Hx(ta,20);$(a,this.e,null);$(a,new BJ(NN),null);$(a,this.i,null);$(this,a,null);this.mc&&KJ(this.mc.c,!1);HJ(this,!1);EO(this);FO(this);GO(this);Z(mO,this.a);Z(nO,this.a);Z(vO,this.a);Z(wO,this.a);Z(xO,this.a);Z(yO,this.a);dO(this,fO);GJ(this);a=this.j;oK(this.mc.c,a.a,a.b);!Gv(this)&&jJ(this);eJ(this)}r(562,544,JF,cO);
_.jg=function(a,b){var c;H(b,NN)?(DO(this),dO(this,fO),eO(this)):E(a.f,88)?(GO(this),sq(a.f)===sq(fO)?(EO(this),FO(this)):sq(a.f)===sq(gO)?(EO(this),FO(this)):sq(a.f)===sq(hO)?(EO(this),FO(this)):sq(a.f)===sq(vO)?Z(wO,this.a):sq(a.f)===sq(wO)?(Z(vO,this.a),Z(mO,this.a)):sq(a.f)===sq(mO)?(Z(nO,this.a),Z(wO,this.a)):sq(a.f)===sq(nO)?Z(mO,this.a):sq(a.f)===sq(zO)||sq(a.f)===sq(AO)||sq(a.f)===sq(BO)||sq(a.f)===sq(CO)?(DO(this),this.b=!0):FO(this),dO(this,a.f),eO(this)):E(a.f,89)&&(GO(this),c=a.f,0==c.mc.a.ob.selectedIndex?
Z(c,this.a):Z(c,(Cw(),Lw)),eO(this));107!=this.c.e&&(this.c.e=107,pw(this.c));return!0};_.kg=function(){return Gm(this.e.mc.a.ob,Dg)};_.lg=function(){return this.b};_.b=!1;_.c=null;_.d=null;var fO=_.e=null,zO=null,gO=null,mO=null,AO=null,kO=null,oO=null,yO=null,xO=null,jO=null,iO=null,hO=null,lO=null,pO=null,nO=null,wO=null,CO=null,qO=null,uO=null,vO=null,BO=null,rO=null;function YN(a){PE();RE.call(this);this.a=new UN;rs(this.a,new HO(this,a),(PN(),PN(),QN))}r(608,606,{},YN);_.Ke=function(){return this.a};
_.a=null;function HO(a,b){this.a=a;this.b=b}r(609,1,{},HO);_.a=null;_.b=null;Y(543);Y(562);Y(408);Y(608);Y(609);Y(341);Y(196);y(FF)(1);
\ No newline at end of file
r(551,550,Fh);_.Pc=function(){this.a.d&&iK(this.a.d);this.a.d=new nK(0,this.a)};y(FF)(2);
\ No newline at end of file
r(553,550,Fh);_.Pc=function(){this.a.Rb&&iK(this.a.Rb);this.a.Rb=new nK(1,this.a)};y(FF)(3);
\ No newline at end of file
r(554,550,Fh);_.Pc=function(){this.a.s&&(iK(this.a.s),this.a.s=null);0==this.a.cb.E&&(this.a.s=new nK(2,this.a))};y(FF)(4);
\ No newline at end of file
r(205,193,{});function IO(){IO=s;JO=new ko(Ad,new KO)}function LO(a){a.a.stopPropagation();a.a.preventDefault()}function KO(){}r(206,205,{},KO);_.Tc=function(){LO(this)};_.Wc=function(){return JO};var JO;function MO(){MO=s;NO=new ko(Bd,new OO)}function OO(){}r(207,205,{},OO);_.Tc=function(){LO(this)};_.Wc=function(){return NO};var NO;function PO(){PO=s;QO=new ko(Cd,new RO)}function RO(){}r(208,205,{},RO);_.Tc=function(){LO(this)};_.Wc=function(){return QO};var QO;
function SO(){SO=s;TO=new ko(Dd,new UO)}function UO(){}r(209,205,{},UO);_.Tc=function(a){var b,c,d,e;this.a.stopPropagation();this.a.preventDefault();d=(this.a.dataTransfer||null).files;e=0;a:for(;e<d.length;++e){if(0<a.a.d&&e>=a.a.d)break a;b=d[e];c=new FileReader;VO(c,a.a.b);1==a.a.c&&c.readAsText(b)}0==d.length&&(b=(this.a.dataTransfer||null).getData(kg),a.a.b.a.a.e.ob[Dg]=null!=b?b:l)};_.Wc=function(){return TO};var TO;function WO(a,b,c){as(a.ob,c.b);Kp(!a.lb?a.lb=new Zp(a):a.lb,c,b)}
function XO(a){var b=$doc.createElement(xd);EH($f,b.tagName);this.ob=b;this.b=new yI(this.ob);this.ob[dd]="gwt-HTML";xI(this.b,a,!0);GI(this)}r(326,327,{13:1,15:1,17:1,18:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,30:1,31:1,32:1,36:1,37:1,38:1,39:1,40:1,41:1,42:1,43:1,44:1,45:1,47:1,49:1,53:1,58:1,68:1,69:1,70:1,73:1,77:1,80:1,81:1,83:1},XO);function YO(){cv();var a=$doc.createElement("textarea");!ir&&(ir=new hr);!gr&&(gr=new fr);Ot();this.ob=a;this.ob[dd]="gwt-TextArea"}r(366,367,$h,YO);
function ZO(a,b){var c,d;c=$doc.createElement(vg);d=$doc.createElement(jg);d[wc]=a.a.a;d.style[Eg]=a.b.a;var e=(kr(),lr(d));c.appendChild(e);jr(a.d,c);Hs(a,b,d)}function $O(){St.call(this);this.a=(Wt(),cu);this.b=(du(),gu);this.e[Tc]=Ya;this.e[Sc]=Ya}r(375,320,xh,$O);_.Hd=function(a){var b;b=Jm(a.ob);(a=Ls(this,a))&&this.d.removeChild(Jm(b));return a};r(381,1,{});_.Zd=function(a){a.focus()};r(382,383,{});_.Zd=function(a){tu(a)};
function aP(a){try{a.v=!1;var b,c,d,e,f;d=a.gb;c=a._;d||(a.ob.style[Fg]=ge,a._=!1,a.Ud());b=a.ob;b.style[qe]=0+(Dn(),uf);b.style[qg]=Za;e=~~(Rm()-Fm(a.ob,hf))>>1;f=~~(Qm()-Fm(a.ob,gf))>>1;oK(a,Ji(Mm($doc.body)+e,0),Ji(($doc.body.scrollTop||0)+f,0));d||((a._=c)?(a.ob.style[gd]=Gf,a.ob.style[Fg]=Gg,hi(a.fb,200)):a.ob.style[Fg]=Gg)}finally{a.v=!0}}function bP(a){a.f=(new BJ(a.i)).mc.Ke();rs(a.f,new cP(a),(qo(),qo(),ro));a.d=F(dP,m,60,[a.f])}
function eP(){JK();var a,b,c,d,e,f;fL.call(this,(xL(),yL),null,!0);this.Cg();this.cb=!0;a=new XO(this.j);this.e=new YO;this.e.ob.style[Ig]=cb;fs(this.e,cb);this.Ag();AK(this,"400px");f=new $O;f.ob.style[fe]=cb;f.e[Tc]=10;c=(Wt(),Xt);f.a=c;ZO(f,a);ZO(f,this.e);e=new ku;e.e[Tc]=20;for(b=this.d,c=0,d=b.length;c<d;++c)a=b[c],hu(e,a);ZO(f,e);OK(this,f);KJ(this,!1);this.Bg()}r(616,617,MF,eP);_.Ag=function(){bP(this)};_.Bg=function(){var a=this.e;a.ob.readOnly=!0;var b=is(a.ob)+"-readonly";es(a.ud(),b,!0)};
_.Cg=function(){JJ(this.H.b,"Copy")};_.d=null;_.e=null;_.f=null;_.i="Close";_.j="Press Ctrl-C (Command-C on Mac) or right click (Option-click on Mac) on the selected text to copy it, then paste into another program.";function cP(a){this.a=a}r(619,1,{},cP);_.Yc=function(){QK(this.a,!1)};_.a=null;function fP(a){this.a=a}r(620,1,{},fP);
_.Cc=function(){ns(this.a.e.ob,!0);Pt.Zd(this.a.e.ob);var a=this.a.e,b;b=Gm(a.ob,Dg).length;if(0<b&&a.jb){if(0>b)throw new DC("Length must be a positive integer. Length: "+b);if(b>Gm(a.ob,Dg).length)throw new DC("From Index: 0 To Index: "+b+" Text Length: "+Gm(a.ob,Dg).length);try{a.ob.setSelectionRange(0,0+b)}catch(c){}}};_.a=null;function gP(a){a.i="Cancel";a.j="Paste the text to import into the text area below.";a.b="Accept";JJ(a.H.b,"Paste")}function hP(a){JK();eP.call(this);this.c=a}
r(622,616,MF,hP);_.Ag=function(){bP(this);this.a=(new BJ(this.b)).mc.Ke();rs(this.a,new iP(this),(qo(),qo(),ro));this.d=F(dP,m,60,[this.a,this.f])};_.Bg=function(){fs(this.e,"150px")};_.Cg=function(){gP(this)};_.Ud=function(){eL(this);um((rm(),sm),new jP(this))};_.a=null;_.b=null;_.c=null;function kP(a){JK();hP.call(this,a)}r(621,622,MF,kP);
_.Bg=function(){fs(this.e,"150px");var a=new lP(this),b=this.e;WO(b,new mP,(MO(),MO(),NO));WO(b,new nP,(IO(),IO(),JO));WO(b,new oP,(PO(),PO(),QO));WO(b,new pP(a),(SO(),SO(),TO))};_.Cg=function(){gP(this);this.j+=" Or drag and drop a file on it."};r(625,1,{});r(624,625,{});_.b=null;_.c=1;_.d=-1;function lP(a){this.a=a;this.b=new qP(this);this.c=this.d=1}r(623,624,{},lP);_.a=null;function qP(a){this.a=a}r(626,1,{},qP);_.Dg=function(a){this.a.a.e.ob[Dg]=null!=a?a:l};_.a=null;
function iP(a){this.a=a}r(630,1,{},iP);_.Yc=function(){if(this.a.c){var a=this.a.c,b;b=new by(a.a,0,Gm(this.a.e.ob,Dg));rD(a.a.a,b.a)}QK(this.a,!1)};_.a=null;function jP(a){this.a=a}r(631,1,{},jP);_.Cc=function(){ns(this.a.e.ob,!0);Pt.Zd(this.a.e.ob)};_.a=null;r(632,1,Fh);_.Oc=av;_.Pc=function(){var a,b;a=new rP(this.a);void 0!=$wnd.FileReader?b=new kP(a):b=new hP(a);CK(b);aP(b)};_.a=null;function rP(a){this.a=a}r(633,1,{},rP);_.a=null;r(634,1,Fh);_.Oc=av;
_.Pc=function(){var a;a=new eP;var b=this.a,c;bv(a.e,b);b=(c=HC(b,"\r\n|\r|\n|\n\r"),c.length);fs(a.e,20*(10>b?b:10)+uf);um((rm(),sm),new fP(a));CK(a);aP(a)};_.a=null;function VO(a,b){a.onloadend=function(a){b.Dg(a.target.result)}}function pP(a){this.a=a}r(639,1,{},pP);_.a=null;function mP(){}r(640,1,{},mP);function nP(){}r(641,1,{},nP);function oP(){}r(642,1,{},oP);Y(625);Y(624);Y(639);Y(640);Y(641);Y(642);Y(205);Y(207);Y(206);Y(208);Y(209);Y(616);var dP=qC(780,GN);Y(622);Y(621);Y(632);Y(633);Y(634);
Y(619);Y(620);Y(630);Y(631);Y(623);Y(626);Y(326);Y(375);Y(366);y(FF)(5);function av(){};
\ No newline at end of file
var YO="3",ZO="Any",$O="Aromatic",aP="Nonring",bP="Reset",cP="Ring";function dP(){dP=r;eP=new Vo(ad,new fP)}function fP(){}q(210,207,{},fP);_.Pc=function(a){mx();EL(this,a.b,gP(a.a.a,a.a.a.ob.selectedIndex))};_.Sc=function(){return eP};var eP;function hP(a,b){if(0>b||b>=a.ob.options.length)throw new ou;}function gP(a,b){hP(a,b);return a.ob.options[b].value}function iP(){this.ob=$doc.createElement("select");this.ob[cd]="gwt-ListBox"}q(356,334,qh,iP);function jP(){jP=r}
function kP(a,b){if(null==b)throw new Nq("Missing message: awt.103");var c=-1,d,e,f;f=a.mc.a.ob;e=$doc.createElement(mf);e.text=b;e.removeAttribute("bidiwrapped");e.value=b;d=f.options.length;(0>c||c>d)&&(c=d);c==d?f.add(e,null):(c=f.options[c],f.add(e,c))}function lP(){jP();lx.call(this);new wi;this.mc=new mP((mx(),this))}q(421,408,{90:1,92:1,99:1,111:1,117:1},lP);_.ae=function(){return qx(this.mc,this)};
_.pe=function(){return(null==this.jc&&(this.jc=Yw(this)),this.jc)+xa+this.uc+xa+this.vc+xa+this.rc+Jg+this.hc+(this.qc?l:",hidden")+",current="+gP(this.mc.a,this.mc.a.ob.selectedIndex)};function nP(){cL.call(this,7)}q(434,1,Wh,nP);function qP(a){eL.call(this,a,0)}q(439,408,wh,qP);function rP(a){var b=a.j;DL(a.mc.c,b.a,b.b);!$w(a)&&xK(a);sK(a)}
function sP(a,b,c){AL.call(this);this.mc&&YK(this.mc.c,!1);VK(this,!1);zx(this,new cL(0));a=new eL(a,1);$(this,a,null);a=new Ex;$(a,this.i,null);$(this,a,null);b&&(this.j=ax(b),UK(this),zL(this.j,~~(G(b.$b.ob,jf)/2)-~~(this.rc/2),~~(G(b.$b.ob,hf)/2)-~~(this.hc/2)));c&&Z(this,c)}q(567,568,oH,sP);_.jg=function(){return"OK"};q(573,574,xh);_.Lc=function(){rP(new sP(this.b,this.a,(sA(),uA)))};q(576,574,xh);_.Lc=function(){!this.a.Ib?this.a.Ib=new tP(this.a):this.a.Ib.mc.c.gb?rM(this.a.Ib.mc.c):rP(this.a.Ib)};
function uP(a,b){oK(b)==a.a?Z(b,(Xx(),fy)):Z(b,a.a)}
function vP(a){var b,c,d,e;e=l;d=!1;oK(wP)!=a.a?(e=va,d=!0):oK(xP)!=a.a?(e="!#6",d=!0):oK(yP)!=a.a?(Z(zP,(Xx(),fy)),Z(AP,fy),Z(BP,fy),Z(CP,fy),e="F,Cl,Br,I"):(b=oK(DP)!=a.a,c=oK(EP)!=a.a,oK(FP)!=a.a&&(b?e+="c,":c?e+="C,":e+="#6,"),oK(GP)!=a.a&&(b?e+="n,":c?e+="N,":e+="#7,"),oK(HP)!=a.a&&(b?e+="o,":c?e+="O,":e+="#8,"),oK(IP)!=a.a&&(b?e+="s,":c?e+="S,":e+="#16,"),oK(JP)!=a.a&&(b?e+="p,":c?e+="P,":e+="#15,"),oK(zP)!=a.a&&(e+="F,"),oK(AP)!=a.a&&(e+="Cl,"),oK(BP)!=a.a&&(e+="Br,"),oK(CP)!=a.a&&(e+="I,"),
nE(e,xa)&&(e=e.substr(0,e.length-1-0)),1>e.length&&!a.b&&(b?e=oc:c?e=qb:(Z(wP,(Xx(),fy)),e=va)));b=l;d&&oK(DP)!=a.a&&(b+=";a");d&&oK(EP)!=a.a&&(b+=";A");oK(KP)!=a.a&&(b+=";R");oK(LP)!=a.a&&(b+=";!R");oK(wP)!=a.a&&0<b.length?e=b.substr(1,b.length-1):e+=b;d=MP.mc.a.ob.selectedIndex;0<d&&(--d,e+=";H"+d);d=NP.mc.a.ob.selectedIndex;0<d&&(--d,e+=";D"+d);oK(OP)!=a.a&&(e="~");oK(PP)!=a.a&&(e=gb);oK(QP)!=a.a&&(e=pb);oK(RP)!=a.a&&(e="!@");hL(a.e,e)}
function SP(a){TP(a);UP(a);var b=MP.mc.a;hP(b,0);b.ob.options[0].selected=!0;b=NP.mc.a;hP(b,0);b.ob.options[0].selected=!0;Z(DP,a.a);Z(EP,a.a);Z(KP,a.a);Z(LP,a.a);Z(MP,a.a);Z(NP,a.a);VP(a)}function TP(a){Z(FP,a.a);Z(GP,a.a);Z(HP,a.a);Z(IP,a.a);Z(JP,a.a);Z(zP,a.a);Z(AP,a.a);Z(BP,a.a);Z(CP,a.a)}function UP(a){Z(wP,a.a);Z(xP,a.a);Z(yP,a.a)}function VP(a){Z(OP,a.a);Z(PP,a.a);Z(QP,a.a);Z(RP,a.a);a.b=!1}
function tP(a){WK.call(this,"Atom/Bond Query");this.i=new PK(this.jg());Qx(this.q,new BL(this));this.a=(sA(),uA);this.c=a;this.d||(a=ax(a),this.d=new gL(a),zL(this.d,-150,10));this.j=this.d;zx(this,new nP);Z(this,this.a);a=new Ex;zx(a,new wy(0,3,1));$(a,new qP("Atom type :"),null);wP=new PK(ZO);xP=new PK("Any except C");yP=new PK("Halogen");$(a,wP,null);$(a,xP,null);$(a,yP,null);$(this,a,null);a=new Ex;zx(a,new wy(0,3,1));$(a,new eL("Or select one or more from the list :",0),null);$(this,a,null);
a=new Ex;zx(a,new wy(0,3,1));FP=new PK(tb);GP=new PK(Nb);HP=new PK(Tb);IP=new PK($b);JP=new PK(Ub);zP=new PK(Cb);AP=new PK(xb);BP=new PK(sb);CP=new PK(Ib);$(a,FP,null);$(a,GP,null);$(a,HP,null);$(a,IP,null);$(a,JP,null);$(a,zP,null);$(a,AP,null);$(a,BP,null);$(a,CP,null);$(this,a,null);a=new Ex;zx(a,new wy(0,3,1));MP=new lP;kP(MP,ZO);kP(MP,$a);kP(MP,db);kP(MP,fb);kP(MP,YO);$(a,new qP("Number of hydrogens : "),null);$(a,MP,null);$(this,a,null);a=new Ex;zx(a,new wy(0,3,1));NP=new lP;kP(NP,ZO);kP(NP,
$a);kP(NP,db);kP(NP,fb);kP(NP,YO);kP(NP,"4");kP(NP,"5");kP(NP,"6");$(a,new eL("Number of connections :",0),null);$(a,NP,null);$(a,new eL(" (H's don't count.)",0),null);$(this,a,null);a=new Ex;zx(a,new wy(0,3,1));$(a,new qP("Atom is :"),null);DP=new PK($O);$(a,DP,null);EP=new PK("Nonaromatic");$(a,EP,null);KP=new PK(cP);$(a,KP,null);LP=new PK(aP);$(a,LP,null);$(this,a,null);a=new Ex;Z(a,my(oK(this)));zx(a,new wy(0,3,1));$(a,new qP("Bond is :"),null);OP=new PK(ZO);$(a,OP,null);PP=new PK($O);$(a,PP,
null);QP=new PK(cP);$(a,QP,null);RP=new PK(aP);$(a,RP,null);$(this,a,null);a=new Ex;zx(a,new wy(1,3,1));this.e=new bz(va,20);$(a,this.e,null);$(a,new PK(bP),null);$(a,this.i,null);$(this,a,null);this.mc&&YK(this.mc.c,!1);VK(this,!1);TP(this);UP(this);VP(this);Z(DP,this.a);Z(EP,this.a);Z(KP,this.a);Z(LP,this.a);Z(MP,this.a);Z(NP,this.a);uP(this,wP);UK(this);a=this.j;DL(this.mc.c,a.a,a.b);!$w(this)&&xK(this);sK(this)}q(586,568,oH,tP);
_.kg=function(a,b){var c;H(b,bP)?(SP(this),uP(this,wP),vP(this)):D(a.f,89)?(VP(this),ur(a.f)===ur(wP)?(TP(this),UP(this)):ur(a.f)===ur(xP)?(TP(this),UP(this)):ur(a.f)===ur(yP)?(TP(this),UP(this)):ur(a.f)===ur(KP)?Z(LP,this.a):ur(a.f)===ur(LP)?(Z(KP,this.a),Z(DP,this.a)):ur(a.f)===ur(DP)?(Z(EP,this.a),Z(LP,this.a)):ur(a.f)===ur(EP)?Z(DP,this.a):ur(a.f)===ur(OP)||ur(a.f)===ur(PP)||ur(a.f)===ur(QP)||ur(a.f)===ur(RP)?(SP(this),this.b=!0):UP(this),uP(this,a.f),vP(this)):D(a.f,90)&&(VP(this),c=a.f,0==c.mc.a.ob.selectedIndex?
Z(c,this.a):Z(c,(Xx(),fy)),vP(this));107!=this.c.e&&(this.c.e=107,Jx(this.c));return!0};_.lg=function(){return Em(this.e.mc.a.ob,Dg)};_.mg=function(){return this.b};_.b=!1;_.c=null;_.d=null;var wP=_.e=null,OP=null,xP=null,DP=null,PP=null,BP=null,FP=null,NP=null,MP=null,AP=null,zP=null,yP=null,CP=null,GP=null,EP=null,LP=null,RP=null,HP=null,JP=null,KP=null,QP=null,IP=null;function mP(a){wG();yG.call(this);this.a=new iP;Wt(this.a,new WP(this,a),(dP(),dP(),eP))}q(632,630,{},mP);_.Je=function(){return this.a};
_.a=null;function WP(a,b){this.a=a;this.b=b}q(633,1,{},WP);_.a=null;_.b=null;X(567);X(586);X(421);X(632);X(633);X(356);X(210);x(nH)(1);
\ No newline at end of file
q(575,574,xh);_.Lc=function(){this.a.d&&xL(this.a.d);this.a.d=new CL(0,this.a)};x(nH)(2);
\ No newline at end of file
q(577,574,xh);_.Lc=function(){this.a.Rb&&xL(this.a.Rb);this.a.Rb=new CL(1,this.a)};x(nH)(3);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment