<sect1 id="javascript">
<title
>JavaScript</title>

<sect2 id="javascript_console">
    <title
>Consola de JavaScript</title>
    <indexterm>
      <primary
>Consola de JavaScript</primary>
    </indexterm>
    <para
>O <keycombo action="simul"
>&Alt;&Ctrl; <keycap
>J</keycap
></keycombo
> abre a consola de JavaScript. (só está disponível se a libkjsembed estiver presente na compilação e na execução)</para>
    <para
>A consola de JavaScript é uma interface para o interpretador de JS incorporado, o qual poderá ser usado para diversão ou para testes.</para>
  </sect2>

  <sect2 id="javascript_interface">
    <title
>Interface de JavaScript</title>
    <indexterm>
      <primary
>Interface de JavaScript</primary>
    </indexterm>
    <para
><emphasis role="bold"
>Atenção:</emphasis
> O suporte para JS é bastante estável e você não poderá perder quaisquer dados ao usá-lo. Contudo, os seus programas poderão não funcionar com as versões futuras do &krusader;, dado que o suporte para JS está a mudar.</para>
    <tip>
      <para
>Por favor <link linkend="help_krusader"
>envie as suas Extensões de JavaScript favoritas</link
> para que se tornem disponíveis para a comunidade do &krusader;. Muito obrigado!</para>
    </tip>
    <para
>As aplicações de JavaScript normalmente têm 2 ficheiros <filename
>xpto.js</filename
> e <filename
>xpto.ui</filename
>. Estes são instalados em <filename
>~/.kde/share/apps/krusader/js/</filename
>, onde uma acção do utilizador com uma acção "%_Script" irá iniciar a programação em JavaScript. De momento, existem 2 demonstrações em JS <filename
>root-mount-extension.tar.bz2</filename
> e <filename
>js-demo-calc.tar.bz2</filename
>, as quais poderão ser mais explicativas.</para>
    <para
>Quando é executado um programa, este não sabe a sua origem (ou poderá vir a existir uma forma de o fazer, desconhecida dos autores) e todos os locais são relativos à pasta de trabalho actual. Contudo, esta pasta (normalmente) não é onde o programa se encontra, mas sim a pasta actual do painel activo do Krusader. Isto deverá permanecer assim. Contudo, para referenciar os ficheiros adicionais, como os ficheiros '.ui' (interfaces do utilizador, exportadas pelo &Qt; Designer), é necessária a localização do programa. A alternativa de usar locais absolutos, como será de esperar, é completamente inconveniente. Por essa razão, foi introduzida a variável "scriptDir". Se um programa necessitar de carregar uma &GUI; de um ficheiro '.ui' serão sempre feitos desta forma: <emphasis
>var ui = Factory.loadui( scriptDir + ficheiro.ui' );</emphasis
> Recomenda-se a utilização do Dialog como base para desenhar as &GUI;s a usar com o JS. Execute a janela com o comando <emphasis
>ui.exec();</emphasis
> Os elementos da &GUI; poderão ser acedidos da seguinte forma: <emphasis
>ui.child('nomeElemento')</emphasis
></para>
    <para
>De momento, só os objectos de C++ 'Krusader' e 'PanelManager' estão expostos sem qualquer lógica por trás. Os mesmos poderão ser inspeccionados com a consola de JS e as funções 'properties()', 'children()' e 'slots()'. Poderá aceder aos filhos com a função 'child("nomeDoFilho")', o qual devolve o próprio objecto. De momento, a variável 'scriptDir' é mais útil. A seguir à extensão de montagem como 'root', já é possível criar &GUI;'s avançadas para as ferramentas da linha de comandos</para>
    <para
>Poderá brincar à vontade com o 'Krusader.setCaption("Ei, vamos embora!");', 'Krusader.children();', 'Krusader.child("ajuda").slots();', 'alert(Krusader.properties())' ou 'Krusader.child("ajuda").show();'.... Para além disso, é existe um novo item de substituição para as <link linkend="useractions"
>Acções do Utilizador</link
>, o '%_Script()%', que irá executar um ficheiro externo.</para>
    <para
>NOTA: O objecto 'Krusader' irá mudar. Ainda não foram feitas as decisões sobre a interface JS (à altura da versão 1.70.0). Todas as ideias são bem-vindas. Por favor, veja o nosso <ulink url="http://www.krusader.org/phpBB/index.php"
>Fórum do &krusader;</ulink
> para obter algumas reacções.</para>
    <para
>The JavaScript-support is based on <ulink url="http://xmelegance.org/kjsembed/"
>KJSEmbed</ulink
>. Some examples which show the power of this library can be found <ulink url="http://xmelegance.org/kjsembed/examples/index.html"
> here</ulink
>. Support for all of KDE's ground-laying technologies such as DCOP or KParts is provided. You can even load whole GUIs from .ui-files, created with &Qt;'s Designer. An example extension making use of this can be found <ulink url="http://www.krusader.org/phpBB/viewtopic.php?p=4832#4832"
> here</ulink
>.</para>
</sect2>

</sect1>

