NL1031006C2 - Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface. - Google Patents

Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface. Download PDF

Info

Publication number
NL1031006C2
NL1031006C2 NL1031006A NL1031006A NL1031006C2 NL 1031006 C2 NL1031006 C2 NL 1031006C2 NL 1031006 A NL1031006 A NL 1031006A NL 1031006 A NL1031006 A NL 1031006A NL 1031006 C2 NL1031006 C2 NL 1031006C2
Authority
NL
Netherlands
Prior art keywords
data
user interface
foregoing
definition
node
Prior art date
Application number
NL1031006A
Other languages
English (en)
Inventor
Ruben Daniels
Original Assignee
Javeline B V
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Javeline B V filed Critical Javeline B V
Priority to NL1031006A priority Critical patent/NL1031006C2/nl
Priority to EP07709144A priority patent/EP1982258A1/en
Priority to US12/162,248 priority patent/US20090307625A1/en
Priority to PCT/NL2007/000025 priority patent/WO2007086733A1/en
Application granted granted Critical
Publication of NL1031006C2 publication Critical patent/NL1031006C2/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Description

WERKWIJZE, INRICHTING, DATADRAGER EN COMPUTERPROGRAM-MAPRODUCT VOOR HET REPRESENTEREN VAN DATA IN EEN GEBRUIKERSINTERFACE
5 De onderhavige uitvinding heeft betrekking op een werkwijze voor het representeren van data in een gebruikersinterface. Voorts heeft de uitvinding betrekking op een inrichting voor het uitvoeren van een dergelijke werkwijze. Voorts heeft de uitvinding betrekking op een data-10 drager omvattende een computerprogramma voor het uitvoeren van de werkwijze. Voorts heeft de uitvinding betrekking op een computerprogrammaproduct voor het uitvoeren van een dergelijke werkwijze.
Bij het gebruik van computers worden veelal gege-15 vens die beschikbaar zijn in de computer op voor mensen afleesbare wijze weergegeven op een beeldscherm van de computer. Hierbij is dan sprake van een grafische gebruikersinterface. Een voorbeeld waarbij gebruik wordt gemaakt van een dergelijke grafische gebruikersinterface is een 20 programma dat de inhoud van harde schijven op systematische wijze kan weergeven. Een verder voorbeeld van een dergelijk computerprogramma is een programma voor het weergeven van e-mails.
Bij dergelijke programma's wordt op algemeen be-25 kende wijze het beeldscherm in hoofdzaak verdeeld in drie weergave-elementen. Hierbij bevindt zich aan de linkerzijde een deelvenster voor het weergeven van e-mailmappen.
Aan de rechterzijde bevinden zich twee nieuwe vensters boven elkaar waarbij in het bovenste venster een lijst met 30 koptitels van in een actieve map van het linker venster aanwezige e-mails worden weergegeven. Voorts wordt in het onderste deelvenster ter rechter zijde over het algemeen de inhoud van een van de e-mails in de lijst erboven weergegeven. Andere voorbeelden van het weergeven van informa-35 tie zijn vanzelfsprekend mogelijk.
10310093 2
Voor het beschrijven van de onderhavige uitvinding wordt in deze tekst gebruik gemaakt van het hiervoor geschetste e-mailvoorbeeld.
Voor programmeurs vereist het veel werk om een 5 dergelijk programma op voor de gebruiker zichtbare wijze te laten functioneren. Bij elke implementatie voor het weergeven van data op een beeldscherm is het noodzakelijk dat programmacode wordt geschreven voor het laden van data en waarden.daarvan in de verschillende elementen van de 10 grafische gebruikers interface die op complexe wijze onderling zijn gekoppeld. Dergelijk programmeerwerk vereist voor het bouwen van een dergelijke toepassing veel pro-grammeerwerk en dergelijk werk dient bij elke wijziging van het programma op complexe wijze te worden herzien.
15 Teneinde deze bestaande praktijk te verbeteren en/of te vereenvoudigen, verschaft de onderhavige uitvinding een werkwijze voor het representeren van data in een gebruikersinterface, omvattende stappen voor: - het bepalen van ten minste een dataverzameling 20 met een boomstructuur voor koppeling daarmee met ten minste een element van de gebruikersinterface, - het selecteren van een node uit de boom als ba-sisnode voor een koppeling, - het leggen van een koppeling met het element van 25 de gebruikersinterface middels een koppelingsdefinitie omvattende koppelingsregels, - het renderen van ten minste een deel van het element van de gebruikersinterface op basis van de koppelingsdef initie .
30 Een voordeel van een dergelijke werkwijze is dat een programmeur die een dergelijk programma moet schrijven zich geen rekenschap meer behoeft te geven over hoe data wordt geladen in elementen van grafische gebruikersinterfaces of toepassingen. Voorts behoeft er geen aparte code 35 te worden geschreven voor wijzigingen in elementen van een gebruikersinterface wanneer data wijzigt. Wanneer bijvoorbeeld in het genoemde e-mailvoorbeeld een nieuwe e-mail 3 binnenkomt vanaf een e-mailserver, gebeuren er bij bekende gebruikersvriendelijke programma's vele handelingen waarvoor volgens de stand van de techniek relatief veel pro-grammeerwerk was vereist voor het laten weergeven van de 5 gebruikersinterface.
De gebeurtenissen die veelal plaatsvinden zijn bijvoorbeeld dat de map waar de e-mail binnenkomt in plaats van middels een normale weergave middels een weergave met als attribuut [vet] wordt weergegeven, dat wil 10 zeggen in een vet lettertype. Voorts wordt er veelal achter de naam van een dergelijke map aangegeven hoeveel ongelezen e-mails er in de map nog aanwezig zijn. Deze wijzigingen worden in een grafische gebruikersinterface weergegeven in het linker deelvenster. In het rechterdeelven-15 ster zal een nieuwe ongelezen e-mail op op zichzelf bekende wijze worden weergegeven met een koptitel met als attribuut een vet lettertype. Vervolgens zal na een vooraf ingestelde gebeurtenis, zoals het lezen van e-mail, het attribuut van het vette lettertype worden omgezet in een 20 attribuut voor een normaal lettertype en zal de weegave dienovereenkomstig dienen te wijzigen. Bij weergavepro-grammatuur volgens de stand van de techniek dient specifieke programmacode te worden geschreven teneinde deze weergaven en wijzigingen van weergaven te realiseren. Door 25 toepassen van een werkwijze voor het representeren van data in een gebruiksinterface volgens onderhavige uitvinding, behoeven slechts de hierboven genoemde stappen te worden uitgevoerd waarna de weergave van de gebruikersinterface kan worden gerenderd op basis van de koppelingsde-30 finitie.
In een eerste voorkeursuitvoeringsvorm volgens de onderhavige uitvinding zijn in een dergelijke werkwijze de koppelingsregels geschikt voor het selecteren van een deel van de data van de dataverzameling onder de basisnode en 35 het op basis van de selectie geven van een waarde aan een eigenschap van ten minste een deel van de gebruikersinterface. Een voordeel van een dergelijke voorkeursuitvoe- 4 ringsvorm is dat middels de koppelingsregels (complexe) representatiedefinities kunnen worden opgesteld en uitgevoerd. Voorts kunnen eigenschappen van ten minste delen van de gebruikersinterface worden beïnvloed. Hierbij kan 5 gedacht worden aan bijvoorbeeld de representatie middels vette lettertypes.
In een verdere voorkeursuitvoering wordt een kop-pelingsregel gebruikt voor het middels een informatieaanvraag (query) selecteren van data op basis van (sub-)-10 elementen binnen de elementen van de grafische gebruikersinterface waarbij de eigenschappen van elk van de (sub-)elementen zijn gedefinieerd middels andere koppelingsregels in de koppelingsdefinitie.
Een voordeel van een dergelijke uitvoeringsvorm is 15 dat een multinode element kan worden toegepast voor datak-oppeling. Een verder voordeel van de onderhavige uitvinding is dat door het laden van data op basis van een kop-pelingsregel het datamanagement hierdoor zodanig kan worden geregeld dat de hele koppelingsdefinitie in een be-20 stand of logisch geheel kan worden gedefinieerd. Voorts kan het datamanagement op basis van de vraag worden aangepast en gerealiseerd.
Bij voorkeur wordt een koppelingsregel toegepast voor het specificeren hoe data wordt ingevoegd in een da-25 ta-element.
In een verdere voorkeursuitvoeringsvorm wordt data gekoppeld aan een gebruikersinterface-element op een positie die wordt gedefinieerd ten opzichte van de ingestelde basisnode. Een voordeel hiervan is dat voor het laden van 30 data binnen een element geen gebeurtenissenstructuur (event structure) is vereist voor het uitvoeren van eenzelfde handeling.
Bij voorkeur wordt een deel van de data gedefinieerd middels een geselecteerde node die is gekoppeld aan 35 de gebruikersinterface. Hierbij is een voordeel dat onderdelen van een boomstructuur dynamisch kunnen worden geladen, bijvoorbeeld kan een lijst van hiërarchisch gerang- 5 schikte e-mailmappen worden geladen wanneer een hiertoe geschikt symbool in de in dit geval grafische, gebruikersinterface wordt aangeklikt. Hierbij kan bijvoorbeeld worden gedacht aan het.'plus'-symbool dat voor een mapsym-5 bool wordt weergegeven in een welbekende weergave van een mappenstructuur. Het voordeel hiervan is dat bijvoorbeeld netwerkverkeer kan worden verminderd doordat bij het laden van de boomstructuur in eerste instantie slechts gegevens met betrekking tot een relatief hoge hiërarchie in de 10 boomstructuur worden geladen voor het snelle weergave daarvan, waarna automatisch of naar wens van de gebruiker gegevens met betrekking tot hiërarchisch lagere elementen worden geladen. Hierbij kan tevens de gebruiker een gewenste volgorde aangeven.
15 In een verdere voorkeursuitvoeringsvorm bepaalt een koppelingsregel een of meer waarden op basis van een omzettingsfunctie. Een dergelijke omzettingsfunctie kan worden aangeroepen middels een daartoe geschikte aanroep. Een dergelijke functie kan bijvoorbeeld een aanroepbare 20 'Javascript'-functie zijn. Verdere mogelijkheden hiervoor zijn bijvoorbeeld een XSLT transformatie. Een voordeel hiervan is dat middels in de koppelingsdefinitie vast te leggen aanroepingen een grote vrijheid voor het bepalen van te renderen waarden mogelijk is.
25 In een verdere uitvoering wordt de koppelingsdefi nitie apart opgesteld van een element van de gebruikersinterface en is deze koppelbaar met een of meer gebrui-kersinterface-elementen. Een voordeel hiervan is dat een zogenoemde bibliotheek van koppelingsdefinities kan worden 30 opgesteld die kunnen worden hergebruikt in verschillende applicaties of gebruikersinterface-elementen. Hierdoor wordt het programmeerwerk verder verminderd.
Bij voorkeur omvat de koppelingsdefinitie voorts een wijze voor het opvragen van data. Een voordeel hiervan 35 is dat externe data kan worden aangeroepen op basis van definities in de koppelingsdefinitie.
6
In een verdere voorkeursuitvoeringsvorm volgens de onderhavige werkwijze wordt data opgevraagd gebaseerd op een actieve selectie van een verder element van een gebruikersinterface. Hiermee wordt de workflow van een ap-5 plicatie bepaald. Een voordeel hiervan is dat veel pro-grammeerwerk overbodig wordt omdat de workflow hiermee niet meer op basis van events behoeft te worden opgebouwd. Er behoeven geen eventaanroepingen meer te worden geprogrammeerd.
10 Bij voorkeur worden in een werkwijze volgens de onderhavige uitvinding veranderingen in de data middels een vooraf bepaald dataformaat verzonden aan een verzen-deenheid die vervolgens het signaal verzendt naar ten minste een andere cliënt voor een update van ten minste een 15 element van een gebruikersinterface op de andere cliënt.
Een voordeel hiervan is dat middels een werkwijze volgens de onderhavige uitvinding verschillende werkstations of clients in staat zijn om gegevens op een gewenste wijze fysiek weer te geven of te laten inzien door gebrui-20 kers daarvan. Door middel van een dergelijke uitvoeringsvorm kan de data in verschillende gebruikersinterfaces van verschillende stations synchroon worden gehouden.
In een verdere voorkeursuitvoeringsvorm wordt een registratie-element toegepast voor het bijhouden van wij-25 zigingen van data. Dit registratie-element ontvangt van de gebruikersinterface signaleringen met betrekking tot handelingen van een gebruiker waarna deze worden doorgegeven aan componenten met betrekking tot communicatie of het bijhouden van de dataverzameling. Hierbij kan gedacht wor-30 den aan programmatuur die de dataverzameling bijhoudt of onderhoudt.
Bij voorkeur omvat de werkwijze verder stappen voor het uitvoeren van het ongedaan maken van de bijgehouden wijzigingen. Daar waar het bijhouden van de wijzigin-35 gen in gegevens bij het uivoeren van handelingen voor het weergeven van een gebruikersinterface volgens de stand van de techniek een complexe hoeveelheid programmeerwerk zou 7 vereisen, kan bij een werkwijze volgens de onderhavige uitvinding middels een dergelijk registratie-element het ongedaan maken van handelingen op eenvoudige wijze worden geïmplementeerd. De opbouw van een dergelijke werkwijze en 5 het systeem maakt een dergelijk registratie-element op eenvoudige wijze uit te voeren.
Bij voorkeur omvat de werkwijze stappen voor het middels koppelingsregels uitvoeren van sleephandelingen (drag-drop) op basis waarvan informatieaanvraagstappen met 10 betrekking tot data die is onderworpen aan de handeling. Hierbij wordt gebruik gemaakt van de koppelingsregels waarbij op basis van informatieaanvragen een sleephande-ling kan worden geïmplementeerd. Een voordeel hiervan is dat op een locatie alle regels met betrekking tot data 15 kunnen worden ingesteld waarbij 'events' overbodig zijn.
Een verdere voorkeursuitvoeringsvorm volgens de onderhavige uitvinding omvat stappen voor het op basis van een actiedefinitie verzenden van een signaal voor het wijzigen van data in de dataverzameling, waarbij een actiere-20 gel een informatieaanvraag omvat voor het bepalen of een actie dient te worden uitgevoerd. Dergelijke actiedefini-ties zijn op analoge wijze opgebouwd als koppelingsdefini-ties. Een dergelijke functie kan eventueel evenzeer een functie zijn die ergens op een computernetwerk zoals het 25 internet aanroepbaar is. Met behulp van dergelijke actie-definities kan een gebruiker middels bijvoorbeeld een invoer middels bijvoorbeeld een toetsenbord en/of een muis informatie wijzigen waarna op basis daarvan de weergave op het beeldscherm wordt gewijzigd.
30 Bij voorkeur is een gebruikersinterface een grafi sche gebruikersinterface op een beeldscherm van een computer of werkstation. Andere gebruikersinterfaces kunnen evenzeer op basis van de onderhavige uitvinding worden gemanipuleerd.
35 Een verder aspect volgens de onderhavige uitvin ding betreft een inrichting voor het uitvoeren van een 8 werkwijze zoals in het voorgaande is omschreven omvattende: - een geheugen en een verwerkingseenheid voor het uitvoeren van de werkwijzestappen, en 5 - een weergaveinrichting voor het waarneembaar weergeven van de gebruikersinterface. Een dergelijke inrichting biedt voordelen als aan de hand van een werkwij ze zijn omschreven.
Een verder aspect van de onderhavige uitvinding 10 betreft een datadrager omvattende een computerprogramma voor het uitvoeren van een dergelijke werkwijze. Een verder aspect betreft voorts een computerprogrammaproduct voor het uitvoeren van een werkwijze volgens de onderhavige uitvinding.
15 Verdere voordelen, kenmerken en details van de on derhavige uitvinding zullen in het navolgende verder worden beschreven aan de hand van enkele voorkeursuitvoeringsvormen onder verwijzing naar de aangehechte figuren, waarbij: 20 - Fig. 1 een stroomschema is van een eerste voor keur suitvoerings vorm volgens de onderhavige uitvinding; - Fig. 2 een stroomschema is van een verdere voorkeursuitvoeringsvorm volgens de onderhavige uitvinding; - Fig. 3 een stroomschema is van een verdere voor-25 keursuitvoeringsvorm volgens de onderhavige uitvinding; - Fig. 4 een schematische weergave is van een verdere voorkeursuitvoeringsvorm volgens de onderhavige uitvinding.
In Fig. 1 is een schematische weergave getoond van 30 een voorkeursuitvoeringsvorm van een systeem voor het uitvoeren van een werkwijze volgens de onderhavige uitvinding. In Fig. 2 is een voorkeursuitvoeringsvorm getoond van een globale werkwijze voor het initiëren van een gebruikersinterface onder gebruikmaking van een werkwijze 35 volgens de onderhavige uitvinding. In Fig. 3 is een detail van de voorkeursuitvoeringsvorm van de werkwijze van Fig.
2 getoond; deze figuur toont stappen die worden uitgevoerd 9 in de stap 45 van Fig. 2. In deze tekst worden de termen gebruikersinterface-element, widget en listener in verschillende contexten gebruikt voor hetzelfde aspect van de onderhavige uitvinding.
5 Nadat een gebruikersinterface voor de eerste maal is gerenderd, dient de weergave van de gebruikersinterface te worden gewijzigd wanneer er wijzigingen in de gerender-de data voorkomen. De voorkeursuitvoeringsvorm van Fig. 4 verschaft hiertoe stappen.
10 Een eerste voorkeursuitvoeringsvorm volgens de on derhavige uitvinding betreft een systeem 1 voor het uitvoeren van een werkwijze voor het representeren van data in een gebruikersinterface en het renderen daarvan. Het systeem 1 is globaal opgebouwd uit een cliënt of werksta-15 tion 2, een server 3, een beeldscherm 4 en invoerinrich- tingen 5 zoals een muis en/of toetsenbord. De cliënt omvat een gegevensopslag 9 omvattende bijvoorbeeld tijdelijk opgeslagen data uit een dataopslag 19 van de server. Data die is opgeslagen in de tijdelijke opslag 9 wordt gemani-20 puleerd door middel van databasesoftware 8. Voorts worden wijzigingen in de data aan de databasesoftware toegevoerd door software 14.
Hierbij kan gedacht worden aan een e-mailprogramma dat data met betrekking tot e-mails ophaalt vanaf een ser-25 ver. Dergelijke toevoegingen van data wordt door middels van de veranderingen 29 toegevoerd aan de databaseprogrammatuur 8. Deze verwerkt ze op zodanige wijze dat ze kunnen worden opgeslagen in de tijdelijk opgeslagen data 9 middels invoer/uitvoer 30. De veranderingen worden vanaf de 30 databaseprogrammatuur tevens toegevoerd aan een widget 6 die met name de werkwijze volgens de onderhavige uitvinding uitvoert. Een dergelijke widget is een bepaalde hoeveelheid programmacode die zorgt voor het afbeelden van gegevens op een beeldscherm 4 volgens de onderhavige uit-35 vinding. De programmacode van de widget is bij voorkeur geïmplementeerd in zogenoemde klassen (classes). Bij het opstarten van een gebruikersinterface dient de widget voor 10 het opbouwen van de gebruiksinterface op basis van de data. Vervolgens dient de widget voor het weergeven van alle wijzigingen die in de tijdelijk opgeslagen data 9 voorkomen op het beeldscherm. Dergelijke wijzigingen kunnen bij-5 voorbeeld zijn het ontvangen van data, het invoeren van wijzigingen door een gebruiker van het werkstation en dergelijke.
Voor bijvoorbeeld het weergeven van de deelven-sters 11,12 en 13 van de grafische gebruikersinterface 10 10 op het beeldscherm 4 bestaat een aantal widget 6 voor elk venster. Deze weergave van de deelvensters 11,12, en 13 komt overeen met een veelgebruikte weergave van een e-mailprogramma waarbij in het linker verticale venster een mappenlijst wordt getoond, in het rechter bovenvenster 12 15 een lijst van e-mails in een van de mappen uit venster 11 en het rechterondervenster 13 de inhoud van een van de e-mails van het deelvenster 12. Dit is echter slechts een voorbeeld van een mogelijke weergave van een grafische gebruikersinterface in het algemeen en van een e-20 mailprogramma in het bijzonder. Er zijn vele andere varianten mogelijk.
Indien een gebruiker door middel van een invoerin-richting 5 middels de logisch weergegevens invoerlijn 21 een wijziging initieert die een wijziging op het beeld-25 scherm vereist, wordt dit toegevoerd naar de widget die wijzigingen uitvoert. Voorts zal de widget middels een doorverwijzing 22 de wijziging doorgeven aan het registra-tie-element 7 (action tracker). Deze action tracker 7 geeft de wijzigingen op zijn beurt door aan de database-30 programmatuur 8 waarna de juiste gegevens zullen worden opgeslagen in de tijdelijk opgeslagen data 9 middels een invoer/uitvoer 30. Zodat de widget logica de data kan renderen voor geschikte weergave van de data in de UI-elementen zal de databaseprogrammatuur 8 de gewenste data 35 terughalen uit de tijdelijke dataopslag en via kanaal 23 overbrengen aan de widget 6.
11
Voorts zal de action tracker 7 gegevens doorgeven aan een communicatieorgaan 15 die middels communicatie 31 via een API 18 de gegevens via communicatie 34 opslaat in een databaseopslag 19 op een server.
5 Voorts is de databaseprogrammatuur 8 in staat tot het doorgeven van de veranderingen via een communicatieorgaan 16 en een veranderingendoorgeefkanaal 35 naar een verzendeenheid 17 voor het doorgeven van veranderingen in het tijdelijke opslag geheugen 9 naar andere werkstations 10 zodat de gewijzigde gegevens die bijvoorbeeld oorspronkelijk zijn ingevoerd via het toetsenbord 5 kunnen worden getoond aan gebruikers van andere werkstations. De ingevoerde wijzigingen worden door de widgetprogrammatuur ge-renderd en doorgegeven via communicatiekanaal 20 naar het 15 beeldscherm.
Tijdens het initiëren van de grafische gebruikersinterface (Fig. 2,3) kan de widgetlogic een verzoek doen via kanaal 24 voor het vanaf de gegevensverzameling 19 op bijvoorbeeld een server laden van gegevens naar de 20 tijdelijke dataopslag 9.
De werkwijze van de widget volgens de onderhavige uitvinding zal nader worden verklaard aan de hand van het stroomschema van Fig. 2 en verder.
De werkwijze volgens de onderhavige uitvinding 25 start in stap 40. In stap 41 wordt een dataverzameling geselecteerd voor koppeling daarvan aan een element van de grafische gebruikersinterface (widget) die wordt weergegeven op het beeldscherm 4. Een veelheid van elementen van de grafische gebruikersinterface kan worden weergegeven op 30 het beeldscherm 4. De elementen kunnen zijn voorzien van een veelheid aan waarden, zoals bijvoorbeeld een hoeveelheid van verschillende namen van mappen. Voorts kunnen de elementen worden gekoppeld aan waarden als iconen zoals iconen voor mappen of andere grafische weergaven die rele-35 vant zijn voor het weer te geven element. Voorts kunnen elementen worden voorzien van weergave-attributen teneinde een wijze van weergave vast te stellen zoals bijvoorbeeld 12 het weergeven van tekst in een normale of in een vette weergave. Een verdere variant van weergaven die middels attributen kan worden vastgelegd is bijvoorbeeld het weergeven van een element als zijnde bijvoorbeeld geselecteerd 5 voor het uitvoeren van een handeling daarmee.
In stap 42 wordt een koppelingspunt in de data ingesteld als de basisnode voor het element van de gebruikersinterface. Stel dat een bestand met gebruikersgegevens voor een e-mailprogrmma wordt gebruikt als dataverzameling 10 voor de werkwijze. In een dergelijk geval kan de map 'inbox' worden ingesteld als basisnode voor een element van de gebruikersinterface (UI) die de lijst van e-mails weergeeft.
In stap 43 wordt vervolgens een dergelijk UI-15 element ingesteld als observator (listener, widget) voor deze basisnode. Vervolgens zal elke wijziging die de basisnode en zich daaronder bevindende gegevenselementen beïnvloedt worden opgemerkt door de observator. Hierbij zal onder verwijzing naar Fig. 1 de widgetprogrammatuur, die 20 een aantal afzonderlijke widgets kan belichamen, waarbinnen de UI-elementen worden bijgehouden alle wijzigingen 23 observeren.
In stap 44 wordt bepaald of het UI-element een UI-element is omvattende een veelheid van subelementen met 25 elk eigen afzonderlijke eigenschappen. Indien is bepaald dat een UI-element geen multi-node UI-element is, wordt vervolgd in stap 45 middels het uitvoeren van de werkwijze van Fig. 3.
Indien in stap 44 wordt bepaald dat een UI-element 30 een multi-node UI-element betreft, wordt de werkwijze vervolgd in stap 53. In stap 53 wordt een selectie-query uitgevoerd op basis van een koppelingsregel om daarmee een deel van de database te selecteren. In stap 54 wordt een eerste element van de geselecteerde data gekozen voor ge-35 bruik in stap 45 voor het bepalen van de waarde daarvan volgens de werkwijze van Fig. 3.
13
In stap 45 wordt middels een query de waarde van eigenschappen bepaald voor een UI-element of sub-UI-element. Details van de stappen die hiervoor benodigd zijn, zijn getoond in Fig. 3 die voor het doel van een 5 duidelijke beschrijving in het navolgende eerst zal worden beschreven.
In Fig. 3 wordt de werkwijze van stap 45 van Fig.
2 gestart in stap 60. In stap 61 worden de eerste gekoppelde eigenschappen geraadpleegd. Hiertoe wordt gebruik 10 gemaakt van koppelingsregels. Derhalve wordt in stap 62 de eerste van eventueel beschikbare koppelingsregels geraadpleegd. In deze koppelingsregels zijn selectiequery's en omzettingsregels voor het verschaffen van een waarde die dient te worden toegewezen aan een eigenschap van een UI-15 element of sub-UI-element beschikbaar.
De koppelingsregels zijn zoals reeds is genoemd van het type als... dan... Op basis van een query wordt een selectie gemaakt waarna een waarde wordt bepaald voor de selectie indien er een geldige selectie is gemaakt.
20 Voor het bepalen van de waarde kan worden volstaan met een standaardbepaling (defaultmethod). Er kan eveneens geschikte programmacode beschikbaar zijn om te worden aangeroepen teneinde de waarde te bepalen. In stap 63 wordt een selectiequery uitgevoerd voor het bepalen van bijvoorbeeld 25 een UI-eigenschap zoals een naam (caption) of een grafisch symbool (icon).
Vervolgens wordt in stap 64 bepaald of de query geldige resultaten oplevert. Indien in stap 64 wordt bepaald dat er geen geldig resultaat wordt verkregen, wordt 30 in stap 65 de volgende node geraadpleegd en wordt vervolgd in stap 63 met het opnieuw uitvoeren van een selectiequery.
Indien in stap 64 is bepaald dat de query een geldig resultaat oplevert, wordt in stap 66 het resultaat om-35 gezet naar een waarde, zoals in het voorgaande is aangeduid. In stap 67 wordt vervolgens de waarde toegekend aan de eigenschap. In stap 68 wordt vervolgens bepaald of een 14 koppelingsregel voor een volgende eigenschap bestaat. Indien dit het geval is, wordt in stap 69 de volgende eigenschap geraadpleegd teneinde in stap 62 voor het op basis daarvan raadplegen van de eerste koppelingsregel daarvoor.
5 Indien in stap 68 is bepaald dat er geen koppelingsregel voor een volgende eigenschap bestaat, wordt de werkwijze van Fig. 3 beëindigd in stap 70 en wordt vervolgd in stap 46 van Fig. 2.
De werkwijze vervolgt zoals genoemd in stap 46 van 10 Fig. 2. In deze stap 46 wordt hernieuwd bepaald of het UI-element een multinode-element is. Een voorbeeld van een node met een niet multinode element is bijvoorbeeld een schuifbalk (slider). Een voorbeeld van een multinode-UI-element is een element waarin een boomstructuur kan wor-15 den weergegeven, zoals een map in een emailprogramma. Indien in stap 46 wordt bepaald dat het ül-element geen multinode-element is, zijn de gegevens voor dit UI-element compleet en wordt het UI-element in stap 55 gerenderd.
Indien in stap 46 is bepaald dat het UI-element 20 een multinode-element is, dienen verdere nodes te worden onderzocht en vervolgt de werkwijze in stap 47. In stap 47 wordt bepaald of het onderhavige UI-element een visuele representatie van een boomstructuur dient weer te kunnen geven. Indien wordt bepaald dat dit niet het geval is, 25 wordt de werkwijze vervolgd in stap 49, waarin wordt bepaald of er een volgende node bestaat. Indien in stap 49 wordt bepaald dat er een volgende node bestaat, wordt in stap 50 de volgende naastliggende node (sibbling node) geraadpleegd en wordt vervolgd in stap 45.
30 Indien in stap 49 wordt bepaald dat er geen vol gende node bestaat, wordt in stap 51 bepaald of het UI-element een boomstructuur dient weer te kunnen geven en er een volgende bovenliggende node (ouder) aanwezig is op een hoger niveau van de datastructuur die voldoet aan de door-35 loopregel van stap 53. Hiermee wordt op recursieve wijze een niveau terug gegaan en de werkwijze vervolgd. Indien in stap 51 wordt bepaald dat er geen volgende node is met 15 een hoger niveau, wordt de werkwijze vervolgd in stap 55 met het renderen van het UI-element. Indien in stap 51 de volgende ouder met een hoger niveau is gevonden, wordt in stap 52 vervolgd met het raadplegen van deze volgende ou-5 der en wordt vervolgd met het bepalen van de waarde voor weergave van het UI-element in stap 45.
Terugkerend naar stap 47 met als resultaat dat er een visuele representatie van een boomstructuur in dit UI-element dient te kunnen weergegeven, wordt vervolgd in 10 stap 48 met de bepaling of deze node een onderliggende node (child) heeft. Indien in stap 48 wordt bepaald dat dit niet het geval is, wordt vervolgd in stap 49 voor het bepalen of er nog een naastliggende node is. Op deze wijze wordt telkens steeds eerst in de diepte van de boomstruc-15 tuur onderzocht of er waarden voor weergave in de gebruikersinterface dienen te worden bepaald en vervolgens in laterale en hogere richting van de boom. Indien in stap 48 is bepaald dat de node een childnode bezit, wordt de werk-wij ze vervolgd in stap 54 middels het raadplegen van deze 20 node voor de bepaling van de waarden van de eigenschappen van het UI-element in stap 45. Nadat op deze wijze voor alle nodes van de UI-elementen van de gebruikersinterface een weergaverendering is uitgevoerd in stap 55, eindigt de werkwijze in stap 60.
25 In Fig. 4 is op schematische wijze een voorkeurs uitvoeringsvorm van een werkwijze volgens de onderhavige uitvinding getoond. Wanneer een gebruikersinterface op bijvoorbeeld een computerbeeldscherm is weergegeven en volgens de onderhavige uitvinding derhalve is gevuld met 30 de juiste gegevens uit een onderliggende gegevensverzameling, dan dienen wijzigingen in de onderliggende data of wijzigingen die door een gebruiker in een gebruikersinterface worden aangebracht op een juiste wijze te worden weergegeven na de wijziging. Een voorkeurswerkwijze hier-35 voor is getoond in Fig. 4. De werkwijze start in stap 71. In stap 72 wordt een deel van de data gewijzigd door een proces buiten de widget van de gebruikersinterface zoals 16 bijvoorbeeld door middel van een proces 14 (Fig. 1). De widget 6 is door middel van de koppelingsregels gedefinieerd als een observator (listener) voor de data die betrekking heeft op deze widget. Een koppeling tussen de 5 listener en de basisnode is aangemeld bij de databaseprogrammatuur 8.
In stap 73 wordt gebaseerd op de veranderde data een lijst van listeners opgevraagd. In stap 74 wordt een eerste listener benaderd. Vervolgens wordt in stap 75 een 10 listener welke in feite een widget 6 is die dient voor het renderen van een element van de gebruikersinterface, geïnformeerd over de wijziging. Praktisch gezien, wordt hierdoor de grafische weergave van het UI-element gewijzigd op een wijze die overeenkomt met de wijzigingen in de onderis liggende data. Vervolgens wordt in stap 76 de weergave ge-renderd pp basis van de wijziging. Vervolgens wórdt in stap 77 bepaald of er nog een volgende listener is die dient te worden aangeroepen op basis van de wijziging die is voorgekomen in stap 72. Indien dit het geval is, wordt 20 in stap 78 de volgende listener aangroepen en wordt deze in stap 75 geïnformeerd over de wijziging van de data en de derhalve noodzakelijke wijziging van ook de grafische weergave van het UI-element waarop deze betrekking heeft. Na het vervolgen van stap 76, en indien in stap 77 wordt 25 bepaald dat er geen volgende element van de grafische gebruikersinterface, ofwel widget of listener is waarvan de weergave dient te worden gewijzigd op basis van datawijzi-ging van stap 72 eindigt de werkwijze in stap 79.
Volgens de hierboven beschreven uitvoeringsvormen 30 worden belangrijke werkwijzestappen uitgevoerd door de widgetcomponenten 6. Deze componenten renderen op basis van aangevoerde informatie een nieuwe weergave van elementen van een gebruikersinterface. Hierdoor kan op efficiënte wijze een definitie van grafische gebruikersinterface 35 worden gerealiseerd. Veranderingen worden op een door gebeurtenissen geïnitieerde wijze gerenderd tot een geschikte weergave zonder dat hiervoor aparte gebruikersinterfa- 17 cedefinities dienen te worden gecreëerd. Hierdoor zal het systeem gestructureerder kunnen functioneren en kunnen nieuwe elementen van een grafische gebruikersinterface inclusief koppelingen daarmee naar onderliggende datastruc-5 turen op voordelige wijze worden vervaardigd.
Wijzigingen in de onderliggende data die niet door een gebruiker worden geïnitieerd, derhalve van buiten komende datawijzigingen, worden door middel van een koppeling van de widget 6 met de onderliggende databaseprogram-10 matuur zodanig gevolgd dat op basis van de verandering de widget een nieuwe rendering uitvoert op basis van de juiste (nieuwe of gewijzigde) gegevens.
Wijzigingen die in de data worden aangebracht door de gebruiker van het systeem, worden door de action trac-15 ker 7 gevoerd en vervolgens aangepast in de tijdelijk opgeslagen data 9 of in een gegevensverzameling waar deze tijdelijke opslag betrekking op heeft. Een voordeel hiervan is dat op eenvoudige wijze is te implementeren dat wijzigingen ongedaan kunnen worden gemaakt.
20 Een voordeel van de onderhavige uitvinding dat de gebruikersinterface rechtstreeks is gekoppeld met de onderliggende data is dat daar waar een programmeur zich volgens de stand van de techniek bezig diende te houden met de vraag hoe de interface dient te veranderen als de 25 data veranderde, deze nu slechts rekenschap behoeft te houden met welke data wordt weergegeven door het definiëren van de koppelingsdefinitie en de koppelingsregels. De widget is vervolgens in staat op basis van de definitie automatisch een juiste rendering te genereren. Hierdoor 30 kan het vraagstuk met betrekking tot hoe data binnen een UI dient te worden geladen, vervallen. Een dergelijke implementatie volgens de onderhavige uitvinding heeft als voordeel dat een ontwerper tijdens het ontwerpen van een applicatie gebruik kan maken van een scheiding tussen da-35 ta, projectie en logica (dit is bekend als het zogenoemde model-view-controller-principe).
18
Afhankelijk van de praktische implementatie in een uiteindelijk systeem, kan het fysieke niveau van het renderen van de gebruikersinterface verschillen van een rendering naar een zeer laag fysiek niveau van weergave van 5 weergave tot rendering naar een grafische engine die de gegevens verder verwerkt voor weergave op een beeldscherm.
In het voorgaande is de uitvinding beschreven aan de hand van enkele praktische voorkeursuitvoeringsvormen. Deze voorkeursuitvoeringsvormen zijn niet beperkend voor 10 de beschermingsomvang van de onderhavige aanvrage. De gevraagde rechten worden bepaald door de aangehechte conclusies .

