57
DKA Képalbum DKA Képalbum Egy webkettes alkalmazás fejlesztése Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel QxTransformer/qooxdoo eszközökkel Vitéz Gáborné – Drótos László – Moldován István – Simon Jennifer (Vitéz és Társa Bt. – Országos Széchényi Könyvtár, E-könyvtári Szolgáltatások Osztály) ______________________________ NETWORKSHOP 2012 – VESZPRÉM 2012. április 11. – 13.

DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

  • Upload
    oihane

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Vitéz Gáborné – Drótos László – Moldován István – Simon Jennifer (Vitéz és Társa Bt. – Országos Széchényi Könyvtár, E-könyvtári Szolgáltatások Osztály) ______________________________ NETWORKSHOP 2012 – VESZPRÉM 2012. április 11 . – 13. - PowerPoint PPT Presentation

Citation preview

Page 1: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

DKA KépalbumDKA Képalbum Egy webkettes alkalmazás fejlesztéseEgy webkettes alkalmazás fejlesztéseQxTransformer/qooxdoo eszközökkelQxTransformer/qooxdoo eszközökkel

Vitéz Gáborné – Drótos László –Moldován István – Simon Jennifer

(Vitéz és Társa Bt. – Országos Széchényi Könyvtár,E-könyvtári Szolgáltatások Osztály)

______________________________

NETWORKSHOP 2012 – VESZPRÉM 2012. április 11. – 13.

Page 2: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

DKA Képalbum

Előzmény – Digitális Képarchívum dka.oszk.hu

OSZK MEK műhely ötlet – személyre szabható Képalbum

Eszközök – QxTransformer/qooxdoo QxTransformer – XML leíró alkalmazásfejlesztő qooxdoo – JavaScript framework

Eredmény - dka.oszk.hu/html/kepalbum.php

Page 3: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

DKA Képalbum

– a képdokumentumok száma közel 32 ezer,– részletes metaadatok több formátumban,– tematikus részgyűjtemények.

Előzmény:

Digitális KéparchívumDigitális Képarchívumdka.oszk.hu

Az alapítás éve: 2007

Page 4: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

OSZK MEK műhely ötlet:új felület a DKA-hoz.

Elvárások: korszerű megjelenés,személyre szabható, saját album kialakítása,

tartalommegosztás, címkézés, értékelés,belépés Facebook vagy Google azonosítóval...

DKA Képalbum

Page 5: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Eszközök: QxTransformer/qooxdoo (qooxdoo.org)és az elképzelt Képalbum felület

DKA Képalbum

Page 6: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo QxTransformer gyors alkalmazásfejlesztő eszköz

platformfüggetlen, Python-alapokon működik, qooxdoo keretrendszert használ, szintaxisa XML

qooxdoo erős, flexibilis framework GNU GPL licenc alatt, JavaScript-alapú, szép, interaktív, web-alapú GUI, widget-ek használata

QxTransformer és qooxdoo együtt egymásra épülő eszközök, saját JavaScript kód használata

Page 7: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo Első lépések, a kötelező "Hello World!"

<qx:button label="First Label" icon="helloworld/test.png" qxt:left="100" qxt:top="50"><!-- Add an event listener --> <qxt:listener type="execute"> <![CDATA[ alert("Hello World!") ]]> </qxt:listener></qx:button>

Page 8: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo Első lépések, a kötelező "Hello World!"

