HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: /home/mmickelson/theflexguy.com/apps/silicondesigner/sg/assets/docs/SDFlexJsAPI.htm
<html>

<head>
<meta name=Title content="">
<meta name=Keywords content="">
<meta http-equiv=Content-Type content="text/html; charset=macintosh">
<meta name=Generator content="Microsoft Word 14 (filtered)">
<style>
<!--
 /* Font Definitions */
@font-face
	{font-family:Arial;
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:"\FF2D\FF33 \660E\671D";}
@font-face
	{font-family:"\FF2D\FF33 \30B4\30B7\30C3\30AF";}
@font-face
	{font-family:"\FF2D\FF33 \30B4\30B7\30C3\30AF";}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:"Arial Unicode MS";
	panose-1:2 11 6 4 2 2 2 2 2 4;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Arial;}
h1
	{margin-top:24.0pt;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	font-size:16.0pt;
	font-family:Calibri;
	color:#345A8A;}
pre
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:Courier;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Arial;}
p.code, li.code, div.code
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.25in;
	margin-bottom:.0001pt;
	text-indent:-.25in;
	background:#F3F3F3;
	border:none;
	padding:0in;
	font-size:10.0pt;
	font-family:Courier;}
span.HTMLPreformattedChar
	{font-family:Courier;}
span.Heading1Char
	{font-family:Calibri;
	color:#345A8A;
	font-weight:bold;}
.MsoChpDefault
	{font-family:Cambria;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in .75in 1.0in .75in;}
div.WordSection1
	{page:WordSection1;}
 /* List Definitions */
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US>

<div class=WordSection1>

<h1>Silicon Designer JavaScript API</h1>

<p class=MsoNormal>&nbsp;</p>

<p class=MsoNormal>Included in the js/app folder is SDExternalInterface.js.
This file includes the APIs that allow communication between the Flex
application and the JavaScript at runtime. The file can be a starting point for
client JavaScript developers to integrate with their environment.</p>

<p class=MsoNormal>&nbsp;</p>

<div style='border:solid #EEECE1 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;
background:#F3F3F3'>

<p class=code>// Called from JavaScript to Flex -----</p>