Claims (19)

1. Werkwijze voor het representeren van data in een gebruikersinterface, omvattende stappen voor: 5. het bepalen van ten minste een dataverzameling met een boomstructuur voor koppeling daarmee met ten minste een element van de gebruikersinterface, - het selecteren van een node uit de boom als ba-sisnode voor een koppeling, 10. het leggen van een koppeling met het element van de gebruikersinterface middels een koppelingsdefinitie omvattende koppelingsregels, - het renderen van ten minste een deel van het element van de gebruikersinterface op basis van de koppe- 15 lingsdefinitie.
2. Werkwijze volgens conclusie 1 waarbij de koppelingsregels geschikt zijn voor het selecteren van een deel van de data van de dataverzameling onder de basisnode en 20 het op basis van de selectie geven van een waarde aan een eigenschap van ten minste een deel van de gebruikersinterface .
3. Werkwijze volgens conclusie 1 of 2 waarbij een 25 koppelingsregel wordt gebruikt voor het middels een informatieaanvraag (query) selecteren van data op basis van (sub-)elementen binnen de elementen van de grafische gebruikersinterface waarbij de eigenschappen van de (sub- )elementen zijn gedefinieerd middels andere koppelingsre- 30 gels in de koppelingsdefinitie.
4. Werkwijze volgens een of meer van de voorgaande conclusies waarbij een koppelingsregel wordt gebruikt voor het specificeren hoe data wordt ingevoegd in een data- 35 element. f10310 00“
5. Werkwijze volgens een of meer van de voorgaande conclusies waarbij data wordt gekoppeld aan een gebrui-kersinterface-element op een positie die wordt gedefinieerd ten opzichte van de ingestelde basisnode. 5
6. Werkwijze volgens conclusie 3 waarbij een deel van de data wordt gedefinieerd middels een geselecteerde node die is gekoppeld aan de gebruikersinterface.
7. Werkwijze volgens een of meer van de voorgaande conclusies waarin in een koppélingsregel een of meer waar- . den bepaald worden op basis van een omzettingsfunctie.
8. Werkwijze volgens een of meer van de voorgaande 15 conclusies waarbij een koppelingsdefinitie apart wordt opgesteld van een element van de gebruikersinterface en kop-pelbaar is met een of meer gebruikersinterface-elementen.
9. Werkwijze volgens een of meer van de voorgaande 20 conclusies waarbij de koppelingsdefinitie tevens een wijze voor het opvragen van data omvat.
10. Werkwijze volgens een of meer van de voorgaande conclusies 8-9 waarbij de data wordt opgevraagd geba- 25 seerd op een actieve selectie van een ander gebruikersin-terface-element.
11. Werkwijze volgens een of meer van de voorgaande conclusies waarbij veranderingen in de data middels een 30 vooraf bepaald dataformaat wordt verzonden aan een verzen-deenheid die vervolgens het signaal verzendt naar ten minste een andere cliënt voor een update van ten minste een element van een gebruikersinterface op de andere cliënt.
12. Werkwijze volgens een of meer van de voorgaan de conclusies waarbij een registratie-element wordt toegepast voor het bijhouden van wijzigingen van de data.
13. Werkwijze volgens conclusie 12 omvattende stappen voor het uitvoeren van ongedaanmaakhandelingen op basis van de bijgehouden wijzigingen. 5
14. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het middels regels uitvoeren van sleephandelingen (drag-drop) op basis van informatieaanvraagstappen met betrekking tot data die is 10 onderworpen aan de handeling.
15. Werkwijze volgens een of meer van de voorgaande conclusies omvattende stappen voor het op basis van een actiedefinitie verzenden van een signaal voor het wijzigen 15 van data in de dataverzameling, waarbij een actieregel een informatieaanvraag kan omvatten voor het bepalen of een actie dient te worden uitgevoerd.
16. Werkwijze volgens een of meer van de voorgaan-20 de conclusies waarbij de gebruikersinterface een grafische gebruikers interface op een beeldscherm van een computer of werkstation is.
17. Inrichting voor het uitvoeren van een werkwij-25 ze volgens en of meer van de voorgaande conclusies, omvattende : - een geheugen en een verwerkingseenheid voor het uitvoeren van de werkwijzestappen, en - een weergaveinrichting voor het waarneembaar 30 weergeven van de gebruikersinterface.
18. Datadrager omvattende een computerprogramma voor het uitvoeren van werkwijze volgens en of meer van de conclusies 1-15. 35
19. Computerprogrammaproduct voor het uitvoeren van een werkwijze volgens en of meer van de conclusies 1- 15.
NL1031006A 2006-01-25 2006-01-25 Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface. NL1031006C2 (nl)

