blob: 06fa24e64faf585f03748047dc9c7392c289612a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META NAME="keywords" CONTENT="netbeans,magazine,OpenOffice,integration">
<META NAME="description" CONTENT="NetBeans Magazine: OpenOffice - NetBeans integration">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<title>OpenOffice - NetBeans integration</title>
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Verdana";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"Verdana";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:"Verdana";
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-format:other;
mso-font-pitch:variable;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:Times;
panose-1:0 0 5 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:536902279 -2147483648 8 0 511 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.Noparagraphstyle, li.Noparagraphstyle, div.Noparagraphstyle
{mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
color:black;
mso-ansi-language:EN-US;}
p.NB-Corpo, li.NB-Corpo, div.NB-Corpo
{mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Interttulo, li.NB-Interttulo, div.NB-Interttulo
{mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Interttulo2, li.NB-Interttulo2, div.NB-Interttulo2
{mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Notadica, li.NB-Notadica, div.NB-Notadica
{mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Cdigointerno, li.NB-Cdigointerno, div.NB-Cdigointerno
{mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
p.NB-Legendaimagem, li.NB-Legendaimagem, div.NB-Legendaimagem
{mso-style-name:"NB - Legenda imagem";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-GB;}
span.NB-NegritoTcnico
{mso-style-name:"NB - Negrito T�cnico";
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-font-width:100%;
font-weight:bold;
vertical-align:baseline;}
span.NB-Legendanegrito
{mso-style-name:"NB - Legenda negrito";
mso-style-parent:"";
font-weight:bold;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:581.1pt 779.55pt;
margin:36.0pt 36.0pt 36.0pt 36.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
div.NB-Interttulo21 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-Interttulo21 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Interttulo21 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-Corpo1 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
li.NB-Corpo1 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
div.NB-Cdigointerno1 {mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
div.NB-Corpo2 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
div.NB-Interttulo1 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-Interttulo22 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-Notadica1 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
div.Noparagraphstyle1 {mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
color:black;
mso-ansi-language:EN-US;}
li.NB-Cdigointerno1 {mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
li.NB-Corpo2 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
li.NB-Interttulo1 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-Interttulo22 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-Notadica1 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
li.Noparagraphstyle1 {mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
color:black;
mso-ansi-language:EN-US;}
p.NB-Cdigointerno1 {mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
p.NB-Corpo2 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Interttulo1 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Interttulo22 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Notadica1 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.Noparagraphstyle1 {mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
color:black;
mso-ansi-language:EN-US;}
span.NB-NegritoTcnico1 {mso-style-name:"NB - Negrito T�cnico";
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-font-width:100%;
font-weight:bold;
vertical-align:baseline;}
.NB-Listagenstitulos {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
font-size: 14px;
}
.NB-Listagens {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
.NB-Quadrotitulo {font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; font-size: 14px; font-weight: bold; }
p.NB-Corpo21 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
span.NB-NegritoTcnico11 {mso-style-name:"NB - Negrito T�cnico";
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-font-width:100%;
font-weight:bold;
vertical-align:baseline;}
div.NB-Interttulo23 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-TabelaCorpo {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
div.NB-TabelaIntertitulo {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
li.NB-Interttulo23 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-TabelaCorpo {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
li.NB-TabelaIntertitulo {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
p.NB-Interttulo23 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-TabelaCorpo {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
p.NB-TabelaIntertitulo {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
p.NB-Interttulo231 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-TabelaCorpo1 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
p.NB-TabelaIntertitulo1 {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
div.NB-TabelaCorpo1 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
div.NB-TabelaIntertitulo1 {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
li.NB-TabelaCorpo1 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
li.NB-TabelaIntertitulo1 {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
p.NB-TabelaCorpo2 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
p.NB-TabelaIntertitulo2 {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
p.NB-Corpo111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1121 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11211 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo112111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1121111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1121112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1121113 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11211131 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-TabelaCorpo21 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
p.NB-TabelaIntertitulo21 {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
div.NB-TabelaCorpo2 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
li.NB-TabelaCorpo2 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
p.NB-TabelaCorpo3 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
span.Fontepar00E1gpadr00E3o2 {mso-style-name:"Fonte par<00E1>g\. padr<00E3>o2";
mso-style-parent:"";
mso-font-width:100%;}
span.NB-NegritoTcnico2 {mso-style-name:"NB - Negrito T�cnico";
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-font-width:100%;
font-weight:bold;
vertical-align:baseline;}
span.Refdenotaderodap00E9 {mso-style-name:"Ref\. de nota de rodap<00E9>";
mso-style-parent:"";
mso-font-width:100%;
vertical-align:super;}
p.NB-Corpo11111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo112111311 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1121113111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
.style1 {font-size: 9.0pt}
.style3 {font-size: 11px;
font-weight: bold;
}
p.NB-Corpo22 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
div.NB-Corpo3 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
div.NB-Interttulo3 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-Interttulo24 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-Notadica2 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
li.NB-Corpo3 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
li.NB-Interttulo3 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-Interttulo24 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-Notadica2 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo3 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Interttulo3 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Interttulo24 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Notadica2 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
span.TechText {mso-style-name:TechText;
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
letter-spacing:0pt;
mso-font-width:100%;
font-weight:bold;}
p.NB-Corpo31 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Interttulo241 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Interttulo31 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Notadica21 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BA3287;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
span.TechText1 {mso-style-name:TechText;
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
letter-spacing:0pt;
mso-font-width:100%;
font-weight:bold;}
p.NB-Corpo113 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1131 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11311 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo113111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1131111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11311111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo113111111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1131111111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11311111111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Interttulo232 {mso-style-name:"NB - Intert�tulo 2";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#BC371F;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-TabelaCorpo4 {mso-style-name:"NB - Tabela Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:14.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
mso-ansi-language:EN-US;}
p.NB-TabelaIntertitulo3 {mso-style-name:"NB - Tabela Intertitulo";
mso-style-parent:"\[No paragraph style\]";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:12.0pt;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:white;
letter-spacing:-.05pt;
mso-ansi-language:EN-GB;
font-weight:bold;}
p.NB-Corpo11311111112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo113111111121 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1131111111211 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11311111112111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo113111111121111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11121 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
div.NB-Cdigointerno2 {mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
div.NB-Corpo4 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.1pt;
mso-ansi-language:EN-US;}
div.NB-Interttulo4 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
div.NB-Listagemcorpo {mso-style-name:"NB - Listagem corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:8.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:5.65pt 11.35pt 17.0pt 22.7pt 1.0cm 34.0pt 39.7pt 45.35pt 51.05pt 2.0cm;
mso-layout-grid-align:none;
text-autospace:none;
font-size:7.0pt;
font-family:"Prestige Elite";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Prestige Elite";
color:black;
letter-spacing:-.05pt;
mso-ansi-language:EN-US;}
div.NB-Notadica3 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
div.Noparagraphstyle2 {mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:Times;
color:black;
mso-ansi-language:EN-US;}
div.Subsection {mso-style-name:Subsection;
mso-style-parent:"NB - Intert�tulo";
mso-style-next:"NB - Corpo";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;
font-style:italic;}
li.NB-Cdigointerno2 {mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
li.NB-Corpo4 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.1pt;
mso-ansi-language:EN-US;}
li.NB-Interttulo4 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
li.NB-Listagemcorpo {mso-style-name:"NB - Listagem corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:8.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:5.65pt 11.35pt 17.0pt 22.7pt 1.0cm 34.0pt 39.7pt 45.35pt 51.05pt 2.0cm;
mso-layout-grid-align:none;
text-autospace:none;
font-size:7.0pt;
font-family:"Prestige Elite";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Prestige Elite";
color:black;
letter-spacing:-.05pt;
mso-ansi-language:EN-US;}
li.NB-Notadica3 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
li.Noparagraphstyle2 {mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:Times;
color:black;
mso-ansi-language:EN-US;}
li.Subsection {mso-style-name:Subsection;
mso-style-parent:"NB - Intert�tulo";
mso-style-next:"NB - Corpo";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;
font-style:italic;}
p.NB-Cdigointerno2 {mso-style-name:"NB - C�digo interno";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
mso-pagination:none;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:8.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
p.NB-Corpo4 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.1pt;
mso-ansi-language:EN-US;}
p.NB-Interttulo4 {mso-style-name:"NB - Intert�tulo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:8.5pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:13.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;}
p.NB-Listagemcorpo {mso-style-name:"NB - Listagem corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
line-height:8.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:5.65pt 11.35pt 17.0pt 22.7pt 1.0cm 34.0pt 39.7pt 45.35pt 51.05pt 2.0cm;
mso-layout-grid-align:none;
text-autospace:none;
font-size:7.0pt;
font-family:"Prestige Elite";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Prestige Elite";
color:black;
letter-spacing:-.05pt;
mso-ansi-language:EN-US;}
p.NB-Notadica3 {mso-style-name:"NB - Nota\/dica";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin-top:5.65pt;
margin-right:0cm;
margin-bottom:5.65pt;
margin-left:0cm;
text-align:left;
line-height:13.0pt;
mso-pagination:none;
mso-hyphenate:none;
tab-stops:14.15pt;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.Noparagraphstyle2 {mso-style-name:"\[No paragraph style\]";
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:12.0pt;
font-family:Times;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:Times;
color:black;
mso-ansi-language:EN-US;}
p.Subsection {mso-style-name:Subsection;
mso-style-parent:"NB - Intert�tulo";
mso-style-next:"NB - Corpo";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
line-height:120%;
mso-pagination:none;
page-break-after:avoid;
mso-hyphenate:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:10.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:#9D0C15;
mso-ansi-language:EN-US;
font-weight:bold;
font-style:italic;}
span.NB-Legendanegrito1 {mso-style-name:"NB - Legenda negrito";
mso-style-parent:"";
font-weight:bold;}
span.NB-NegritoTcnico3 {mso-style-name:"NB - Negrito T�cnico";
mso-style-parent:"";
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Verdana";
mso-ascii-font-family:"Verdana";
mso-hansi-font-family:"Verdana";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-font-width:100%;
font-weight:bold;
vertical-align:baseline;}
span.Refdenotaderodap00E91 {mso-style-name:"Ref\. de nota de rodap<00E9>";
mso-style-parent:"";
mso-font-width:100%;
vertical-align:super;}
p.NB-Corpo114 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1141 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
.style2 {font-family: "Courier New", Courier, monospace; font-size: 12px; color: #000000; }
.style5 {font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; font-size: 9pt; }
.style6 {font-size: 9pt}
.style7 {font-family: "Courier New", Courier, monospace; font-size: 9pt; color: #000000; }
p.NB-Corpo11411 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo114111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1141111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11411111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1142 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11412 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo114112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo1141112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11411112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo114111111 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
p.NB-Corpo11421 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
letter-spacing:.05pt;
mso-ansi-language:EN-US;}
.style4 {font-size: 11px; font-weight: bold; color: #BC001C; }
p.NB-Corpo11112 {mso-style-name:"NB - Corpo";
mso-style-parent:"\[No paragraph style\]";
mso-style-next:"\[No paragraph style\]";
margin:0cm;
margin-bottom:.0001pt;
text-align:left;
text-indent:5.65pt;
line-height:16.0pt;
mso-pagination:none;
mso-layout-grid-align:none;
text-autospace:none;
font-size:9.0pt;
font-family:"Verdana";
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Verdana";
color:black;
mso-ansi-language:EN-US;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabela normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=PT-BR style='tab-interval:36.0pt;text-justify-trim:punctuation'>
<div class=Section1>
<table width="770" height="7931" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="200"><img src="/images_www/magazine/openoffice/top_openoffice_web.jpg" width="770" height="200"></td>
</tr>
<tr>
<td width="785" height="42"><p class=NB-Corpo22 style='text-indent:0cm'>&nbsp;</p>
<p class=NB-Corpo22 style='text-indent:0cm'><strong><span lang=EN-US style='letter-spacing:
-.05pt'>Using a new OpenOffice.org plug-in module to create, build, deploy and debug OpenOffice.org/StarOffice extensions and client applications</span></strong></p>
<p class=NB-Corpo22 style='text-indent:0cm'>&nbsp;</p></td>
</tr>
<tr>
<td height="7647" valign="top"><p class=NB-Corpo4 style='text-indent:0cm'>Automating office
tasks, implementing document-based workflows or building corporate solutions
are common tasks that can benefit from using the API of an Office suite.
OpenOffice.org with its millions of users, and Java with its huge community
have several similarities; both, for example, are multiplatform and open
source. But a tool to combine both worlds was missing. That&rsquo;s where the new
OpenOffice.org plugin module for NetBeans comes into the game. </p>
<p class=NB-Corpo4>In this article we will show you how to use
the new module to build Java components which extend OpenOffice.org&rsquo;s general
functionality; we also create a new Calc function and a client application that
accesses OOo features. (StarOffice won&rsquo;t be mentioned explicitly in the article,
but everything shown here works for StarOffice as well.)</p>
<p class=NB-Interttulo4>Overview</p>
<p class=NB-Corpo4>The OpenOffice.org plugin module for
NetBeans provides four wizards which let you create general Add-Ons, Calc
Add-ins, Components and Client Applications: </p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> An <b>Add-On</b> is widely available and
not limited to a certain document type. It can also implement its own toolbars
and menus. Add-ons are typically used for implementing new features that are
directly accessible to users. </span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> A <b>Calc Add-In</b> implements a new Calc
function for the Function Autopilot in spreadsheet documents. A Calc function
requires a different set of attributes than those covered by the general Add-On
wizard &ndash; like function parameter definitions. </span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> </span><span lang=EN-US> <b>Components</b> can be used to extend
the OpenOffice.org API and be accessed through scripting languages. Components
can also extend OOo&rsquo;s charting functionality. </span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> Finally, external <b>Client Applications</b> can use OpenOffice.org&rsquo;s functionality to create, convert, print or manipulate
documents. Thus, OpenOffice.org can be used as powerful rendering and printing
engine within a larger solution. </span></p>
<p class=NB-Corpo4>
<o:p>&nbsp;</o:p>
</p>
<p class=NB-Corpo4>The new wizards create NetBeans projects
with all necessary configurations, such as links to the OpenOffice.org Java
libraries. They also define build targets, perform remote debugging setup and
generate Java code skeletons, among other operations.</p>
<p class=NB-Interttulo4>Requirements, installation and
configuration</p>
<p class=NB-Corpo4>To use the NetBeans OOo plugin module you
need NetBeans 5.5 or newer, and either OpenOffice.org 2.0.4 or StarOffice 8
PU4; also needed is the OpenOffice.org SDK 2.0.4 or newer.</p>
<p class=NB-Corpo4>The wizards are provided in a common
NetBeans module that can be installed and updated via the Update Center. Just
download the file <i>api.openoffice.org/Projects/NetBeansIntegration/<br>
org-openoffice-extensions.nbm</i> and use <i>Run&gt;Update Center&gt;Install
Manually Downloaded Modules (.nbm Files)</i><sup>1</sup>.<span
class=Refdenotaderodap00E91> </span></p>
<p class=NB-Corpo4>Setup is straightforward. There are just two
configuration items available: the paths to the OpenOffice.org installation and
to the SDK. These are accessible during installation and also via the <i>Tools&gt;Options&gt;Miscellaneous</i><b> </b>dialog.</p>
<p class=NB-Corpo4>&nbsp;</p>
<p class=NB-Corpo4><em>1 By the time you read this, it&rsquo;s possible that the module will show up in the Update Center, making the manual download unnecessary.</em></p>
<p class=NB-Interttulo4>Creating OOo extensions</p>
<p class=NB-Corpo4>All four extension types are packed as OOo
packages. This package format was introduced in OpenOffice.org 2.0.4 and uses
the file extension <i>.OXT</i>. A corresponding MIME type is registered in
OpenOffice.org, which enables users to install extensions simply by double
clicking. </p>
<p class=Subsection>Add-Ons
<o:p></o:p>
</p>
<p class=NB-Corpo4>The <i>File&gt;New Project</i> dialog
provides a new <i>OpenOffice.org</i> category that opens the Add-On wizard.
Start the wizard, and enter &ldquo;myAddOn&rdquo; for both the project and add-on names.
Set the Java package to &ldquo;org.openoffice&rdquo;; provide the project folder, and check
the <i>Create Menu </i>and <i>Create Toolbar</i> checkboxes. </p>
<p class=NB-Corpo4>Click <i>Next</i> and you&rsquo;ll be able to
specify the add-on commands. Each command can have an icon assigned to it on
the toolbar. Ideally, you should provide four different icons (two different
sizes in two contrast levels), but it&rsquo;s possible to use the same image for all
icon types. If you do this OpenOffice.org will scale the image accordingly. </p>
<p class=NB-Corpo4>You also need to enter a display name for
the command. This name is used for the menu and toolbars and can be different
from the command name. Note that only the display name can be translated: the
wizard lets you define different locales, but the command name is the same for
all locales. </p>
<p class=NB-Corpo4><span lang=EN-US>In the next step you define the menu
structure. This is optional, as not all add-ons have their own menus. <b>Figure
1</b></span><span lang=EN-US>shows the menu definition wizard page.<span style='mso-spacerun:yes'>&nbsp; </span></span><br>
<br>
</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images_www/magazine/openoffice/imagens/image001.png" width="700" height="313"></td>
</tr>
<tr>
<td height="21"><p class=NB-Corpo11421> <strong>Figure 1.</strong> Defining the add-on&rsquo;s menu structure. <br>
</p></td>
</tr>
</table>
<br>
<p class=NB-Corpo4><span lang=EN-US>The next step is also optional: the
definition of a toolbar to call the add-on&rsquo;s commands (see <b>Figure 2</b>).
The icons in the toolbar preview should look familiar, as they were specified
in step three. Set the names as &ldquo;myAddOn&rdquo;, define the icons and set the
category.<span style='mso-spacerun:yes'>&nbsp; </span></span><br>
<br>
</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images_www/magazine/openoffice/imagens/image003.png" width="700" height="405"></td>
</tr>
<tr>
<td height="21"><p class=NB-Corpo11412> <strong>Figure 2.</strong> Defining the toolbar for the add-on.<br>
<br>
</p></td>
</tr>
</table>
<p class=NB-Corpo4><br>
</p>
<p class=NB-Corpo4>After you click <i>Finish</i>, the wizard
creates two configuration files and a Java class skeleton. The <i>AddOns.xcu</i> configuration file includes the add-on parameters, and <i>ProtocolHandler.xcu</i> defines the protocol handler configuration. Protocol handlers are part of
OpenOffice.org dispatch framework; they bind user-interface controls, such as
menu or toolbar items, to the functionality of OpenOffice.org. Everything
reachable through the user interface is described by a command URL and
corresponding parameters. </p>
<p class=NB-Corpo4><span lang=EN-US>The structure of the <i>ProtocolHandler.xcu</i> file defines a namespace for the add-on (<i>org.openoffice.myaddon</i>,<i> </i>for
our example). All commands defined by the same add-on use this namespace. See <b>Listing
1</b>.</span><br>
<br>
</p>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#98201A">
<tr class="NB-Legendaimagem">
<td height="33" bgcolor="#98201A" class="NB-Interttulo NB-Listagenstitulos">
<p class="style5"><strong>Listing 1.</strong> Excerpt from the ProtocolHandler.xcu configuration file. <br>
</p></td>
</tr>
<tr>
<td><blockquote>
<p class="style6"><br>
&lt;node oor:name=&rdquo;HandlerSet&rdquo;&gt;<br>
&lt;node oor:name=&rdquo;org.openoffice.myAddOn&rdquo; oor:op=&rdquo;replace&rdquo;&gt;<br>
&lt;prop oor:name=&rdquo;Protocols&rdquo; oor:type=&rdquo;oor:string-list&rdquo;&gt;<br>
&lt;value&gt;org.openoffice.myaddon:*&lt;/value&gt;<br>
&lt;/prop&gt;<br>
&lt;/node&gt;<br>
&lt;/node&gt;</p>
<p><br>
</p>
</blockquote></td>
</tr>
</table>
<p class=NB-Corpo4><br>
</p>
<p class=NB-Corpo4>The Java code skeleton looks more
complicated than it really is. Most of the methods are necessary only for
OpenOffice.org internal implementation reasons and don&rsquo;t need to be changed at
all. </p>
<p class=NB-Corpo4><span lang=EN-US>OpenOffice.org calls the </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>dispatch() </span></span><span
lang=EN-US>method each time the protocol handler routes commands. The fully
implemented </span><span class=NB-NegritoTcnico3><span lang=EN-US
style='font-size:10.0pt'>dispatch()</span></span><span lang=EN-US> method,
which adds the &ldquo;Hello World&rdquo; message to the current document is shown in <b>Listing
2</b>. Note that only the lines in bold are new; the rest were part of the
skeleton. The code basically determines the current document and then adds text
to it. Notice also that the </span><span class=NB-NegritoTcnico3><span
lang=EN-US style='font-size:10.0pt'>aURL</span></span><span lang=EN-US> parameter uses the OpenOffice.org specific </span><span class=NB-NegritoTcnico3><span
lang=EN-US style='font-size:10.0pt'>com.sun.star.util.URL</span></span><span
lang=EN-US> class instead of the </span><span class=NB-NegritoTcnico3><span
lang=EN-US style='font-size:10.0pt'>java.net.URL</span></span><span lang=EN-US> class. </span><br>
<br>
</p>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#98201A">
<tr class="NB-Legendaimagem">
<td height="33" bgcolor="#98201A" class="NB-Interttulo NB-Listagenstitulos">
<p class="style5"><strong>Listing 2.</strong> Dispatch() method example.<br>
<br>
</p> </td>
</tr>
<tr>
<td><blockquote>
<p class="style6"><br>
public void dispatch( URL aURL, PropertyValue[] aArguments )<br>
{<br>
if ( aURL.Protocol.compareTo(&ldquo;org.openoffice.myaddon:&rdquo;) == 0 ) {<br>
if ( aURL.Path.compareTo(&ldquo;myAddOn&rdquo;) == 0 ) {<br>
XTextDocument xDoc = (XTextDocument) UnoRuntime.queryInterface(<br>
XTextDocument.class, m_xFrame.getController().getModel());<br>
xDoc.getText().setString(&ldquo;Hello World&rdquo;); <br>
return;<br>
}<br>
}<br>
}</p>
<p><br>
</p>
</blockquote></td>
</tr>
</table>
<p class=NB-Corpo4><br>
</p>
<p class=NB-Corpo4><span lang=EN-US>Since all commands fired by the user
interface are passed through the </span><span class=NB-NegritoTcnico3><span
lang=EN-US style='font-size:10.0pt'>dispatch()</span></span><span lang=EN-US> method, it&rsquo;s necessary to filter explicitly for the namespace <i>org.openoffice.myaddon</i>,
which represents the commands of our add-on. Finally, </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>myAddOn</span></span><span
lang=EN-US> is the command that&rsquo;s fired when the user calls the add-on via the
toolbar or menu. </span></p>
<p class=NB-Corpo4><span lang=EN-US>Our add-on is now ready to deploy. Right
click the project name and choose <i>Deploy Office Extension </i>from the
context menu<i>. </i>NetBeans compiles all necessary files, creates an
OpenOffice.org extension package file, and deploys it. Depending on the setup
of the add-on, a new top-level menu and/or a toolbar are displayed in
OpenOffice.org. For our example both should show up (see the new menu in <b>Figure
3</b>). </span><br>
<br>
</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images_www/magazine/openoffice/imagens/image005.png" width="177" height="50"></td>
</tr>
<tr>
<td height="21"><p class=NB-Corpo114112> <strong>Figure 3.</strong> The new add-on menu.<br>
<br>
</p></td>
</tr>
</table>
<p>&nbsp;</p>
<p class=NB-Corpo4>Developing more complex add-ons will
probably require an extensive debugging session. However, as the add-ons run in
OpenOffice.org&rsquo;s JVM, NetBeans&rsquo; built-in debugger won&rsquo;t work. We need remote
debugging. </p>
<p class=NB-Corpo4><span lang=EN-US>The OOo plugin module adds a command to the
project&rsquo;s context menu for starting a remote debugging session, which means
that a manual setup of the client JVM or the remote debugger is not required.
To use this feature, set a breakpoint within the </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>dispatch()</span></span><span
lang=EN-US> method, then call <i>Debug Extension in Target Office </i>as
displayed in <b>Figure 4</b>. An OpenOffice.org instance will start
automatically. Choose <i>My Command </i>from the add-on&rsquo;s menu and the debugger
will stop at the breakpoint.</span></p>
<p class=NB-Corpo4>&nbsp;</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images_www/magazine/openoffice/imagens/image007.png" width="240" height="98"></td>
</tr>
<tr>
<td height="21"><p class=NB-Corpo1141112> <strong>Figure 4.</strong> Remote debugging context
menu item.<br>
<br>
</p></td>
</tr>
</table>
<br>
<p class=NB-Corpo4>&nbsp;</p>
<p class=Subsection>Calc
Add-Ins
<o:p></o:p>
</p>
<p class=NB-Corpo4>Let&rsquo;s now see how to create a Calc Add-In
extension, which implements OpenOffice.org Calc functions. These functions are
tightly integrated with the Calc application, so users will not recognize the
differences between a standard function and one provided by an add-in; there
are no new menus, toolbars or other evidences of an extension.</p>
<p class=NB-Corpo4>The Calc Add-In wizard is also located in
the <i>StarOffice/OpenOffice.org</i> category of the <i>File&gt;New Project</i> dialog. Start the wizard and enter a name and location for the NetBeans project.
We&rsquo;ll use &ldquo;myAddIn&rdquo; for both names and &ldquo;org.openoffice&rdquo; again as the package
name; also make sure <i>Create backward compatible Calc Add-In </i>is
unchecked. Click <i>Next</i> to enter the name and parameters of the Calc
functions.</p>
<p class=NB-Corpo4>The definition of a Calc Add-In function
requires specifying the following parameters:</p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> The name of the Java method which
implements the Calc function.</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> The data type of the result of the new
function.</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> The exception the Java implementation
throws in case of errors. An additional dialog provides access to all available
exceptions. (This property is optional.)</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> The Category where the function is listed
within Calc's Function Wizard.</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> The function&rsquo;s display name. This can be
different from the name of the corresponding Java method. </span></p>
<p class=NB-Corpo4>
<o:p>&nbsp;</o:p>
</p>
<p class=NB-Corpo4><b><span lang=EN-US>Figure 5</span></b><span lang=EN-US> shows how the wizard presents these parameters. </span></p>
<p class=NB-Corpo4><span lang=EN-US>There are some additional parameters, which
are all localizable. Calc functions are usually localized, having different
names for each language; for example, the function </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>Sum()</span></span><span
lang=EN-US> in the English-language Calc is named </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>Summe()</span></span><span
lang=EN-US> in German Calc releases. </span><br>
<br>
</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images_www/magazine/openoffice/imagens/image009.png" width="700" height="417"></td>
</tr>
<tr>
<td height="21"><p class=NB-Corpo11411112> <strong>Figure 5.</strong> Deployment context menu<br>
<br>
</p></td>
</tr>
</table>
<p class=NB-Corpo4><br>
</p>
<p class=NB-Corpo4>The <i>Description</i> parameter indicates
the purpose of the function, and is displayed in Calc&rsquo;s Function Wizard. <i>Compatibility
Name</i> is necessary to deal with Microsoft Excel integration; it&rsquo;s optional
and usually not necessary. Finally we have the optional parameters of the Calc
function. They require a specification of the data type, the implementation
name, and the displayed name and description.</p>
<p class=NB-Corpo4>To create our simple Calc Add-In, set Name
to &ldquo;doubleValueImpl&rdquo; and Type to <i>double</i>; leave the Exceptions section
empty; set Category to &ldquo;Add-In&rdquo; and<i> </i>Displayed Name to &ldquo;doubleValue&rdquo;.
Change Displayed Description to &ldquo;Simple Calc Add-In: Doubles the given value&rdquo;,
and set Compatibility Name to &ldquo;doubleValue&rdquo;. Then provide the following values
for the first parameter:</p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> Name &ndash; &ldquo;doubleValue&rdquo;</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> Type &ndash; double</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> Displayed Name &ndash; &ldquo;Value&rdquo;</span></p>
<p class=NB-Corpo4><span lang=EN-US style='font-family:Wingdings;mso-bidi-font-family:
Wingdings'>&sect;</span><span lang=EN-US> Displayed Description &ndash; &ldquo;Value to be
doubled&rdquo;</span></p>
<p class=NB-Corpo4>&nbsp;</p>
<p class=NB-Corpo4><span lang=EN-US>
<o:p></o:p>
</span><span lang=EN-US>Click <i>Finish</i> and several
add-in-related files will be created. The most important is the Java class for
the add-in implementation. There&rsquo;s also the configuration file <i>CalcAddin.xcu</i>,
which holds the add-in&rsquo;s parameters. Functions exported by the add-in need to
be defined in a new interface. The function names in this interface, together
with the add-in&rsquo;s service name, are used internally to identify an add-in
function. The <i>myAdd-In.idl</i> and <i>XmyAddIn.idl</i> files define this
service and the interface. They are used by tools and compilers available in
the OpenOffice.org SDK, which build Java source and header files; but this
process is hidden by the OOo plugin module. </span></p>
<p class=NB-Corpo4><span lang=EN-US>Most of the initial skeleton code need not
be changed. Our </span><span class=NB-NegritoTcnico3><span lang=EN-US
style='font-size:10.0pt'>doubleValueImpl()</span></span><span lang=EN-US> method is called by the add-in and provides the implementation of its
functionality. The implementation is really simple; it just doubles all values
given by the user:</span></p>
<p class=NB-Cdigointerno2>
<o:p>&nbsp;</o:p>
</p>
<p class=style7>public double
doubleValueImpl(double doubleValue)<span style='mso-spacerun:yes'>&nbsp; </span>{
<o:p></o:p>
</p>
<p class=style7><span
style='mso-spacerun:yes'>&nbsp;&nbsp; </span>return doubleValue * 2;
<o:p></o:p>
</p>
<p class=style7>}
<o:p></o:p>
</p>
<p class=NB-Cdigointerno2>&nbsp;</p>
<p class=NB-Corpo4><span lang=EN-US>NetBeans will complain that the </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>XmyAddIn</span></span><span
lang=EN-US> interface is missing, which is true so far. The reason is that the
interface is defined in a UNO IDL (Interface Definition Language) file and not
as a Java class. The plugin will create Java code based on this IDL file as
well as other add-in related services and interfaces automatically when the
project is compiled. </span></p>
<p class=NB-Notadica3 style='margin-top:11.35pt'><span lang=EN-US>UNO (Universal
Network Objects) is OpenOffice.org&rsquo;s component technology.</span><br>
</p>
<p class=NB-Corpo4><span lang=EN-US>That&rsquo;s all. The Calc Add-In is fully
implemented and ready to deploy. This can be done easily through the project&rsquo;s
context menu: choose <i>Deploy Office Extension </i>(see <b>Figure 6</b>) and
NetBeans compiles all project-related files, builds an OXT extension package
and installs it in OpenOffice.org.</span><br>
<br>
</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images_www/magazine/openoffice/imagens/image011.png" width="240" height="188"></td>
</tr>
<tr>
<td height="21"><p class=NB-Corpo114111111> <strong>Figure 6.</strong> Defining a function and its parameters in the Calc Add-In wizard.<br>
<br>
</p></td>
</tr>
</table>
<p class=NB-Corpo4><br>
</p>
<p class=NB-Corpo4><span lang=EN-US>You can test the new add-in by starting a
Calc instance and creating a new spreadsheet document. Then call the Calc&rsquo;s
Function wizard, where you&rsquo;ll see the new function listed under the Add-In
category. To verify that our new function works, enter in any cell the formula
&ldquo;</span><span class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>=doublevalue(3)</span></span><span
lang=EN-US>&rdquo;. As expected, Calc will produce 6<i> </i>as the result.</span></p>
<p class=Subsection>Client
Applications
<o:p></o:p>
</p>
<p class=NB-Corpo4>A client application is an external solution
that makes use of the OpenOffice.org functionality instead of extending it. It
can use OOo to convert or process any document supported by the office suite.</p>
<p class=NB-Corpo4>The Client Application wizard is also
available in a OpenOffice.org New Project category. You just need to start the
wizard and enter the name and location of the NetBeans project; no further
settings are required. Click <i>Finish</i>, and the wizard creates the Java
skeleton.</p>
<p class=NB-Corpo4>As a client application is not an integrated
part of OpenOffice.org, most of the configuration and IDL files are not
necessary. The NetBeans project consists of just a Java class and classpath
settings for OpenOffice.org Java libraries.</p>
<p class=NB-Corpo4><span lang=EN-US>You&rsquo;ll notice that the code skeleton for a
client application is quite small in comparison to the add-in and add-on
skeletons. It is basically not much different from the Java class code
generated by the general Java Class wizard. The implementation of the </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>main()</span></span><span
lang=EN-US> method contains a single line of code (besides exception handling):</span></p>
<p class=style7>XComponentContext
xContext = Bootstrap.bootstrap();
<o:p></o:p>
</p>
<p class=NB-Corpo4><span lang=EN-US>The generated class works as a client of an
OpenOffice.org process, with OpenOffice.org acting as a server with its own
component context. The client program initializes the Universal Network Objects
technology (UNO) and gets the component context from the OOo process. This
initialization process establishes a pipe connection to a running
OpenOffice.org process (starting a new process if necessary) and returns the
remote component context. </span><span lang=EN-US style='color:#001723'>
<o:p></o:p>
</span></p>
<p class=NB-Corpo4><span lang=EN-US>The </span><span class=NB-NegritoTcnico3><span
lang=EN-US style='font-size:10.0pt'>getServiceManager()</span></span><b><span
lang=EN-US> </span></b><span lang=EN-US>method from the component context
obtains the remote service manager from the OpenOffice.org process, which
allows access to the complete office functionality available through the API:</span></p>
<p class=NB-Corpo4>
<o:p>&nbsp;</o:p>
</p>
<p class=style7>XMultiComponentFactory
xMCF =
<o:p></o:p>
</p>
<p class=style7><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>xContext.getServiceManager();
<o:p></o:p>
</p>
<p class=NB-Listagemcorpo>
<o:p>&nbsp;</o:p>
</p>
<p class=NB-Corpo4><span lang=EN-US>Having the service manager, we can obtain
the OpenOffice.org Desktop, which handles application windows and lets you load
and create documents. The </span><span class=NB-NegritoTcnico3><span lang=EN-US
style='font-size:10.0pt'>com.sun.star.frame.Desktop</span></span><span
lang=EN-US> service represents this Desktop: </span></p>
<p class=NB-Corpo4>
<o:p>&nbsp;</o:p>
</p>
<p class=style7>XDesktop
xDesktop = (XDesktop) UnoRuntime.queryInterface(<br>
<blockquote class="style2">XDesktop.class,
<o:p></o:p>
xMCF.createInstanceWithContext(&ldquo;com.sun.star.frame.Desktop&rdquo;,xContext)); </blockquote>
<o:p></o:p>
</p>
<p class=NB-Corpo4><span lang=EN-US>Now we have an instance of the Desktop
without a document; but a text document is necessary to display our greeting.
The </span><span class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>XComponentLoader</span></span><span
lang=EN-US> interface exports the </span><span class=NB-NegritoTcnico3><span
lang=EN-US style='font-size:10.0pt'>loadComponentFromURL()</span></span><b><span
lang=EN-US> </span></b><span lang=EN-US>method to load and create a document.
See it in use in <b>Listing 3</b>. The <i>private:factory/swriter</i> URL
creates a new text document. </span><br>
<br>
</p>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#98201A">
<tr class="NB-Legendaimagem">
<td height="33" bgcolor="#98201A" class="NB-Interttulo NB-Listagenstitulos"><blockquote>
<p class="style5"><strong>Listing 3.</strong> Creating a text document.<br>
<br>
</p>
</blockquote></td>
</tr>
<tr>
<td height="205"><blockquote>
<p class="style7"><br>
XComponentLoader xComponentLoader =<br>
(XComponentLoader) UnoRuntime.queryInterface(<br>
XComponentLoader.class, xDesktop);</p>
<p class="style7">PropertyValue xEmptyArgs[] = new PropertyValue[0];</p>
<p class="style7">XComponent xComponent = <br>
xComponentLoader.loadComponentFromURL(<br>
&ldquo;private:factory/swriter&rdquo;,<br>
&ldquo;_blank&rdquo;, 0, xEmptyArgs);</p>
<p class="style7">XTextDocument xTextDocument = <br>
(XTextDocument) UnoRuntime.queryInterface(<br>
XTextDocument.class, xComponent); </p>
<p><br>
</p>
</blockquote></td>
</tr>
</table>
<br>
<br>
<p class=NB-Corpo4><span lang=EN-US>The new document will show a cursor waiting
for input. This input has to come from the client application. The OOo API uses
a text cursor abstraction to add text to the document, represented by the </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>XTextCursor</span></span><span
lang=EN-US> interface:</span></p>
<p class=NB-Corpo4>
<o:p>&nbsp;</o:p>
</p>
<p class=style7>XText xText =
xTextDocument.getText();
<o:p></o:p>
<br>
XTextCursor
xTextCursor =
<o:p></o:p>
(XTextCursor) xText.createTextCursor();
<o:p></o:p>
</p>
<p class=Noparagraphstyle2>
<o:p>&nbsp;</o:p>
</p>
<p class=NB-Notadica3><span lang=EN-US>The blinking cursor in the document and <span
class=NB-Legendanegrito1>xTextCursor</span></span><span class=NB-NegritoTcnico3><i><span
lang=EN-US style='font-family:"Verdana BT Bold Italic";mso-bidi-font-family:
"Verdana BT Bold Italic"'> </span></i></span><span lang=EN-US>are
independent of each other. Open-
Office.org Writer uses MVC to separate the content/model from the view. The
text cursor is the view in this context, and the cursors created by <span
class=NB-Legendanegrito1>createTextCursor()</span> are the model. You can create
several models for text cursors.</span></p>
<p class=NB-Notadica3>&nbsp;</p>
<p class=NB-Corpo4><span lang=EN-US>Finally, the method </span><span
class=NB-NegritoTcnico3><span lang=EN-US style='font-size:10.0pt'>insertString()</span></span><span
lang=EN-US> adds the message to the document:</span></p>
<p class=style7>xText.insertString(
xTextCursor, &ldquo;Hello World&rdquo;, false );
<o:p></o:p>
</p>
<p class=Subsection>Components
<o:p></o:p>
</p>
<p class=NB-Corpo4>OpenOffice.org can be extended by
Components. These are shared libraries or JAR files with the ability to
instantiate objects that can integrate themselves into the UNO environment. A
Component can access existing features of OpenOffice.org, and be used from
within the office suite through the object communication mechanisms provided by
UNO. In fact, the add-ons and add-ins described before are nothing more than
specialized UNO components. </p>
<p class=NB-Corpo4>Components created by the Component wizard
do not require access to a menu or to toolbars, nor do they extend the Calc
function repository. They can be used to implement new interfaces and services.
This flexibility and power makes it impossible to create a simple &ldquo;Hello&rdquo;<i> </i>component,
and creating a fully working Component would go beyond the scope of this
article. There are many excellent articles and documents available which
describe the creation of new OpenOffice.org interfaces and services.
Specifically, we refer you to Chapter 4 of the OpenOffice.org Developer Guide,
which is a good source of examples. </p>
<p class=NB-Interttulo4>Conclusions</p>
<p class=NB-Corpo4>In the past, writing components to integrate
with OpenOffice.org required an extensive setup of the NetBeans infrastructure,
with steep learning curves. Everything was documented somewhere but putting
this information together took far too much effort. This has changed with the
new OpenOffice.org plugin module we&rsquo;ve covered in this article. The module takes
care of integration chores and lets developers concentrate on the
implementation of their extensions. Also, the module&rsquo;s remote debugging
capabilities make it much easier and faster to debug applications based on
OpenOffice.org. If you need to integrate with OpenOffice.org or StarOffice,
give it a try! </p>
<p class=NB-Corpo4>The next releases of the plugin will
integrate Java more closely into the OpenOffice.org scripting framework, and
will let you use Java for typical scripting related tasks, combining the
advantages of an integrated scripting language with the power of NetBeans and
Java technology.</p>
<p class=NB-Corpo31 style='text-indent:0cm'>
<o:p></o:p>
</p>
<p class=NB-Corpo31>&nbsp;</p>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#9D0C15">
<tr class="NB-Legendaimagem">
<td height="33" bgcolor="#9D0C15" class="NB-Interttulo NB-Listagenstitulos"><blockquote>
<p class="NB-Listagenstitulos"><strong>Links</strong></p>
</blockquote></td>
</tr>
<tr>
<td height="201"><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="40">&nbsp;</td>
<td><a href="http://wiki.services.openoffice.org/wiki/OpenOffice_NetBeans_Integration"><span class="style3"><font color="#9D0C15" face="Verdana">wiki.services.openoffice.org/wiki/OpenOffice_NetBeans_Integration
</font></span></a></td>
</tr>
<tr>
<td height="19">&nbsp;</td>
<td><font size=1 color=black face="Verdana"><span style="font-size:9.0pt;letter-spacing:0pt">The project&rsquo;s homepage on the OpenOffice.org Wiki
</span></font></td>
</tr>
</table>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="40">&nbsp;</td>
<td><a href="http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html"><span class="style3"><font color="#9D0C15" face="Verdana">api.openoffice.org/DevelopersGuide/DevelopersGuide.html
</font></span></a></td>
</tr>
<tr>
<td height="19">&nbsp;</td>
<td class="style1"><font color=black face="Verdana">OpenOffice.org Developers Guide
</font></td>
</tr>
</table>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="40" height="19">&nbsp;</td>
<td><a href="http://download.openoffice.org/sdk.html"><span class="style3"><font color="#9D0C15" face="Verdana">download.openoffice.org/sdk.html=
</font></span></a></td>
</tr>
<tr>
<td height="19">&nbsp;</td>
<td class="style1"><font color=black face="Verdana">Download page of the latest release of the OpenOffice.org SDK
</font></td>
</tr>
</table> </tr>
</table>
<br>
<br>
<table width="770" border="1" cellpadding="0" cellspacing="0" bordercolor="#BC001C">
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="1" bordercolor="#BC001C">
<tr>
<td width="93"><div align="center">
<div align="center"><img src="/images_www/magazine/autores/Kay_Koll.jpg" alt="Autor" width="80" height="94"></div>
</div></td>
<td width="677" valign="middle"><p class=NB-Corpo11121><strong>Kay Koll </strong><br>
(kay.koll@sun.com) is responsible for the technical marketing of StarOfficae/OpenOffice.org. He has been working in various positions for StarOffice since 1995. Kay lives in Hamburg, Germany.<br>
<br>
</p></td>
</tr>
</table></td>
</tr>
</table> </td>
</tr>
</table>
<p class=NB-Corpo style='text-indent:0cm'>&nbsp;</p>
</div>
</body>
</html>