<p class=code><span style='color:black'>function SDExternalInterface(){</span></p>

<p class=code>&nbsp;</p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code><span style='color:black'>SDExternalInterface.app;</span>//static</p>

<p class=code>&nbsp;</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.registerCallBackInstance
= function(functionName){ </span>//functionName must be a string!</p>

<p class=code><span style='color:black'>&nbsp;&nbsp; document[SDExternalInterface.app].registerCallBackInstance(
functionName );</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// UPDATE INSTANCE: Saves all pages in the instance.</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.updateInstance
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; document[SDExternalInterface.app].updateInstance();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>

<p class=code>// UPDATE LAYOUT NUM: Saves a specific layout number (similar to</p>

<p class=code>// page number) in the instance. If none is provided, the
selected</p>

<p class=code>// page is saved.</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.updateLayoutNum
= function(layoutNum){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; document[SDExternalInterface.app].updateLayoutNum(layoutNum);</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// GET INSTANCE ID: Returns the instanceId of the current
project.</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.getInstanceId
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>return</span></b><span style='color:black'>
document[SDExternalInterface.app].getInstanceId();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// GET SESSION ID: Returns the instanceId of the current project.</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.getSessionId
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>return</span></b><span style='color:black'>
document[SDExternalInterface.app].getSessionId();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// GET SELECTED LAYOUT: Returns the currently selected layout
number.</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.getSelectedLayout
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>return</span></b><span style='color:black'>
document[SDExternalInterface.app].getSelectedLayout();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// IS DOCUMENT VALID: Returns whether or not a document has
validation warnings</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.isDocumentValid
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>return</span></b><span style='color:black'> document[SDExternalInterface.app].isDocumentValid();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// ENABLE/DISABLE SPELL CHECK: activates and sets the location
for spell check</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.setSpellCheckState
= function( enabled, languageCode ){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; languageCode = (typeof
languageCode === </span><span style='color:#2A00FF'>&quot;undefined&quot;</span><span
style='color:black'>) ? </span><span style='color:#2A00FF'>&quot;en_US&quot;</span><span
style='color:black'> : languageCode;</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; document[SDExternalInterface.app].setSpellCheckState(
enabled, languageCode );</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// GET ERROR SUMMARY: Returns object array of validators in the
currents errors array</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.getErrorSummary
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; var results =
document[SDExternalInterface.app].getErrorSummary();</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; console.log(results);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>return</span></b><span style='color:black'> results;</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// CLEAR LOCAL SHARED OBJECT FOR THIS APP: Clears any data stored
locally for this app including screen overlay settings</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.clearLocalSharedObject
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; document[SDExternalInterface.app].clearLocalSharedObject();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>&nbsp;</p>

<p class=code>// CALLED FROM Flex to JavaScript
--------------------------------</p>

<p class=code>&nbsp;</p>

<p class=code>// TRACK METRIC: Passes metric name and value to be passed to
tracking api</p>

<p class=code>// Implement your tracking code here</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.trackMetric
= function(label, value){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>( console !==
undefined &amp;&amp; console !== </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'> ) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(</span><span
style='color:#2A00FF'>&quot;SDExternalInterface.prototype.trackMetric called
label: &quot;</span><span style='color:black'> + label + </span><span
style='color:#2A00FF'>&quot; value: &quot;</span><span style='color:black'> + value);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// INSTANCE ID CREATED: Gives the instance ID. Useful when</p>

<p class=code>// starting with a templateId.</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.instanceIdCreated
= function(instanceId){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>( console !==
undefined &amp;&amp; console !== </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'> ) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(</span><span
style='color:#2A00FF'>&quot;instanceId created:&quot;</span><span
style='color:black'>);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(instanceId);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// CONTINUE REQUESTED: User has clicked the continue button</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.continueRequested
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>( console !==
undefined &amp;&amp; console !== </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'> ) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(</span><span
style='color:#2A00FF'>&quot;continue requested&quot;</span><span
style='color:black'>);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// SAVE REQUESTED: User has clicked the save button</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.saveRequested
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>( console !==
undefined &amp;&amp; console !== </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'> ) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(</span><span
style='color:#2A00FF'>&quot;save requested&quot;</span><span style='color:black'>);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// SAVE COMPLETE: A save has been made and completed</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.saveComplete
= function(instanceId){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>( console !==
undefined &amp;&amp; console !== </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'> ) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(</span><span
style='color:#2A00FF'>&quot;save complete for instance:&quot;</span><span
style='color:black'>);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(instanceId);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// EXIT REQUESTED: User has clicked the button to leave the application.</p>

<p class=code>//&nbsp; This does not trigger a save in the flex but could be
done with updateInstance().</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.exitRequested
= function(){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; window.history.back();</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

<p class=code>// PREVIEW REQUESTED: User has clicked the preview button</p>

<p class=code><span style='color:black'>SDExternalInterface.prototype.previewRequested
= function(layoutNum){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>( console !==
undefined &amp;&amp; console !== </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'> ) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(</span><span
style='color:#2A00FF'>&quot;preview requested for layout:&quot;</span><span
style='color:black'>);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log(layoutNum);</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; var instanceID =
document[SDExternalInterface.app].getInstanceId();</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; var sessionID =
document[SDExternalInterface.app].getSessionId();</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>(typeof instanceID
!== </span><span style='color:#2A00FF'>&quot;undefined&quot;</span><span
style='color:black'> &amp;&amp; instanceID !== </span><b><span
style='color:#7F0055'>null</span></b><span style='color:black'> &amp;&amp;
typeof sessionID !== </span><span style='color:#2A00FF'>&quot;undefined&quot;</span><span
style='color:black'> &amp;&amp; sessionID !== </span><b><span style='color:
#7F0055'>null</span></b><span style='color:black'> ){</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var
baseURL = ( flashvars.baseUrl.substr( flashvars.baseUrl.length - 1 ) != </span><span
style='color:#2A00FF'>&quot;/&quot;</span><span style='color:black'> ) ?
flashvars.baseUrl + </span><span style='color:#2A00FF'>&quot;/&quot;</span><span
style='color:black'> : flashvars.baseUrl ;</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='color:#7F0055'>if</span></b><span style='color:black'>(typeof layoutNum
!= </span><span style='color:#2A00FF'>&quot;undefined&quot;</span><span
style='color:black'> &amp;&amp; layoutNum != </span><b><span style='color:#7F0055'>null</span></b><span
style='color:black'>) {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.open(
baseURL + </span><span style='color:#2A00FF'>&quot;sdsession/&quot;</span><span
style='color:black'> + sessionID + </span><span style='color:#2A00FF'>&quot;/instance/&quot;</span><span
style='color:black'> + instanceID + </span><span style='color:#2A00FF'>&quot;/layoutnumber/&quot;</span><span
style='color:black'> + layoutNum + </span><span style='color:#2A00FF'>&quot;/output/pdf&quot;</span><span
style='color:black'> );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </span><b><span
style='color:#7F0055'>else</span></b><span style='color:black'> {</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.open(
baseURL + </span><span style='color:#2A00FF'>&quot;sdsession/&quot;</span><span
style='color:black'> + sessionID + </span><span style='color:#2A00FF'>&quot;/instance/&quot;</span><span
style='color:black'> + instanceID + </span><span style='color:#2A00FF'>&quot;/output/pdf&quot;</span><span
style='color:black'> );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>&nbsp;&nbsp; }</span></p>

<p class=code><span style='color:black'>}</span></p>

<p class=code>&nbsp;</p>

</div>

<span style='font-size:12.0pt;font-family:Arial'><br clear=all
style='page-break-before:always'>
</span>

<p class=MsoNormal>&nbsp;</p>

<h1>Appendix A - Document updates</h1>

<p class=MsoNormal>10/9/13</p>

<p class=MsoListParagraph style='text-indent:-.25in'><span>1.<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></span>Added
isDocumentValid()</p>

<p class=MsoNormal>&nbsp;</p>

<p class=MsoNormal><span style='font-family:Cambria'>&nbsp;</span></p>

</div>

</body>

</html>