XUL

S Vikipedije, slobodne enciklopedije

XUL (/ˈzl/, skraćeno od XML User Interface Language, je jezik za obeležavanje za korisničkim interfejsom napravljen od strane Mozilla-e. XUL je implementiran kao XML dialekat; on dozvoljava da grafički korisnički interfejs bude napisan na sličan način kao veb stranice.

XUL može da se koristi za pisanje aplikacija za više platformi kao što je Mozilla Firefox, gde je interpretiran od strane layout engine-a poznatijeg kao Gecko koji prevodi Firefox-ov korisnički interfejs i prikaz veb stranica.[1]

Dizajn[uredi | uredi izvor]

XUL se oslanja na mnoge postojeće veb standarde i tehnologije, uključujući CSS, JavaScript, i DOM, ta činjenica čini XUL relativno lakim za učenje ljudima sa poznavanjem osnova veb programiranja i veb dizajna.

XUL nema formalnu specifikaciju i ne interaguje se ne-Gecko implementacijama. Ipak, koristi open source implementaciju Gecko-a, koja je licencirana pod GNU GPL-om, GNU LGPL-om, i MPL-om [2] dok Gecko nije prešao na GPL-kompatibilni, MPL 2.0.

Mozilla pruza eksperimentalni XULRunner build-er koji omogućava programerima da napišu svoje aplikacije na osnovama Mozilla application framework-a i XUL-a posebno.

XUL pruža portable definiciju za uobičajne widget-e, omogućavajući im da se lako prebace na bilo koju platformu na kojoj se Mozilline aplikacije izvršavaju.[3]

XUL dokumentacija[uredi | uredi izvor]

Programeri obično definišu XUL interfejs kao tri diskretna skupa komponenti:

  1. content: XUL dokumenta, čiji elementi definišu raspored korisničkog interfejsa
  2. skin: CSS fajlovi i slike, koji definišu izgleda aplikacije
  3. locale: fajlovi koji sadrže vidljive stringove za lakšu lokalizaciju softvera

XUL elementi[uredi | uredi izvor]

XUL definiše veliki broj elemenata, koji grubo mogu da se podele na sledeće tipove:

Elementi visokog nivoa
window, page, dialog, wizard, etc.
Widget-i
label, button, text box, list box, combo box, radio button, check box, tree, menu, toolbar, group box, tab box, colorpicker, spacer, splitter, etc.
Box modeli
box, grid, stack, deck, etc.
Događaji i skriptovi
script, command, key, broadcaster, observer, etc.
Izvori podataka
template, rule, etc.
Ostali
overlay (analogno sa SSI-om, ali na klijentskoj strani i moćniji, sa boljim performansama), iframe, browser, editor, etc.

Programer može da koristi elemente iz drugih XML aplikacija u XUL dokumentima, kao npr. XHTML, SVG i MathML.

Mozilla je dodala neke osnovne widget-e — <scale/> (nekada nazvan i "slider"), <textbox type="number"/> (spinbox), odabirače datuma i vremena — za vreme razvijanja Gecko verzije 1.9.[4]

XUL aplikacije[uredi | uredi izvor]

Dok se XUL koristi primarno za razvijanje Mozilla aplikacija i njihovih ekstenzija on može da se koristi i u veb aplikacijama transferovan preko HTTP-a. Mozilla Amazon Browser, bivša XUL aplikacija ovog tipa, pružala je bogat interfejs za pretraživanje knjiga na Amazon.com-u.[5] Ipak, mnoga moćna svojstva Mozilla-e (kao npr. XPCOM objekti) ostaju nedostupni za neprivilegovana XUL dokumenta osim ako skript ima digitalni potpis, i osim ako korisnik dobije pravo pristupa određenim privilegijam u aplikaciji. Takva dokumenta takođe pate od različitih ograničenja veb pregledača, uključujući nemogućnost da se učitaju daljinski XUL, DTD, i RDF dokumenti.

Kako Gecko jedini pruža punu implementaciju XUL-a, takve aplikacije ostaju nepristupačne korisnicima veb pregledača koji nisu zasnovani na Mozili. Mozilla-programeri ponekad kažu da se XUL aplikacije izvršavaju lokalno kao chrome.[6]

Druge aplikacije koje koriste XUL:

  • Ample SDK open-source GUI okvir omogućuje implementaciju XUL-a u JavaScript-u na više veb pregledača.
  • ActiveState Komodo IDE koristi XUL kao i Open Komodo projekat predstavljen 2007.
  • Songbird muzički plejer i Miro video plejer oboje koriste ugrađeni XUL.
  • Elixon WCMS/XUL Content management system koristi isključivo daljinski XUL, i tako prevazilazi neke od već pomenutih ograničenja daljinski neprivilegovanih XUL dokumenata.
  • Programeri aplikacije Celtx medija koristili su u pred produkciji XUL.
  • Flickr Uploader je razvijen pomoću XUL-a, izvorni kod je dostupan pod GPLv2 licencom.[7]
  • Kiwix, offline Wikipedia pregledač

Sa pojavom Firefox verzije 4, podrška za udaljena XUL dokumenta je podrazumevano onemogućena iz sigurnosnih razloga. Učitavanje XUL stranice preko HTTP-a ne bi prijavilo grešku osim ako je domen dodat na sakrivenu belu listu.[8]

Naziv[uredi | uredi izvor]

Naziv "XUL" je referenca iz filma Ghostbusters (1984), u kom antičko Sumersko biće zvano Zuul obuzima Danu Barrett i izjavljuje, "Nema Dane, samo Zuul". Budući da XUL, kao i MXML, koristi XML da definiše interfejs a ne dokument, njegov razvojni tim osmislio je slogan: "Ne postoje podaci, postoji samo XUL". Odatle XML namespace URI na početku svakog XUL dokumenta:

http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

Dokument iz linka prikazuje link velikim slovima na sredini ekrana.

"Keymaster" i "gatekeeper" su takodje reference iz filma Ghostbusters. (Druge reference na Ghostbusters takodje se pojavljuju u Mozillinim projektima: npr., komponenta JavaScript debugger-a se zove Venkman, po jednom od glavnih likova u filmu.)

Primer[uredi | uredi izvor]

Ovaj primer prikazuje tri dugmeta naslagana jedno na drugo u vertical box kontejneru:[9]

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <vbox>
    <button id="yes1" label="Yes"/>
    <button id="no1" label="No"/>
    <button id="maybe1" label="Maybe"/>
  </vbox>
</window>

Slični jezici[uredi | uredi izvor]

Zasnovan na HTML-u, DHTML-u i JavaScript-u, Microsoft-ov HTML Application podseća na XUL i predstavlja zasebnu aplikaciju sa mogućnošću da pokreće aplikacije na Windows-u, van pregledača veba.

Microsoft Windows Presentation Foundation (WPF) definiše XAML, još jedan deklarativni jezik sa korisničkim interfejsom sličan XUL-u — on je na vrhu .NET Framework hijerarhije.

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ „Gecko FAQ”. Mozilla Developer Center. Mozilla Foundation. 15. 3. 2008. Архивирано из оригинала 13. 09. 2008. г. Приступљено 26. 3. 2009. 
  2. ^ Mozilla Foundation. „Mozilla Code Licensing”. Приступљено 17. 9. 2007. 
  3. ^ „The Joy of XUL”. Mozilla Foundation. 9. 9. 2007. Архивирано из оригинала 17. 11. 2008. г. Приступљено 26. 3. 2009. 
  4. ^ Firefox 3 for developers
  5. ^ „Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)”. Oreillynet. 5. 2. 2003. 
  6. ^ Feldt, Kenneth C. (2007). Programming Firefox: Building Rich Internet Applications with XUL. O'Reilly Media. стр. 76—77. ISBN 978-0-596-10243-2. Приступљено 4. 3. 2008. 
  7. ^ Getting your stuff onto Flickr
  8. ^ „Firefox 4 for developers”. 
  9. ^ The Box Model - XUL | MDN Архивирано на сајту Wayback Machine (24. фебруар 2012). Developer.mozilla.org (2012-12-16). Retrieved on 2014-03-28.

Spoljašnje veze[uredi | uredi izvor]