1
<sect1 id="javascript">
5
<sect2 id="javascript_console">
7
>Консоль JavaScript</title>
10
>Консоль JavaScript</primary>
13
>Натискання комбінації клавіш <keycombo action="simul"
17
> відриває консоль JavaScript. (цією можливістю можна буде скористатися, лише якщо у системі було встановлено libkjsembed під час збирання і виконання програми)</para>
19
>Консоль JavaScript є інтерфейсом до вбудованого інтерпретатора JS, яким можна скористатися з естетичних або практичних міркувань.</para>
22
<sect2 id="javascript_interface">
24
>Інтерфейс JavaScript</title>
27
>Інтерфейс JavaScript</primary>
30
><emphasis role="bold"
31
>Попередження:</emphasis
32
> підтримка JS у програмі є досить стабільною, ви не втратите жодних даних, якщо нею користуватиметеся. Але ваші скрипти можуть стати непрацездатними у наступних версіях &krusader;, оскільки формат підтримки JS може змінитися.</para>
35
>Будь ласка, <link linkend="help_krusader"
36
>поділіться вашими улюбленими додатками JavaScript</link
37
>, щоб ними могли скористатися інші учасники спільноти &krusader;. Дякуємо!</para>
40
>Програма мовою JavaScript, зазвичай, складається з двох файлів <filename
44
>. Ці файли буде встановлено до теки <filename
45
>~/.kde/share/apps/krusader/js/</filename
46
>. Скрипт буде виконано у відповідь на виклик дії користувача з назвою "%_Script". Разом з поточною версією програми постачається два демонстраційних скрипти: <filename
47
>root-mount-extension.tar.bz2</filename
49
>js-demo-calc.tar.bz2</filename
50
>, за допомогою яких ви зможете зрозуміти принципи роботи скриптів.</para>
52
>Під час виконання скрипту сам скрипт не може визначити, звідки його було запущено (або, можливо, авторам програми просто невідомий спосіб визначення потрібних даних), отже всі адреси вважатимуться адресами, вказаними відносного поточного робочого каталогу. Але цей каталог (зазвичай) не є тим каталогом, де зберігається скрипт, цей каталог — поточний каталог активної панелі Krusader. Так і має бути. Але для посилання на додаткові файли, наприклад, .ui (Userinterface (інтерфейс користувача), експортовані з &Qt; Designer) потрібен шлях до скрипту. Використання абсолютних шляхів у такому разі є дуже незручним. Для того, щоб розв’язати цю проблему, було введено змінну "scriptDir". Якщо вам потрібно, щоб певний скрипт завантажив графічний інтерфейс з файла .ui, це можна зробити такою командою: <emphasis
53
>var ui = Factory.loadui( scriptDir + 'назва_файла.ui' );</emphasis
54
> Рекомендуємо вам скористатися Dialog (діалоговим вікном) як основою розробки графічного інтерфейсу, який буде використано у JS. Відкрити таке діалогове вікно можна за допомогою команди: <emphasis
56
> Доступ до елементів графічного інтерфейсу можна отримати у такий спосіб: <emphasis
57
>ui.child('Назва_віджета')</emphasis
60
>У поточній версії передбачено лише доступ до об’єктів C++ 'Krusader' і 'PanelManager', без логічних взаємозв’язків між ними. Переглянути значення цих об’єктів можна за допомогою консолі JS та функцій 'properties()', 'children()' і 'slots()'. Доступ до дочірніх об’єктів можна отримати за допомогою функції 'child("nameOfChild")', яка повертає сам об’єкт. У поточній версії змінна scriptDir є кориснішою ніж у попередніх. На основі додатка root-mount вже можна створювати чудові графічні інтерфейси до інструментів командного рядка.</para>
62
>Ви можете погратися з викликами 'Krusader.setCaption("Гоп-скік, ось і ми!");', 'Krusader.children();', 'Krusader.child("help").slots();', 'alert(Krusader.properties())' або 'Krusader.child("help").show();'... Крім того, новий заповнювач для <link linkend="useractions"
63
>Дій користувача</link
64
>, %_Script()%, може виконувати зовнішній файл.</para>
66
>ЗАУВАЖЕННЯ: Об’єкт «Krusader» буде змінено. Автори програми поки що не досягли консенсусу щодо інтерфейсу JS (на час випуску версії 1.70.0-release). Будь-які ваші ідеї буде з вдячністю вислухано. Будь ласка, скористайтесь для відгуків нашим <ulink url="http://www.krusader.org/phpBB/index.php"
67
>Форумом &krusader;</ulink
70
>Підтримку JavaScript засновано на компоненті <ulink url="http://xmelegance.org/kjsembed/"
72
>. Декілька прикладів, які демонструють потужність цієї бібліотеки, можна знайти <ulink url="http://xmelegance.org/kjsembed/examples/index.html"
74
>. У бібліотеці передбачено підтримку всіх основних технологій KDE, зокрема DCOP і KPart. Ви навіть можете завантажувати графічні інтерфейси, описані у файлах .ui, створених за допомогою &Qt;. Приклад додатка з використанням такого інтерфейсу можна знайти <ulink url="http://www.krusader.org/phpBB/viewtopic.php?p=4832#4832"