var qxLabel2 = new qx.ui.basic.Label("First Label","helloworld/test.png");qxLabel2.addListener("execute", function(e) {

alert("Hello World!”); });

Page 9: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooWidget készlet

A Qooxdoo-ban a GUI alapvető építő blokkjai a widgetek.

Főbb tulajdonságok: Integráció az eseményrendszerrel Fókusz kezelés "Drag and drop" Automatikus méretezés Kinézet (theming) Tooltip Context menu Láthatóság kezelés Sub widget kezelés

Page 10: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooWidget készlet

A widgetek legalább három HTML elemből állnak. Egy

tartalmazó elemből, amellyel a szülő widgethez kötődnek, és két gyermek elemből: a dekorációból, és a tartalom

elemből.

Page 11: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Widget készlet

Label

Properties:

value, selectable, native context menu, rich, ...

Page 12: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Widget készlet

Image

Properties:

allowGrowX, allowShrinkX, scale, source ...

Page 13: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Widget készlet

Atom

Properties:

icon, iconPosition, label, rich, show ...

Page 14: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Composite

Container a widgetek számára.

Kezeli a children widgeteket és az

applikáció struktúrájának a létrehozását a layoutmanageren keresztül

Page 15: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Layout készlet

pl.: grid

Page 16: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooGrid layout a Képalbumban

Page 17: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Kis mintaalkalmazáshttp://dka.niif.hu/~qxd/helloworld/build/

Fent: menu widget Középen: Tabview Az aktív fülön: Hbox layout egyszerű widgetekkel:

Atom, Button, TextField, DateField, ComboBox

Alatta összetettek: SlideBar, ColorSelector

Page 18: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

<qx:menuBar width="600"> <qx:menuBarButton label="Böngészés" icon="/ikonok/view-sort-ascending.png"> <qx:menu> <qx:menuButton label="Újdonságok" icon=""> </qx:menuButton> <qx:menuButton label="Saját cimkék" icon="icon/16/actions/document-new.png"> </qx:menuButton> <qx:menuButton label="Részgyűjtmények" icon="icon/16/actions/document-new.png"> <qx:menu> <qx:menuButton label="A magyar hajózás" icon="icon/16/actions/document-new.png"/> <qx:menuButton label="Ásványvilág" icon="icon/16/actions/document-new.png"/> </qx:menu> </qx:menuButton> </qx:menu> </qx:menuBarButton>

Page 19: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel
Page 20: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooembedHtml widget

<qx:page label="Forrás XML" TextColor="darkred" icon=""> <qx:vbox> <qx:embedHtml overflow="{js}'auto','auto'" decorator="main" backgroundColor="white" width="900" height="400"> <qxt:property name="html"> <![CDATA[ <pre><b> &lt;qx:tabView&gt;<br> &lt;qx:page label="Találati lista" icon="/ikonok/preferences-keyboard.png"&gt;<br> &lt;qx:vbox&gt;<br> &lt;qx:label value="Találati lista..."/&gt;<br> &lt;/qx:vbox&gt;<br> &lt;/qx:page&gt;<br>... ]]> </qxt:property> </qx:embedHtml> </qx:vbox></qx:page>

Page 21: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel
Page 22: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel
Page 23: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel
Page 24: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooDateField a Képalbumban

Page 25: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel
Page 26: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoocomboBox a Képalbumban

Page 27: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo SlideBar a Képalbumban

Page 28: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Eddig a widgetek külső tulajdonságaiba

tekintettünk be. Nézzük meg az eszköz további

lehetőségeit!

Scriptek beszúrása, események kezelése.

Page 29: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooScript, listener

<qx:button label="Button B" id="gomb" icon="icon/22/apps/internet-mail.png" enabled="true" width="100" maxWidth="100" height="22" MaxHeight="22"> <qxt:listener type="execute"> <![CDATA[ alert("ok"); ]]> </qxt:listener> </qx:button> <qx:dateField id="kezbesites_ido" width="100" maxWidth="100" height="22" MaxHeight="22"> <qxt:script> <![CDATA[qx.locale.Manager.getInstance().setLocale("en"); kezbesites_ido.setValue(new Date()); var format4 = new qx.util.format.DateFormat("yyyy-MM-dd"); kezbesites_ido.setDateFormat(format4); ]]> </qxt:script> </qx:dateField>

Page 30: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooEseménykezelés

Események

Core Widget:Core Widget: appear, blur, changeBackgroundColor, changeEnabled, changeFont, changeShadow, changeTextcolor, changeToolTipText, changeVisibility, click, dbclick, deactivate, disappear, drag, drop, focus, keydown, keypress, mousedown, move, resize, ...

Button:Button: execute, …

ListList:: changeSelection

Page 31: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoo

Az eddigiekből is látható, hogy a QxTransformer jól használható, egyszerű eszköz, mégis az adott

feladat esetén már a dinamikus menü megvalósítása is qooxdoo kód beépítését igényelte. Egy további

megoldandó feladat a "kommunikáció a background programokkal" volt, aminél gyakran megint a

qooxdoo kód segített.

Page 32: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooData Binding

Data: a tárolt kiinduló adat Store: adatkinyerés, elhelyezés a Model-ben Model: a Store és a Controller integrációs pontja Controller: összekapcsolja a Model-ben lévő adatot a View komponenssel View: majdnem bármelyik widget lehet

Page 33: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformerrel definiált comboBox:QxTransformerrel definiált comboBox:<qx:comboBox id="labelcombo" height="22" MaxHeight="22"

marginLeft="25">

qooxdoo kód: store, controller, viewqooxdoo kód: store, controller, view

<qxt:script> <![CDATA[ mydatastore_l = new qx.data.store.Json("/"+progutvonal+"/cimkek.php"); var lcontroller = new qx.data.controller.List(null, labelcombo); lcontroller.setLabelPath("nev"); mydatastore_l.bind("model.cimkek", lcontroller, "model"); ]]></qxt:script>

QxTransformer/qooxdooData Binding

Page 34: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdoocomboBox a Képalbumban

Page 35: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooVirtual widget a Képalbumban

checkbox és lista

Page 36: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Képalbum: részgyűjteményekKépalbum: részgyűjtemények

//subcollection lista menube megy gyujtemenytomb=""; url="/QXD/subcollectionlist.php"; var req7 = new qx.io.remote.Request(url, "GET",

"application/json"); req7.setParameter("test1", "get parameter"); req7.setAsynchronous(false); req7.addListener("completed", function(e) { gyujtemenytomb=e.getContent(); }); req7.send();

QxTransformer/qooxdooDinamikus menü

Page 37: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooDinamikus menü

QxTransformer Menu widget – qooxdoo menu.QxTransformer Menu widget – qooxdoo menu. ButtonButton

<qx:menu id="subcollectionmenu" SpacingX="3" arrowColumnWidth="5"> <qxt:script> <![CDATA[ var gyujtemenyekszama=gyujtemenytomb.length; for(var j=0; j<gyujtemenyekszama/2; j++) { var cimke=gyujtemenytomb[j]; var tooltipszoveg=gyujtemenytomb[j + gyujtemenyekszama/2]; var gyuj = new qx.ui.menu.Button(cimke,""); gyuj.setBlockToolTip(false); var menutooltip = new qx.ui.tooltip.ToolTip(tooltipszoveg); subcollectionmenu.add(gyuj); gyuj.setToolTip(menutooltip); gyuj.addListener("execute",this.subcoll_); gyuj.addListener("execute",this.kepek_oldala); } ]]> </qxt:script></qx:menu>

Page 38: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

QxTransformer/qooxdooDinamikus menü a Képalbumban

Page 39: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

DKA Képalbum

Köszönettel tartozom Drótos Lászlónak, hogy a fejlesztést rendszertervvel, tanácsokkal segítette, és Vitéz Gábornak, hogy felhívta a figyelmemet erre az érdekes eszközre és rendszergazdaként

rendelkezésemre bocsátotta, frissítette a QxTransformer/qooxdoo-t.

Az elkészült alkalmazás főbb funkcióit Moldován István, az OSZK E-könyvtári

Szolgáltatások Osztályának vezetője mutatja be...

Page 40: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Bejelentkező képernyő: dka.oszk.hu/html/kepalbum.php

Page 41: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

A Képalbum funkciót ismertető súgó menüje

Page 42: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Újdonságok listája

Page 43: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Böngészés címkék, részgyűjtemények és témák szerint

Page 44: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Részgyűjtemények listája

Page 45: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Az „Állatvilág” részgyűjtemény találatai

Page 46: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Keresés cím, alkotó és téma szerint

Page 47: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

A kiválasztott képek albumba mentése

Page 48: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Újonnan készített album, egyelőre még borítókép nélkül

Page 49: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Az új albumba mentett képek

Page 50: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Egy régebbi album táblázatos nézetben

Page 51: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Egy kép metaadatokkal és megjegyzés-ablakkal

Page 52: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

A képeslapküldő funkció

Page 53: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Az album tartalma sáv nézetben, nagyítható képekkel

Page 54: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Képek sorrendjének „drag & drop” átrendezése

Page 55: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Diavetítés az album képeiből

Page 56: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Album megosztása weblapként

Page 57: DKA Képalbum Egy webkettes alkalmazás fejlesztése QxTransformer/qooxdoo eszközökkel

Köszönjük a figyelmet!

dka.oszk.hu/html/kepalbum.php