Makagiga 0.9.4 (SVN) potrafi teraz obsługiwać wtyczki całkowicie napisane w JavaScripcie. Każda taka wtyczka musi składać się z przynajmniej dwóch plików...
Plik 1. - Informacje o wtyczce
Pierwszy plik to "plugin.properties", który zawiera informacje o wtyczce. Minimalny plik musi zawierać jedynie 4 pola: String.id, String.name, String.type i String.scriptName. Przykład:
# "id" musi być unikalne. Można użyć polecenia "uuidgen" w Konsoli Makagigi.
String.id={831dacaf-badf-4d6f-8a4f-676b7da9402f}
# Nazwa wtyczki
String.name=Weather
String.name[pl]=Pogoda
# Typ wtyczki (widget, internetsearch, etc)
String.type=widget
# Nazwa pliku z głównym skryptem
String.scriptName=pogoda.js
Plik 2. - Skrypt
Gdy już mamy "plugin.properties", czas na napisanie skryptu. Tworzymy plik "pogoda.js" i zapisujemy go w tym samym miejscu co "plugin.properties". Przykładowy skrypt wyświetlający mapę pogody... (każdy kto nigdy nie programował w Javie, a pisał coś w JavaScripcie, powinien mniej więcej wiedzieć o co chodzi ;)
importPackage(org.makagiga.commons); // MLabel, MPanel, etc importClass(org.makagiga.desktop.Widget); var pogoda; function wczytaj(dzien) { var adres = "http://www.se.com.pl/Iso/dzisiaj/Mapki/" + dzien + ".gif"; pogoda.setImage(adres); } // ta funkcja wykonywana jest, gdy użytkownik dodaje nowy widget function onCreate() { var widget = new Widget("Pogoda"); // utwórz nowy widget pogoda = new MLabel(); // umieść obrazek "na środku" widgeta // "MScrollPane" doda paski przewijania widget.addCenter(new MScrollPane(pogoda)); var przyciski = MPanel.createHBoxPanel(); // panel z przyciskami // pogoda na dziś var dziś = new MButton("Dziś"); dziś.onClick = function() { wczytaj("dzis"); } // pogoda na jutro var jutro = new MButton("Jutro"); jutro.onClick = function() { wczytaj("jutro"); } // link do strony SE var stronaDomowa = new MURLButton("Strona Domowa", "http://www.se.com.pl"); // dodaj panel z przyciskami przyciski.add(dziś); przyciski.add(jutro); przyciski.addStretch(); przyciski.add(stronaDomowa); przyciski.addGap(); widget.addSouth(przyciski); wczytaj("dzis"); // wczytaj dzisiejszą pogodę return widget; }
Instalacja
Uwaga: Podany poniżej sposób instalacji, będzie niedługo znacznie prostszy i bardziej zautomatyzowany :)
Teraz wrzucamy powyższe dwa pliki do katalogu "~/.makagiga/plugins/{831dacaf-badf-4d6f-8a4f-676b7da9402f}" ({831dacaf-badf-4d6f-8a4f-676b7da9402f} musi być takie same jak w pliku plugin.properties) i po restarcie aplikacji mamy nowy, własnoręcznie wydziergany widżet :)