Priority Applications (4)

Application Number Priority Date Filing Date Title
NL1031006A NL1031006C2 (nl) 2006-01-25 2006-01-25 Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface.
EP07709144A EP1982258A1 (en) 2006-01-25 2007-01-25 Method, device, data carrier and computer program product for representing data in a user interface
US12/162,248 US20090307625A1 (en) 2006-01-25 2007-01-25 Method, device, data carrier and computer program product for representing data in a user interface
PCT/NL2007/000025 WO2007086733A1 (en) 2006-01-25 2007-01-25 Method, device, data carrier and computer program product for representing data in a user interface

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL1031006A NL1031006C2 (nl) 2006-01-25 2006-01-25 Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface.
NL1031006 2006-01-25

Publications (1)

Publication Number Publication Date
NL1031006C2 true NL1031006C2 (nl) 2007-07-26

Family

ID=36790841

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1031006A NL1031006C2 (nl) 2006-01-25 2006-01-25 Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface.

Country Status (4)

Country Link
US (1) US20090307625A1 (nl)
EP (1) EP1982258A1 (nl)
NL (1) NL1031006C2 (nl)
WO (1) WO2007086733A1 (nl)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522201B2 (en) * 2010-11-09 2013-08-27 Qualcomm Incorporated Methods and apparatus for sub-asset modification
CN104145271B (zh) 2012-03-02 2017-08-15 国际商业机器公司 数据显示设备、数据显示方法
US9483240B1 (en) * 2015-05-27 2016-11-01 Google Inc. Data binding dependency analysis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496202B1 (en) * 1997-06-30 2002-12-17 Sun Microsystems, Inc. Method and apparatus for generating a graphical user interface

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314415B1 (en) * 1998-11-04 2001-11-06 Cch Incorporated Automated forms publishing system and method using a rule-based expert system to dynamically generate a graphical user interface
US20020059345A1 (en) * 2000-09-12 2002-05-16 Wang Wayne W. Method for generating transform rules for web-based markup languages
US7386835B1 (en) * 2002-03-22 2008-06-10 Emc Corporation Technique for graphical user interface modification
US20050289450A1 (en) * 2004-06-23 2005-12-29 Microsoft Corporation User interface virtualization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496202B1 (en) * 1997-06-30 2002-12-17 Sun Microsystems, Inc. Method and apparatus for generating a graphical user interface

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CRANE D ET AL: "Ajax in Action, Chapter 4", INTERNET ARTICLE, October 2005 (2005-10-01), pages 119 - 158, XP002403402, Retrieved from the Internet <URL:http://www.manning-source.com/books/crane/crane_ch04.pdf> [retrieved on 20061017] *
KRASNER G E ET AL: "A COOKBOOK FOR USING THE MODEL-VIEW-CONTROLLER USER INTERFACE PARADIGM IN SMALLTALK-80", JOOP, SIGS PUBLICATIONS, NEW YORK, NY, US, vol. 1, no. 3, August 1988 (1988-08-01), pages 26 - 49, XP008041541, ISSN: 1097-1408 *
SUNDSTED T: "Observer and Observable", INTERNET ARTICLE, October 1996 (1996-10-01), pages 1 - 6, XP002403401, Retrieved from the Internet <URL:http://www.javaworld.com/javaworld/jw-10-1996/jw-10-howto.html> [retrieved on 20060821] *

