Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Как установить и запустить приложение для облачной ОС eyeOS



Как установить и запустить приложение для облачной ОС eyeOS

 

Приложения для eyeOS устанавливаются в подкаталог apps.

Пример пути к данному подкаталогу:

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed/ apps

 

Дополнительные модули, в частности, написанные на JavaScript и предназначенные для выполнения в браузере на стороне клиента, располагаются в подкаталоге extern/apps.

Пример пути: /usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed /extern/ apps

 

Кроме указанных подкаталогов дополнительные файлы, необходимые для работы некоторых приложений, устанавливаются в подкаталоги

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed/ apps/share

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed /extern/ apps / eyeX

и, возможно, в некоторые другие. Всё определяется составом установочного пакета конкретного приложения (файл с расширением .eyepackage).

 

Если требуется вручную установить некоторое приложение, например, HelloWorld, то необходимо скопировать в подкаталог apps подкаталог HelloWorld, который содержит следующие файлы установочного пакета:

app.eyecode (на языке PHP)

events.eyecode (на языке PHP)

info.xml (информация о приложении)

 

Простейшее приложение HelloWorld не нуждается в дополнительных модулях, поэтому в каталог extern/apps и другие дополнительные подкаталоги ничего копировать не нужно.

 

Для более сложных приложений, например, eyeCalc, входящего в установочный комплект eyeOS, подкаталог extern/apps содержит соответствующий подкаталог eyeCalc, в котором находятся следующие файлы:

eyeCalc.eyecode (на языке PHP)

eyeCalc.js (на языке JavaScript)

eyeCalc.min.js (на языке JavaScript без разделения на строки – для ускорения выполнения в браузере?)

Похоже, что все вычисления в приложении eyeCalc выполняются в браузере клиента, а не на стороне сервера, что вполне логично. Таким образом, приложение eyeCalc можно рассматривать как типичный пример разделения вычислительной нагрузки между клиентом и сервером. При этом сервер поддерживает выполнение процесса eyeCalc в контексте eyeOS и формирует окно приложения, а клиент выполняет арифметические операции и вычисляет математические функции, поддерживаемые в калькуляторе.

 

Прежде чем приводить пример файлов приложения HelloWorld, обратим внимание на правила именования подкаталога пакета и функций программ PHP. Имя подкаталога, содержащего файлы приложения (в данном случае HelloWorld), и префиксов функций, описанных в файлах *.eyecode (например, HelloWorld_run), должны совпадать. В противном случае приложение не будет работать.



 

Также обратим внимание на тот факт, что в случае запуска сервера apache на *nix-сервере все текстовые файлы пакета имеют формат, принятый для текстовых файлов в ОС UNIX, т.е. строки завершаются управляющим символом <LF> (перевод строки), в то время как в ОС Windows принят другой формат текстовых файлов, в которых строки завершаются парой символов <CR> (возврат каретки) и <LF>. Это может вызвать проблему совместимости при редактировании таких файлов текстовым редактором под Windows.

 

Возможны, по крайней мере, следующие три способа запуска приложений под eyeOS:

1. Выбор пункта Launch App в выпадающем меню, которое появляется при нажатии круглой кнопки в “панели задач”, располагающейся в самом низу экрана справа. В качестве имени приложения указываем, например, HelloWorld. Этот способ похож на запуск программ в Windows – “Пуск/Выполнить…”.

2. Меню в верхней части экрана: “Accessories/Process Manager” – вкладка “Processes”, кнопка “New process”.

3. Создание ярлыка на рабочем столе: щелчок правой кнопкой мыши и выбор пункта “New launcher” в выпадающем меню. Здесь также можно выбрать значок для ярлыка.

 

Ниже приводится текст файлов приложения HelloWorld, которые находятся в подкаталоге

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed/apps/HelloWorld

 

Префиксы имен, которые должны совпадать с именем подкаталога приложения (HelloWorld) выделены цветным маркером.

 

app.eyecode:

 

<?php

/*

____ _____

/ __ \ / ____|

___ _ _ ___| | | | (___

/ _ \ | | |/ _ \ | | |\___ \

| __/ |_| | __/ |__| |____) |

\___|\__, |\___|\____/|_____/

__/ |

|___/ 1.9

 

Web Operating System

eyeOS.org

 

eyeOS Engineering Team - www.eyeos.org/team

 

eyeOS is released under the GNU Affero General Public License Version 3 (AGPL3)

provided with this release in license.txt

or via web at gnu.org/licenses/agpl-3.0.txt

 

Copyright 2005-2009 eyeOS Team (team@eyeos.org)

*/

 

