Files
Mozilla/mozilla/java/plugins/examples/simple/src/main/web/index.html
edburns%acm.org 40a8a74c54 ? style
? MediaPlayer/build
M index.html
M jmfplayer/src/main/web/test01.html
M simple/src/main/web/index.html


git-svn-id: svn://10.0.0.236/trunk@242091 18797224-902f-48f8-a5cc-f745e15eee43
2007-12-26 13:47:06 +00:00

582 lines
53 KiB
HTML
Executable File

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Simple Pluglet</title>
<link href="../../../../style/screen.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../../../style/prototype.js"></script>
<script type="text/javascript" src="../../../../style/effects.js"></script>
<script type="text/javascript" src="../../../../style/dragdrop.js"></script>
<script type="text/javascript" src="../../../../style/controls.js"></script>
</head>
<body>
<div id="nav">
<ul class="menubar">
</ul>
</div>
<div id="page">
<div class="wrapper">
<div id="logo"><img src="../../../../style/java_get_powered.png" /> <h1>Simple Pluglet</h1></div>
<div id="content">
<p>This example illustrates how to create a pluglet and package it into
a jar which you simply place in the browser's "plugins" directory.
Before we get started, let's see it run!</p>
<br />
<div id="example">
<div class="wrapper">
<EMBED type="application/x-simple-pluglet" name="test"
src="index.html" width=400 height=200>
<script>
var embed = document.embeds[0];
function callPluglet0()
{
var strs2 = {
value : []
};
var strslen2 = {
value : strs2.value.length
};
embed.callPlugletMethod("calledFromJavaScript0", strslen2, strs2);
alert("Pluglet returned " + strs2.value);
}
function callPluglet1()
{
var strs2 = {
value : [ "arg0" ]
};
var strslen2 = {
value : strs2.value.length
};
embed.callPlugletMethod("calledFromJavaScript1", strslen2, strs2);
alert("Pluglet returned " + strs2.value);
}
function callPluglet2()
{
var strs2 = {
value : [ "arg0", "arg1" ]
};
var strslen2 = {
value : strs2.value.length
};
embed.callPlugletMethod("calledFromJavaScript2", strslen2, strs2);
alert("Pluglet returned " + strs2.value);
}
function callPluglet3()
{
var strs2 = {
value : [ "arg0", "arg1", "arg2" ]
};
var strslen2 = {
value : strs2.value.length
};
embed.callPlugletMethod("calledFromJavaScript3", strslen2, strs2);
alert("Pluglet returned " + strs2.value);
}
</script>
<form name="formname">
<input type=button value="Call Pluglet 0 arg" onclick='callPluglet0()'> </input>
<input type=button value="Call Pluglet 1 arg" onclick='callPluglet1()'> </input>
<input type=button value="Call Pluglet 2 arg" onclick='callPluglet2()'> </input>
<input type=button value="Call Pluglet 3 arg" onclick='callPluglet3()'> </input>
</form>
</div>
</div>
<div id="exampleFooter">
<div class="wrapper">
</div>
</div>
<br />
<h2>Code Artifacts</h2>
<p>Creating a pluglet requires creating several code arifacts:</p>
<ol>
<li><p>A Java class that implements <a
href="http://www.mozilla.org/projects/blackwood/java-plugins/api/org/mozilla/pluglet/PlugletFactory.html">PlugletFactory</a>.
</p>
<div class="source"><a href="#" onclick="if (Element.visible('src1')) { new Effect.SlideUp('src1'); $('src1_btn').src = '../../../../style/page_white_code.gif'; } else { new Effect.SlideDown('src1'); $('src1_btn').src = '../../../../style/page_white_code_red.gif'; } return false;">Details <img id="src1_btn" src="../../../../style/page_white_code.gif" /></a>
<div id="src1" class="code" style="display: none; ">
<div class="syntax"><div class="java" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">package</span> simple;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co2">import java.awt.Button;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import java.awt.Frame;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import java.awt.List;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import java.awt.Panel;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import java.awt.event.ActionEvent;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import java.awt.event.ActionListener;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import java.awt.print.PrinterJob;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import java.io.BufferedReader;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import java.io.InputStream;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import java.io.InputStreamReader;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import org.mozilla.pluglet.Pluglet;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import org.mozilla.pluglet.PlugletFactory;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import org.mozilla.pluglet.PlugletStreamListener;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import org.mozilla.pluglet.mozilla.PlugletManager;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import org.mozilla.pluglet.mozilla.PlugletPeer;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import org.mozilla.pluglet.mozilla.PlugletStreamInfo;</span></div></li>
<li class="li1"><div class="de1"><span class="co2">import org.mozilla.pluglet.mozilla.PlugletTagInfo;</span></div></li>
<li class="li2"><div class="de2"><span class="co2">import org.mozilla.pluglet.mozilla.PlugletTagInfo2;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> SimplePluglet <span class="kw2">implements</span> PlugletFactory <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> SimplePluglet<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--test.test()<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Creates a new pluglet instance, based on a MIME type. This</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* allows different impelementations to be created depending on</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* the specified MIME type.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> Pluglet createPluglet<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> mimeType<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--test.createPlugletInstance<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">return</span> <span class="kw2">new</span> SimplePlugletInstance<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Initializes the pluglet and will be called before any new instances are</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* created.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> initialize<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> plugletPath, PlugletManager manager<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--test.initialize(&quot;</span> + </div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;plugletPath + <span class="st0">&quot;)<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called when the browser is done with the pluglet factory, or when</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* the pluglet is disabled by the user.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> shutdown<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--test.shutdown<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span> </div></li></ol></div></div>
</div></div>
</li>
<li><p>A Java class that implements <a
href="http://www.mozilla.org/projects/blackwood/java-plugins/api/org/mozilla/pluglet/Pluglet.html">Pluglet</a>,
instances of which are created and returned by the
PlugletFactory. </p>
<div class="source"><a href="#" onclick="if (Element.visible('src2')) { new Effect.SlideUp('src2'); $('src2_btn').src = '../../../../style/page_white_code.gif'; } else { new Effect.SlideDown('src2'); $('src2_btn').src = '../../../../style/page_white_code_red.gif'; } return false;">Details <img id="src2_btn" src="../../../../style/page_white_code.gif" /></a>
<div id="src2" class="code" style="display: none; ">
<div class="syntax"><div class="java" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">class</span> SimplePlugletInstance <span class="kw2">implements</span> Pluglet <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3APanel+java.sun.com&amp;bntl=1"><span class="kw3">Panel</span></a> panel;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3AButton+java.sun.com&amp;bntl=1"><span class="kw3">Button</span></a> button;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3AList+java.sun.com&amp;bntl=1"><span class="kw3">List</span></a> list;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; PlugletPeer peer;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> SimplePlugletInstance<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.SimplePlugletInstance() <span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; panel = <span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3APanel+java.sun.com&amp;bntl=1"><span class="kw3">Panel</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; button = <span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AButton+java.sun.com&amp;bntl=1"><span class="kw3">Button</span></a><span class="br0">&#40;</span><span class="st0">&quot;Press me :)&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; button.<span class="me1">addActionListener</span><span class="br0">&#40;</span><span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AActionListener+java.sun.com&amp;bntl=1"><span class="kw3">ActionListener</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> actionPerformed<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AActionEvent+java.sun.com&amp;bntl=1"><span class="kw3">ActionEvent</span></a> e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<span class="kw4">int</span> t = list.<span class="me1">getSelectedIndex</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;t++; </div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>t &gt;= list.<span class="me1">getItemCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; t = <span class="nu0">0</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;list.<span class="me1">select</span><span class="br0">&#40;</span>t<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; panel.<span class="me1">add</span><span class="br0">&#40;</span>button<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; list = <span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AList+java.sun.com&amp;bntl=1"><span class="kw3">List</span></a><span class="br0">&#40;</span><span class="nu0">4</span>,<span class="kw2">false</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; list.<span class="me1">add</span><span class="br0">&#40;</span><span class="st0">&quot;Pluglet&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; list.<span class="me1">add</span><span class="br0">&#40;</span><span class="st0">&quot;not&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; list.<span class="me1">add</span><span class="br0">&#40;</span><span class="st0">&quot;bad&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; list.<span class="me1">select</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; panel.<span class="me1">add</span><span class="br0">&#40;</span>list<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Initializes a newly created pluglet instance, passing to it the pluglet</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* instance peer which it should use for all communication back to the browser.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* </span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @param peer the corresponding pluglet instance peer</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> initialize<span class="br0">&#40;</span>PlugletPeer peer<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">this</span>.<span class="me1">peer</span> = peer;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.initialize<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; peer.<span class="me1">showStatus</span><span class="br0">&#40;</span><span class="st0">&quot;Hello world&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.initialize&nbsp; &quot;</span>+peer.<span class="me1">getMIMEType</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/*</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; try {</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;OutputStreamWriter out = new OutputStreamWriter(peer.newStream(&quot;text/plain&quot;,&quot;_new&quot;));</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;String msg = &quot;Hello, world&quot;;</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;out.write(msg,0,msg.length());</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;out.flush();</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;out.close();</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception e) {</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;;</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; */</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called to instruct the pluglet instance to start. This will be called after</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* the pluglet is first created and initialized, and may be called after the</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* pluglet is stopped (via the Stop method) if the pluglet instance is returned</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* to in the browser window's history.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> start<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.start<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called to instruct the pluglet instance to stop, thereby suspending its state.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* This method will be called whenever the browser window goes on to display</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* another page and the page containing the pluglet goes into the window's history</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* list.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> stop<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.stop<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called to instruct the pluglet instance to destroy itself. This is called when</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* it become no longer possible to return to the pluglet instance, either because </span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* the browser window's history list of pages is being trimmed, or because the</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* window containing this page in the history is being closed.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> destroy<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.destroy<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called to tell the pluglet that the initial src/data stream is</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* ready. </span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* </span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @result PlugletStreamListener</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> PlugletStreamListener newStream<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.newStream<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="kw2">new</span> TestStreamListener<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called when the window containing the pluglet instance changes.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @param frame the pluglet panel</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> setWindow<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AFrame+java.sun.com&amp;bntl=1"><span class="kw3">Frame</span></a> frame<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--Test...SetWindow &quot;</span>+frame+<span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>frame == <span class="kw2">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;<span class="kw2">return</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; PlugletTagInfo info = peer.<span class="me1">getTagInfo</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>info <span class="kw2">instanceof</span> PlugletTagInfo2<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;PlugletTagInfo2 info2 = <span class="br0">&#40;</span>PlugletTagInfo2<span class="br0">&#41;</span>info;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;frame.<span class="me1">setSize</span><span class="br0">&#40;</span>info2.<span class="me1">getWidth</span><span class="br0">&#40;</span><span class="br0">&#41;</span>,info2.<span class="me1">getHeight</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.SetWindow width &quot;</span>+info2.<span class="me1">getWidth</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+ <span class="st0">&quot; height &quot;</span>+info2.<span class="me1">getHeight</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+<span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--Test...SetWindow &quot;</span>+frame+<span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; frame.<span class="me1">add</span><span class="br0">&#40;</span>panel<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; frame.<span class="me1">pack</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; frame.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;<span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Called to instruct the pluglet instance to print itself to a printer.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @param print printer information.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span> </div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> print<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3APrinterJob+java.sun.com&amp;bntl=1"><span class="kw3">PrinterJob</span></a> printerJob<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">protected</span> <span class="kw4">void</span> finalize<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--SimplePlugletInstance.finalize()<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> calledFromJavaScript3<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> arg0, <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> arg1, <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> arg2<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;calledFromJavaScript2<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="st0">&quot;3 args.&nbsp; arg0: &quot;</span> + arg0 + <span class="st0">&quot; arg1: &quot;</span> + arg1 + <span class="st0">&quot; arg2: &quot;</span> + arg2 + <span class="st0">&quot;&quot;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> calledFromJavaScript2<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> arg0, <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> arg1<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;calledFromJavaScript2<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="st0">&quot;2 args.&nbsp; arg0: &quot;</span> + arg0 + <span class="st0">&quot; arg1: &quot;</span> + arg1 + <span class="st0">&quot;&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> calledFromJavaScript1<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> arg0<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;calledFromJavaScript1<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="st0">&quot;1 args.&nbsp; arg0: &quot;</span> + arg0 + <span class="st0">&quot;&quot;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> calledFromJavaScript0<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;calledFromJavaScript0<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="st0">&quot;0 arg hard coded result&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2"><span class="br0">&#125;</span> </div></li></ol></div></div>
</div></div>
</li>
<li><p>A Java class that implements <a
href="http://www.mozilla.org/projects/blackwood/java-plugins/api/org/mozilla/pluglet/PlugletStreamListener.html">PlugletStreamListener</a>,
if the Pluglet uses the getURL() or postURL() methods on the
<a
href="http://www.mozilla.org/projects/blackwood/java-plugins/api/org/mozilla/pluglet/mozilla/PlugletManager.html">PlugletManager</a>
passed to plugletFactory.initialize().
<div class="source"><a href="#" onclick="if (Element.visible('src3')) { new Effect.SlideUp('src3'); $('src3_btn').src = '../../../../style/page_white_code.gif'; } else { new Effect.SlideDown('src3'); $('src3_btn').src = '../../../../style/page_white_code_red.gif'; } return false;">Details <img id="src3_btn" src="../../../../style/page_white_code.gif" /></a>
<div id="src3" class="code" style="display: none; ">
<div class="syntax"><div class="java" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">class</span> TestStreamListener <span class="kw2">implements</span> PlugletStreamListener <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> TestStreamListener<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--TestStreamListener.TestStreamListener()<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Notify the observer that the URL has started to load.&nbsp; This method is</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* called only once, at the beginning of a URL load.&lt;BR&gt;&lt;BR&gt;</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onStartBinding<span class="br0">&#40;</span>PlugletStreamInfo streamInfo<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--TestStreamListener.onStartBinding &quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;length &quot;</span>+streamInfo.<span class="me1">getLength</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot; contenet type &quot;</span>+ streamInfo.<span class="me1">getContentType</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot; url &quot;</span>+ streamInfo.<span class="me1">getURL</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot; seekable &quot;</span>+ streamInfo.<span class="me1">isSeekable</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Notify the client that data is available in the input stream.&nbsp; This</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* method is called whenver data is written into the input stream by the</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* networking library...&lt;BR&gt;&lt;BR&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* </span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @param input&nbsp; The input stream containing the data.&nbsp; This stream can</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* be either a blocking or non-blocking stream.</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @param length&nbsp; &nbsp; The amount of data that was just pushed into the stream.</span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onDataAvailable<span class="br0">&#40;</span>PlugletStreamInfo plugletInfo, <a href="http://www.google.com/search?q=allinurl%3AInputStream+java.sun.com&amp;bntl=1"><span class="kw3">InputStream</span></a> input,<span class="kw4">int</span>&nbsp; length<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">try</span><span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--TestStreamListener.onDataAvailable &quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--length &quot;</span>+input.<span class="me1">available</span><span class="br0">&#40;</span><span class="br0">&#41;</span>+<span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> cur = <span class="kw2">null</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ABufferedReader+java.sun.com&amp;bntl=1"><span class="kw3">BufferedReader</span></a> bufferedReader = <span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3ABufferedReader+java.sun.com&amp;bntl=1"><span class="kw3">BufferedReader</span></a><span class="br0">&#40;</span><span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AInputStreamReader+java.sun.com&amp;bntl=1"><span class="kw3">InputStreamReader</span></a><span class="br0">&#40;</span>input<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="kw2">null</span> != <span class="br0">&#40;</span>cur = bufferedReader.<span class="me1">readLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span>cur<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw2">catch</span><span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AException+java.sun.com&amp;bntl=1"><span class="kw3">Exception</span></a> e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onFileAvailable<span class="br0">&#40;</span>PlugletStreamInfo plugletInfo, <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span class="kw3">String</span></a> fileName<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--TestStreamListener.onFileAvailable<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot; fileName&quot;</span> + fileName<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div></li>
<li class="li2"><div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Notify the observer that the URL has finished loading. </span></div></li>
<li class="li1"><div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onStopBinding<span class="br0">&#40;</span>PlugletStreamInfo plugletInfo,<span class="kw4">int</span> status<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--TestStreamListener.onStopBinding<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">int</span>&nbsp; getStreamType<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; org.<span class="me1">mozilla</span>.<span class="me1">util</span>.<span class="me1">DebugPluglet</span>.<span class="me1">print</span><span class="br0">&#40;</span><span class="st0">&quot;--TestStreamListener.getStreamType<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="nu0">1</span>; <span class="co1">//:)</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span> </div></li></ol></div></div>
</div></div>
</p></li>
<li><p>A Java JAR file containing the .class files compiled from the
above Java files. The manifest for the JAR must contain the following entries:</p>
<table border="1">
<thead>
<tr>
<th>Manifest attribute name</th>
<th>Explanation</th>
<th>Value for this example</th>
</tr>
</thead>
<tbody>
<tr>
<td>MIMEDescription
</td>
<td>The mime-type to be handled by this pluglet.
</td>
<td>application/x-simple-pluglet
</td>
</tr>
<tr>
<td>Pluglet-Class
</td>
<td>The fully qualified class name of the Java class implementing PlugletFactory.
</td>
<td>simple.SimplePluglet
</td>
</tr>
</tbody>
</table>
</li>
<li><p>Some HTML markup that includes the pluglet. Note: this
step is exactly the same as for any other native plugin.
<div class="source"><a href="#" onclick="if (Element.visible('src0')) { new Effect.SlideUp('src0'); $('src0_btn').src = '../../../../style/page_white_code.gif'; } else { new Effect.SlideDown('src0'); $('src0_btn').src = '../../../../style/page_white_code_red.gif'; } return false;">Details <img id="src0_btn" src="../../../../style/page_white_code.gif" /></a>
<div id="src0" class="code" style="display: none; ">
<div class="syntax"><div class="html4strict" style="font-family: monospace;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2"><span class="sc2">&lt;EMBED <span class="kw3">type</span>=<span class="st0">&quot;application/x-simple-pluglet&quot;</span> <span class="kw3">name</span>=<span class="st0">&quot;test&quot;</span> </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">src</span>=<span class="st0">&quot;index.html&quot;</span> <span class="kw3">width</span>=<span class="nu0">400</span> <span class="kw3">height</span>=<span class="nu0">200</span>&gt;</span> </div></li></ol></div></div>
</div>
</p></li>
</ol>
</div> <!-- content -->
</div>
</div>
<div id="footer">
<div class="wrapper">
<a href="../../../../index.html">Back</a>
</div>
</div>
<div style="float: left; width: 100%; height: 20px; ">&nbsp;</div>
</body>
</html>