Also Published As

Publication number Publication date
EP1982258A1 (en) 2008-10-22
US20090307625A1 (en) 2009-12-10
WO2007086733A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
US11023834B2 (en) Collaborative design systems, apparatuses, and methods
RU2421797C2 (ru) Указание, задание и обнаружение параметров документов электронных таблиц
US10296172B2 (en) User interface controls for specifying data hierarchies
EP3550416A1 (en) Graphical user interface system
US8578277B2 (en) Integrating charts in documents
US8938684B2 (en) Modification free cutting of business application user interfaces
US7603381B2 (en) Contextual action publishing
US8793598B2 (en) Cross-browser web dialog platform
US20070130162A1 (en) Methods and apparatus for combining properties and methods from a plurality of different data sources
US20050114479A1 (en) System and method for hierarchically representing configuration items
CN102301346A (zh) 文件夹管理装置、文件夹管理方法以及文件夹管理用程序
US20170185612A1 (en) Dynamically designing web pages
US20070136675A1 (en) Methods and apparatus for updating a plurality of data fields in an elecronic form
AU2011305936B2 (en) Web page behavior enhancement controls
US7721189B2 (en) System for and method of providing overview of a worksheet in an electronic report
US7996758B2 (en) Methods and apparatus for storing data associated with an electronic form
NL1031006C2 (nl) Werkwijze, inrichting, datadrager en computerprogrammaproduct voor het representeren van data in een gebruikersinterface.
WO2007056656A2 (en) Methods and apparatus for processing business objects, electronic forms, and workflows
WO2005055491A2 (en) System and method for hierarchically representing configuration items
US8924420B2 (en) Creating logic using pre-built controls
JPH10171755A (ja) 業務システム
US20070136367A1 (en) Methods and apparatus for dynamically modifying a business object definition

Legal Events

Date Code Title Description
PD2B A search report has been drawn up
SD Assignments of patents

Effective date: 20120209

V1 Lapsed because of non-payment of the annual fee

Effective date: 20140801