function HelloWorld_run($params = '') {

// First we create a new Window:

$myWindow = new Window(array(

'cent' => 1,

'father' => 'eyeApps',

'height' => 150,

'name' => 'HelloWorld_Window',

'title' => 'Example Application',

'width' => 250

));

$myWindow->show();

 

// Now we create the initial "Hello World!" Label:

$myLabel = new Label(array(

'father' => 'HelloWorld_Window_Content',

'name' => 'HelloWorld_Label',

'text' => 'Hello World!',

'x' => 20,

'y' => 20

));

$myLabel->show(0);

 

// Afterwards we create the Textbox, where the user

// will add the new "Hello World!" message:

$myTextbox = new Textbox(array(

'father' => 'HelloWorld_Window_Content',

'name' => 'HelloWorld_Textbox',

'width' => 150,

'x' => 20,

'y' => 50

));

$myTextbox->show();

// Because the user should be able to start typing

// from the moment he opens the application without

// having to click into the Textbox we focus it:

$myTextbox->focus();

 

//

$myButton = new Button(array(

'caption' => 'Change Label Text',

'father' => 'HelloWorld_Window_Content',

'name' => 'HelloWorld_Button',

'x' => 20,

'y' => 80

));

// The Textbox need to be a friend of the Button:

// So every time the user clicks the Button the Textbox

// text will be sent.

// A button can have as many friends as you want.

$myButton->addFriend($myTextbox);

$myButton->show();

}

 

function HelloWorld_end($params = '') {

eyeWidgets('unserialize',$params);

}

?>

 

events.eyecode:

 

<?php

/*

____ _____

/ __ \ / ____|

___ _ _ ___| | | | (___

/ _ \ | | |/ _ \ | | |\___ \

| __/ |_| | __/ |__| |____) |

\___|\__, |\___|\____/|_____/

__/ |

|___/ 1.9

 

Web Operating System

eyeOS.org

 

eyeOS Engineering Team - www.eyeos.org/team

 

eyeOS is released under the GNU Affero General Public License Version 3 (AGPL3)

provided with this release in license.txt

or via web at gnu.org/licenses/agpl-3.0.txt

 

Copyright 2005-2009 eyeOS Team (team@eyeos.org)

*/

 

// First we create the NAMEOFAPP_on_NAMEOFBUTTON function.

// In this case, the application is HelloWorld and the

// button is called "HelloWorld_Button":

function HelloWorld_on_HelloWorld_Button($params = '') {

// Now we grab the current text from the Textbox...

$myCurrentText = $GLOBALS['HelloWorld_Textbox']->text;

//... and we set it into the Label:

$GLOBALS['HelloWorld_Label']->setText($myCurrentText);

// Finally we clean the Textbox and focus at it again:

$GLOBALS['HelloWorld_Textbox']->setText('');

$GLOBALS['HelloWorld_Textbox']->focus();

}

 

// If the application we are developing needs to send / receive

// messages, it is necessary to update its contents through the

// eyeWidget's "updateContent" method.

// It is an automatic function and you can just copy it tp

// your applications, which use messages by simply changing the

// app's name in the function:

function HelloWorld_on_Message($params = '') {

eyeWidgets('updateContent',$params);

}

 

// The NAMEOFAPP_on_Close() function will be executed every time

// the user closes the application. We recommended you to always send

// the close message to remove the application from the processes table.

function HelloWorld_on_Close($params = '') {

proc('end');

}

?>


 

info.xml:

 

<package>

<name>HelloWorld</name>

<category>Utilities</category>

<version>1.9</version>

<description>Utility to show how to use the eyeOS Toolkit</description>

<author>eyeOS Team</author>

<license>AGPL</license>

<type>Utility</type>

<icon>index.php?theme=1&amp;extern=icons/48x48/rename.png</icon>

</package>

 


Дата добавления: 2015-11-04; просмотров: 17 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
 | General secondary certificate

mybiblioteka.su - 2015-2024 год. (0.018 сек.)