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

<sect2 id="javascript_console">
    <title
>Console do JavaScript</title>
    <indexterm>
      <primary
>Console do JavaScript</primary>
    </indexterm>
    <para
>O <keycombo action="simul"
>&Alt;&Ctrl; <keycap
>J</keycap
></keycombo
> abre o console de JavaScript. (só está disponível se a libkjsembed estiver presente na compilação e na execução)</para>
    <para
>O console 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 deverá perder quaisquer dados ao usá-lo. Contudo, os seus programas poderão não funcionar com as versões futuras do &krusader;, uma vez que o suporte para JS está mudando.</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 possuem 2 arquivos <filename
>nome.js</filename
> e <filename
>nome.ui</filename
>. Estes são instalados em <filename
>~/.kde/share/apps/krusader/js/</filename
>, onde uma ação do usuário com uma ação "%_Script" irá iniciar o programa em JavaScript. Atualmente, 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, ele não sabe a sua origem (ou talvez possa existir uma forma de fazer isso, desconhecida dos autores) e todos os locais são relativos à pasta de trabalho atual. Contudo, esta pasta (normalmente) não é onde o programa se encontra, mas sim a pasta atual do painel ativo do Krusader. Isto deverá permanecer assim. Contudo, para referenciar os arquivos adicionais, como os arquivos '.ui' (interfaces do usuário, exportadas pelo &Qt; Designer), é necessária a localização do programa. A alternativa de usar locais absolutos, como é de se esperar, é completamente inconveniente. Por essa razão, foi introduzida a variável "scriptDir". Se um programa necessitar carregar uma &GUI; de um arquivo '.ui' serão sempre feitos desta forma: <emphasis
>var ui = Factory.loadui( scriptDir + arquivo.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 acessados da seguinte forma: <emphasis
>ui.child('nomeElemento')</emphasis
></para>
    <para
>Atualmente, só os objetos de C++ 'Krusader' e 'PanelManager' estão expostos sem qualquer lógica por trás. Os mesmos poderão ser inspecionados com o console de JS e as funções 'properties()', 'children()' e 'slots()'. Ele poderá acessar aos filhos com a função 'child("nomeDoFilho")', o qual devolve o próprio objeto. Atualmente, 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 comando</para>
    <para
>Você poderá brincar à vontade com o 'Krusader.setCaption("Ei, vamos lá!");', 'Krusader.children();', 'Krusader.child("ajuda").slots();', 'alert(Krusader.properties())' ou 'Krusader.child("ajuda").show();'.... Além disso, existe um novo item de substituição para as <link linkend="useractions"
>Ações do Usuário</link
>, o '%_Script()%', que irá executar um arquivo externo.</para>
    <para
>NOTA: O objeto 'Krusader' irá mudar. Ainda não foram feitas as decisões sobre a interface JS (no momento 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 reações.</para>
    <para
>O suporte para JavaScript baseia-se no <ulink url="http://xmelegance.org/kjsembed/"
>KJSEmbed</ulink
>. Alguns exemplos que demonstram a potencialidade desta biblioteca poderão ser consultados <ulink url="http://xmelegance.org/kjsembed/examples/index.html"
>aqui</ulink
>. O suporte para todas as tecnologias de suporte do KDE, como o DCOP ou o KParts, está disponibilizado. Você poderá até carregar interfaces completas de arquivos '.ui', criadas com o &Qt;'s Designer. Uma extensão de exemplo que tira partido disto poderá ser consultada <ulink url="http://www.krusader.org/phpBB/viewtopic.php?p=4832#4832"
>aqui</ulink
>.</para>
</sect2>

</sect1>

