User:Thehayro/JavaScript Addons: Difference between revisions

From KDE TechBase
No edit summary
No edit summary
Line 4: Line 4:
= Introduction =
= Introduction =


This is a tutorial on how to write a JavaScript Addon for Plasma.
This is a tutorial on how to write a JavaScript addon for Plasma.
Since it is possible to write Plasmoids in JavaScript (and other languages), you are able to extend your Plasmoid with Addons. This tutorial goes through basic steps you need to do to get your Addon running.
Since it is possible to write Plasmoids in JavaScript (and other languages), you are able to extend your Plasmoid with addons. This tutorial goes through basic steps you need to do to get your addon running.


= Setting up =
= Setting up =
Before we start to program or little addon we need to do some setup.
First of all, we create a directory called ''MyFirstJSAddon'', where our addon will be located. We also need to create a subdirectory called ''contents'' and a sub-subdirectory ''code''.


== metadata.desktop ==
== metadata.desktop ==
In the root directory of our addon, we create a file ''metadata.desktop'' with the following content:
<code ini>
[Desktop Entry]
Name=MyFirstJSAddon
Name[x-test]=xxMyFirstJSAddonxx
Comment=My first JavaScript addon
X-KDE-ServiceTypes=Plasma/JavascriptAddon
Type=Service
X-Plasma-API=javascript
X-KDE-Library=<the value of this entry of your interface that loads your addon>
X-KDE-PluginInfo-Author=<Your name here>
X-KDE-PluginInfo-Email=<Your email here>
X-KDE-PluginInfo-Name=myfirstjavascriptaddon
X-KDE-PluginInfo-Version=0.1
X-KDE-PluginInfo-Website=http://plasma.kde.org/
X-KDE-PluginInfo-Category=<the name of your interface that loads your Addon>
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=LGPL
X-KDE-PluginInfo-EnabledByDefault=true
</code>
The ''X-KDE-Library'' value should have the same ''X-KDE-Library'' value of your interface, which uses your addon.
Moreover should the ''X-KDE-PluginInfo-Category'' value be equal to the ''X-KDE-PluginInfo-Name'' value of your interface to ''tell'' plasma which interface (plasmoid or dataengine) this addon belongs to. With the help of that line, your interface knows what addon it should load.


= A very simple Addon =
= A very simple Addon =
Line 35: Line 67:
</code>
</code>


In this part, the actual method is called echo, however having MyJavaScriptAddon.prototype prefixed is important for JavaScript to make sure that echo is a member of this class.
In this part, the actual method is called echo, however having MyJavaScriptAddon.prototype prefixed is important for JavaScript to make sure that echo is a member of this class. To understand the concept of object orienting in JavaScript see


At the end of your Addon it is also important that you "publish" your class for other instances that would like to use it.
At the end of your Addon it is also important that you "publish" your class for other instances that would like to use it.
<code javascript="javascript">
<code javascript="javascript">
registerAddon(MyJavaScriptAddon) </code>
registerAddon(MyJavaScriptAddon) </code>
Now, we should save our written code into ''MyyFirstJSAddon/contents/code'' and name it ''main.js''.

Revision as of 01:03, 13 September 2010


Introduction

This is a tutorial on how to write a JavaScript addon for Plasma. Since it is possible to write Plasmoids in JavaScript (and other languages), you are able to extend your Plasmoid with addons. This tutorial goes through basic steps you need to do to get your addon running.

Setting up

Before we start to program or little addon we need to do some setup. First of all, we create a directory called MyFirstJSAddon, where our addon will be located. We also need to create a subdirectory called contents and a sub-subdirectory code.

metadata.desktop

In the root directory of our addon, we create a file metadata.desktop with the following content:

[Desktop Entry] Name=MyFirstJSAddon Name[x-test]=xxMyFirstJSAddonxx

Comment=My first JavaScript addon


X-KDE-ServiceTypes=Plasma/JavascriptAddon Type=Service X-Plasma-API=javascript

X-KDE-Library=<the value of this entry of your interface that loads your addon> X-KDE-PluginInfo-Author=<Your name here> X-KDE-PluginInfo-Email=<Your email here> X-KDE-PluginInfo-Name=myfirstjavascriptaddon X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-Website=http://plasma.kde.org/ X-KDE-PluginInfo-Category=<the name of your interface that loads your Addon> X-KDE-PluginInfo-Depends= X-KDE-PluginInfo-License=LGPL X-KDE-PluginInfo-EnabledByDefault=true

The X-KDE-Library value should have the same X-KDE-Library value of your interface, which uses your addon. Moreover should the X-KDE-PluginInfo-Category value be equal to the X-KDE-PluginInfo-Name value of your interface to tell plasma which interface (plasmoid or dataengine) this addon belongs to. With the help of that line, your interface knows what addon it should load.

A very simple Addon

Our Addon will be a simple JavaScript class that prints out "Hello World" when it gets loaded. Furthermore we will provide one method that prints out an entered text.

First of all we will define a constructor. In this case we name it MyJavaScriptAddon

function MyJavaScriptAddon() {

   print("Hello World");

}

This constructor gets called, when this addon is loaded by another JavaScript instance. In there we will get a console output with "Hello World".

The next step is to provide our Addon a method, which print out our input.

MyJavaScriptAddon.prototype.echo = function(text) {

   print(text);

}

In this part, the actual method is called echo, however having MyJavaScriptAddon.prototype prefixed is important for JavaScript to make sure that echo is a member of this class. To understand the concept of object orienting in JavaScript see

At the end of your Addon it is also important that you "publish" your class for other instances that would like to use it.

registerAddon(MyJavaScriptAddon)

Now, we should save our written code into MyyFirstJSAddon/contents/code and name it main.js.