NO327715B1 - Forenklet representasjonsbilde av brukergrensesnitt-elementer - Google Patents

Forenklet representasjonsbilde av brukergrensesnitt-elementer Download PDF

Info

Publication number
NO327715B1
NO327715B1 NO20031008A NO20031008A NO327715B1 NO 327715 B1 NO327715 B1 NO 327715B1 NO 20031008 A NO20031008 A NO 20031008A NO 20031008 A NO20031008 A NO 20031008A NO 327715 B1 NO327715 B1 NO 327715B1
Authority
NO
Norway
Prior art keywords
node
user interface
interface element
nodes
selectively
Prior art date
Application number
NO20031008A
Other languages
English (en)
Other versions
NO20031008L (no
NO20031008D0 (no
Inventor
Peter Francis Ostertag
Mark James Finocchio
Michael Edward Dulac Winser
Benjamin Franklin Wang Jen-Song Carter
Nicholas M Kramer
Samuel Watkins Bent
Namita Gupta
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of NO20031008D0 publication Critical patent/NO20031008D0/no
Publication of NO20031008L publication Critical patent/NO20031008L/no
Publication of NO327715B1 publication Critical patent/NO327715B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Digital Computer Display Output (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

TEKNISK OMRÅDE
Det tekniske område angår intern representasjon av brukergrensesnittelementer.
BAKGRUNN FOR OPPFINNELSEN
Med den raske utbredelse av datamaskiner, har det kommet mange inn-ovasjoner i forbindelse med brukerprogramgrensesnitt. Det er f .eks. nå tilgjengelig mange verktøy ved hjelp av hvilke programmerere kan lage og manipulere brukergrensesnitt. Brukergrensesnittelementer kan nå videre anbringes i dokumenter, slik som nettsider eller ordbehandlingsdokumenter.
Brukergrensesnittelementer kan innta mange former: redigeringsaktiviteter, listeaktiviteter, rullefelt, plukklister, trykktaster o.l. Selv om brukergrensesnittelementet for brukeren kan synes som et eneste, sammensatt dataelement, kan det i virkeligheten i datamaskinen være representert som et antall separate dataele-menter eller delelementer som er blitt kombinert med hverandre. Hvert av disse delelementene kan videre selv være sammensatt av andre delelementer. På denne måten kan brukergrensesnittelementene tjene som byggeblokker for å bygge andre mer komplekse brukergrensesnittelementer. En slik løsning er nyttig fordi den programvare som styrer brukergrensesnittet (f.eks. rammen for brukergrensesnittet) kan gjenbruke definisjonene av visse vanlige elementer ved assemble-ring av disse til sammensatte elementer.
Den kompleksitet som innføres ved å representere brukergrensesnittelementer som sammensatte brukergrensesnittelementer, kan imidlertid være prob-lematisk. Nye eller skjødesløse programmerere kan kanskje ikke ønske å gjøre seg kjent med hvordan et sammensatt brukergrensesnitt er assemblert, eller en-dog at det sammensatte brukergrensesnitt i det hele tatt er et sammensatt brukergrensesnitt. Slike programmerere kan i stedet unngå slik kompleksitet når det gjelder å håndtere de sammensatte brukergrensesnittelementer. Selv en erfaren programmerer kan likevel ønske å unngå å befatte seg med slik kompleksitet. Det er således et behov for på en eller annen måte å forenkle representasjoner av sammensatte brukergrensesnittelementer.
Tidligere kjent teknikk fremlegges i patentdokumentet US-5600778A som beskriver et system og en fremgangsmåte for å modifisere ressurser brukt av et dataprogram for å få grafiske brukergrensesnittobjekter, der metoden benytter blant annet hierarkisk representasjon av brukergrensesnittelementer.
OPPSUMMERING AV OPPFINNELSEN
Som beskrevet her, kan en forenklet oversikt over en representasjon av ett eller flere brukergrensesnittelementer tilveiebringes. For eksempel kan noen noder eller knutepunkter som representerer brukergrensesnittelementer i en hierarkisk representasjon, vises selektivt. Slike noder kan eksponeres under visse omstendigheter, og ikke eksponeres under visse andre omstendigheter. I dette eksemplet kan en forenklet representativ skisse (f.eks. ikke å eksponere de selektivt eksponerbare noder) tilveiebringes.
Den foretrukne utførelsesformen er en datamaskinutført fremgangsmåte for å forenkle en visning til en hierarkisk representasjon av et sammensatt brukergrensesnittelement. Fremgangsmåten omfatter å spesifisere i et formateringsdokument eller å motta gjennom et program en definisjon av en hierarkisk representasjon av et sammensatt brukergrensesnittelement hvor definisjonen omfatter en angivelse av et antall noder som representerer del-elementer av det sammensatte brukergrensesnittelementet, hierarkiske sammenhenger mellom antallet av nodene og en angivelse at minst én node av antallet av noder er en selektivt eksponerbar node idet en selektivt eksponerbar node er en node, som ikke er eksponert i en forenklet visning til den hierarkiske representasjon til det sammensatte brukergrensesnittelement. Fremgangsmåten omfatter videre å opprette en forekomst av det sammensatte brukergrensesnittelement ved å kalle opp definisjonen av det sammensatte brukergrensesnittelement, og å tilveiebringe en forenklet visning av den hierarkiske representasjon av det sammensatte brukergrensesnittelement som eksponerer alle noder av antallet av nodene og deres hierarkiske sammenhenger, unntatt nodene angitt som selektivt eksponerbare noder, som ikke er eksponert.
Ifølge en utførelsesform kan, ved fremskaffelse av brukergrensesnitt-tjenester, forskjellige operasjoner utføres på et forenklet bilde av en representasjon på brukergrensesnittet. Under utførelse av operasjoner kan f.eks. selektivt eksponerbare noder skjules. En slik løsning kan være nyttig for en programmerer som ikke ønsker å bli kjent med detaljene ved representasjonen.
Flere brukergrensesnittelementer kan f.eks. være sammenstilt til en eneste sammensatt enhet på hvilken operasjoner kan utføres. At den sammensatte enhet består av flere brukergrensesnittelementer betyr at de kan være transparente på en forenklet oversikt over brukergrensesnittelementenes representasjon. Et program kan således undersøke og manipulere representasjonen uten hensyn til de ueksponerte noder. En programmerer kan følgelig skrive enklere kode eller nett-spor ("markup"). Programmereren behøver heller ikke å være fullstendig kjent med den underliggende struktur som kan inneholde mer enn én kode for den sammensatte enhet.
En brukergrensesnitt-tjeneste som fremskaffer et forenklet bilde, kan således utgjøre et kraftig verktøy ved hjelp av hvilket gjenbruk av programvare blir oppmuntret, og ukompliserte brukere kan veksel virke med brukergrensesnittelementene på et grunnleggende nivå.
For øvrig defineres oppfinnelsen ved de vedføyde patentkrav.
Ytterligere trekk og fordeler vil fremgå tydelig av den følgende detaljerte beskrivelse av illustrerte utførelsesformer, som fortsetter under henvisning til de vedføyde tegninger.
KORT BESKRIVELSE AV TEGNINGENE
Fig. 1 er en skisse av et utførelseseksempel for et brukergrensesnittelement som har en forenklet utførelsesform,
fig. 2 er en skisse av et forklarende, forenklet bilde av brukergrensesnittelementet som er representert på fig. 1,
fig. 3 er en skisse over en representasjon av et annet eksempel på et brukergrensesnittelement som har en forenklet utførelsesform,
fig. 4 er en skisse over et eksempel på en forenklet utførelsesform av brukergrensesnittelementet som er representert på fig. 3,
fig. 5 er et flytskjema over et eksempel på en fremgangsmåte for å implementere en forenklet visning av en representasjon av et brukergrensesnittelement,
fig. 6 er et flytskjema over et eksempel på en fremgangsmåte for å behandle en definisjon av et brukergrensesnittelement som har en representasjon med et forenklet bilde,
fig. 7 er et flytskjema over et eksempel på en fremgangsmåte for å påkalle en definisjon av et brukergrensesnittelement som har en forenklet visning, slik som det som er behandlet på fig. 6,
fig. 8 er et flytskjema over et eksempel på en fremgangsmåte for å utføre en operasjon på en hierarkisk representasjon av et brukergrensesnittelement, slik som det som er frembrakt på fig. 7,
fig. 9 er et skjermbilde av et eksempel på et brukergrensesnittelement som kalles en kombinasjonsaktivitet,
fig. 10A er en skisse over et eksempel på en hierarkisk representasjon av en kombinasjonsaktivitet, slik som den som er vist på fig. 9,
fig. 10B er en skisse over et eksempel på en hierarkisk representasjon av en kombinasjonsaktivitet i likhet med den på fig. 10, og som innbefatter eksempler på innkapslingsgrenser,
fig. 11 er en skisse av et eksempel på et forenklet bilde av en hierarkisk representasjon av en kombinasjonseffekt, slik som den som er vist på fig. 10,
fig. 12 er et flytskjema over et eksempel på en fremgangsmåte for å frem-bringe den hierarkiske representasjon av et brukergrensesnittelement med selektivt eksponerbare noder,
fig. 13 er et eksempel på en nettspordefinisjon for en kombinasjonsaktivitet som innbefatter å indikere minst ett element som selektivt kan eksponeres,
fig. 14A er et eksempel på en programdefinisjon for en kombinasjonsaktivitet som innbefatter å indikere minst ett element som selektivt eksponerbart,
fig. 14B er fortsettelsen av eksemplet med markeringsdefinisjonen på fig. 14A,
fig. 15 er et eksempel på en markeringspåkalling i en kombinasjonsaktivitet, slik som den som er definert på fig. 13 eller 14A og B,
fig. 16 er et eksempel på en programoppkaliing i en kombinasjonsaktivitet, slik som den som er definert på fig. 13 eller 14A og B,
fig. 17 er et flytskjema over et eksempel på en fremgangsmåte for å utføre en operasjon ved å benytte den forenklede skissen av en representasjon av et brukergrensesnittelement,
fig. 18 er en skisse av et fullstendig eksempel på en hierarkisk representasjon av en kombinasjonsaktivitet, slik som den på fig. 9, med passende noder ut-
pekt som ueksponerte på den forenklede skissen, etter å ha utført en operasjon via den forenklede skissen,
fig. 19 er en illustrasjon av et eksempel på en forenklet skisse som svarer til representasjonen på fig. 18,
fig. 20A er en illustrasjon av en alternativ representasjon av selektivt eksponerbare brukernoder for et brukergrensesnittelement,
fig. 20B er en illustrasjon av en forenklet skisse som svarer til den representasjon som er vist på fig. 20A,
fig. 21 er et skjermbilde av en listeblokk på et brukergrensesnittelement som gjør bruk av et gjentakelsestrekk,
fig. 22 er en illustrasjon av et eksempel på en hierarkisk representasjon av et brukergrensesnittelement som innbefatter en gjentakelsesanordning,
fig. 23 er en skisse av et eksempel på et forenklet representasjonsbilde svarende til fig. 22,
fig. 24 er et flytskjema over et eksempel på en fremgangsmåte for å frem-bringe en hierarkisk representasjon av et brukergrensesnittelement innbefattende en gjentakelsesanordning, slik som den på fig. 22,
fig. 25 er et eksempel på en markeringsoppkalling av et gjentakelsestrekk utpekt som selektivt eksponerbart,
fig. 26 er et eksempel på en programoppkalling av et gjentakelsestrekk utpekt som selektivt eksponerbart,
fig. 27 er et annet eksempel på en markeringsoppkalling av et gjentakelsestrekk utpekt som selektivt eksponerbart,
fig. 28 er et eksempel på en markeringsdefinisjon for en listeblokk, slik som den på fig. 21, uten å benytte gjentakelsestrekket.
DETALJERT BESKRIVELSE AV OPPFINNELSEN
Oversikt
De forskjellige teknologier som beskrives her er nyttige til å skape, presen-tere og manipulere brukergrensesnittelementer. Brukergrensesnittelementer kan ha mange former, slik som grafiske trykktaster, redigeringsbokser, rullefelter, plukklister, rullegardinmenyer, ACTIVEX-styringer, bilder og lignende. Brukergrensesnittelementer kan opptre som en del av et program (f.eks. for å styre pro-grammets funksjonalitet) eller i et dokument. Et forenklet bilde av den interne representasjon av slike brukergrensesnittelementer kan gjøre programmering av brukergrensesnittelementer enklere. En tilfeldig eller usofistikert programmerer kan f.eks. skrive et program som vekselvirker med det forenklede bilde uten å måtte gjøre seg kjent med visse kompleksiteten En mer sofistikert programmerer kan også ønske å bli skjermet fra slike kompleksiteter for å unngå mulige pro-grammeringsfeil.
Om ønsket kan de teknologier som beskrives her (f.eks. det forenklede bilde) fremskaffes som en del av en brukergrensesnitt-tjeneste. Programmer som vekselvirker med tjenesten, kan dermed trekke fordelen av egenskapene etter ønske.
I visse utførelsesformer kan et brukergrensesnittelement defineres til å ha en hierarkisk representasjon med et forenklet bilde. En slik definisjon kan påkalles for å skape den hierarkiske representasjon med det forenklede bilde. Deretter kan en operasjon utføres på den hierarkiske representasjon. En slik operasjon kan utføres på enten et fullstendig eller forenklet bilde av den hierarkiske representasjon.
Hvis et brukergrensesnittelement er et sammensatt brukergrensesnittelement som omfatter flere brukergrensesnittelementer, kan en hovednode (f.eks. en foreldrenode) eksponeres, og de andre nodene i det sammensatte brukergrensesnittelement kan defineres som selektivt eksponerbare. Når de er ueksponert viser bildet av representasjonen hovednoden, men ikke de andre selektivt eksponerbare noder. En node kan således eksponeres for det sammensatte brukergrensesnittelement i stedet for et antall noder.
Det fullstendige bilde av en representasjon av et sammensatt brukergrensesnittelement kan være forholdsvis komplekst ved at det kan være et antall noder i den hierarkiske representasjon som representerer brukergrensesnittelementet. En programmerer som ønsker å manipulere det fullstendige bilde, vil måtte gjøre seg kjent med de forskjellige noder og deres hierarkiske relasjoner. Som beskrevet her, kan et program i stedet utføre operasjoner ved å benytte det forenklede bilde.
På det forenklede bilde kan ueksponerte noder ignoreres under utførelse av operasjoner på en node (f.eks. en foreldre- eller avkom-node i et hierarki). Når det tilføyes avkom til en node, kan f.eks. ueksponerte, mellomliggende noder ignoreres eller utelates. En anmodning om å tilføye avkom til en node på det forenklede bilde av den hierarkiske representasjon av brukergrensesnittet, kan således i virkeligheten resultere i en tilføyelse av avkommet til en passende avkomsnode (som f.eks. representerer et element i det sammensatte brukergrensesnittelement) til noden. En slik fremgangsmåte er nyttig fordi tilføyelse av avkom på det forenklede bilde ikke krever kjennskap til kompleksitetene til de mange noder som utgjør brukergrensesnittelementet og deres innbyrdes relasjoner.
En listeboks kan f.eks. representeres som et antall noder i en hierarkisk relasjon, og en av nodene kan utpekes som den spesielle node til å motta viste valg for listeboksen som avkomsnoder. En programmerer kan imidlertid ønske å ikke bli kjent med slike kompleksiteten
Ved å bruke det forenklede bilde, kan en slik operasjon lett utføres ved å tilføye de ytterligere brukervalg som avkom av hovednoden til brukergrensesnitt-elementet (f.eks. via det forenklede bilde). På det forenklede bilde blir anmodningen om å tilføye avkom til hovednoden implementert som en anmodning om å tilføye avkom til den aktuelle node (f.eks. en etterfølger av hovednoden). På denne måten kan programmet benytte den forenklede representasjon av brukergrensesnittelementet til å utføre operasjoner på brukergrensesnittelementet. Programmereren må følgelig ikke gjøre seg kjent med kompleksitetene til det fullstendige bilde, og enklere kode eller markering kan benyttes.
En måte til å implementere et forenklet bilde er å definere forskjellige noder i representasjonen som innkapslingsforeldre eller innkapslingsbeholdere. På denne måten kan en spesiell node utpekes som en hovednode (f.eks. innkapslings-foreldren), og en annen (f.eks. avkommet) node kan utpekes som den spesielle node som skal motta avkommet (f.eks. hvis foreldrenoden har eller vil ha avkom på det forenklede bilde).
En annen måte å implementere det forenklede bilde på, er å definere en selektivt eksponerbar node på en slik måte at dens avkom blir betraktet som søs-ken til søsknene til den selektivt eksponerbare node på det forenklede bilde.
Som beskrevet her, kan et antall andre operasjoner enn å tilføye avkom utføres for å lære om eller manipulere en representasjon av et brukergrensesnitt-element. I tillegg kan det utføres operasjoner på enhver node i representasjonen og likevel trekke fordel av det forenklede bilde.
Videre kan karakteristiske egenskapsverdier bestemmes (f.eks. for tilføyde noder) i lys av de selektivt eksponerbare noder. I noen tilfeller kan det være ønskelig å benytte karakteristiske egenskapsverdier tilknyttet en hovednode (f.eks. å ignorere de selektivt eksponerbare noder), for den umiddelbare (f.eks. ueksponerte) forelder, eller en kombinasjon av dette.
Fordi visse detaljer vedrørende representasjonen av brukergrensesnittelementet er skjult, blir hovednoden og de selektivt eksponerbare noder for et sammensatt brukergrensesnittelement, noen ganger sagt å danne et "innkapslet" brukergrensesnittelement.
Et program eller et markeringsspråk som vekselvirker med det forenklede bilde, kan skjermes fra en del av kompleksiteten til den underliggende representasjon. Et sammensatt brukergrensesnittelement kan således sammenstilles av et antall brukergrensesnittelementer uten å innføre ytterligere kompleksitet i det program som bruker det sammensatte brukergrensesnitt. En slik løsning kan være nyttig ved at den kan oppmuntre de som utvikler brukergrensesnittelementer til å gjenbruke brukergrensesnittelementer når de lager nye, uten å innføre unødven-dig kompleksitet ved håndtering av brukergrensesnittelementet. Nesting av defini-sjoner som selektivt spesifiserer eksponerbare noder, kan videre understøttes.
Eksempel på hierarkisk representasjon av
et brukergrensesnittelement
En måte å representere et brukergrensesnittelement på i programvare, er å lagre det i form av et hierarkitre som har forskjellige noder eller knutepunkter. Fig. 1 viser et eksempel på en hierarkisk representasjon 100 av et brukergrensesnitt-element. Nodene 110 og 120 er vist i et foreldre/avkom-forhold. Noden 110 er f.eks. et foreldreelement til avkomselementet 120. Fordi representasjonen 100 innbefatter mer enn én node, blir den noen ganger sagt å representere et "sammensatt" brukergrensesnittelement. I tilfelle med et sammensatt brukergrensesnittelement, kan noden 110 svare til en visuell presentasjon, og noden 120 kan svare til en annen visuell presentasjon. Minst én av nodene 110 eller 120 kan imidlertid være uten noen visuell illustrasjon.
En eller flere av nodene i representasjonen 100 kan være utpekt som selektivt eksponerbare. I eksemplet er noden 120 utpekt på denne måten. Under presentasjon av et forenklet bilde av representasjonen 100, er den selektivt eksponerbare node 120 ueksponert. Bare rotnoden 110 til de noder som representerer den hierarkiske representasjon 100 av brukergrensesnittelementet, er følgelig eksponert. Den eksponerte node 110 blir noen ganger kalt "hovednoden".
Meget mer komplekse brukergrensesnitt som omfatter mange elementer, kan være representert på den måte som er vist på fig. 1. Hvert av elementene kan selv omfatte andre brukergrensesnittelementer som tilføyer ytterligere kompleksi-tetslag (f.eks. flere noder som innbefatter selektivt eksponerbare noder) som ikke er vist på fig. 1. Forskjellige avkomsnoder kan videre være hovednoder for representasjoner av andre brukergrensesnittelementer.
Fig. 1 viser et fullstendig bilde av den hierarkiske representasjon av brukergrensesnittelementet innbefattende selektivt eksponerbare avkomsnoder (f.eks. noden 120). Det fullstendige bilde av den hierarkiske representasjon 100 kan imidlertid kanskje ikke være ønsket under utførelse av forskjellige operasjoner for representasjonen av brukergrensesnittelementet. Direkte vekselvirkning med noden 120 kan f.eks. være unødvendig undervisse omstendigheter. Hvis så er tilfelle, kan et eksempel på et forenklet bilde 200 av representasjonen presenteres, som vist på fig. 2.
Det forenklede bildeeksemplet 200 viser bare én node 210. Noden 210 kan være enten en kombinert representasjon av nodene 110 og 120 på det fullstendige bilde (f.eks. når noden 120 er innkapslet i noden 110), eller ganske enkelt en representasjon av noden 110 på det fullstendige bilde.
Et annet eksempel på en hierarkisk representasjon av
et brukergrensesnittelement
Et annet eksempel på en hierarkisk representasjon 300 er vist på fig. 3.1 eksemplet er nodene 310, 320 og 325 et sett med noder 330 som representerer et sammensatt brukergrensesnittelement. I settet med noder 330 er noden 310 hovednoden, og de gjenværende noder 320 og 325 er definert som selektivt eksponerbare. En annen node 340 er ikke selektivt eksponerbar og er vist som et avkom eller en datter av en av de selektivt eksponerbare noder 320. Representasjonen 300 innbefatter de selektivt eksponerbare noder og blir fremskaffet hvis det bes om et fullstendig bilde.
Et tilsvarende forenklet bilde er vist på fig. 4. De selektivt eksponerbare noder 320 og 325 blir ikke eksponert når det bes om et forenklet bilde. I stedet viser det forenklede bilde 400 noden 410 (f.eks. noden 310 eller en kombinasjon av nodene 310, 320 og 325) og noden 340.
Det vises nå til fig. 3, hvor en av nodene 320 kan utpekes som den node under hvilken forenklede datterbilder (f.eks. noden 340) er lagret. En slik node blir noen ganger kalt en "beholdernode" (f.eks. for de innkapslede noder).
En forholdsvis kompleks representasjon av et brukergrensesnitt kan således presenteres på forenklet form etter ønske. Et fullstendig bilde 300 av en hierarkisk representasjon av et slikt komplekst brukergrensesnitt behøver ikke å bli levert for et program skrevet av en bruker som ikke har noen interesse av de selektivt eksponerbare noder i den hierarkiske representasjon. En programmerer behøver f.eks. ikke å være interessert i eksistensen av eller definisjonen av funk-sjonaliteten eller utseendet til de brukergrensesnittelementer som angår de selektivt eksponerbare noder 320 og 325. Programmet kan imidlertid måtte vekselvirke med noden 340. Det er derfor noen ganger ønskelig å tilveiebringe det forenklede bilde 400 av den hierarkiske representasjon av brukergrensesnittet bare i form av de noder som er av interesse.
De teknologier som er beskrevet her, kan anvendes på en rekke andre representasjoner som har ytterligere eller færre noder.
Oversikt over et eksempel på implementering
av et forenklet bilde
Fig. 5 viser et eksempel på en fremgangsmåte 500 for å implementere et forenklet bilde av en representasjon av et brukergrensesnittelement (f.eks. i en brukergrensesnitt-tjeneste). Ved 510 blir det definert et brukergrensesnittelement som har en hierarkisk representasjon. Definisjonen kan f.eks. innbefatte et antall noder, hvorav noen er selektivt eksponerbare.
Etter at definisjonen er laget, kan den påkalles ved 520 for å lage brukergrensesnittet. En hierarkisk representasjon av det definerte brukergrensesnittelement kan f.eks. lages via definisjonen og lagres.
En eller flere operasjoner kan utføres på representasjonen ved 530. Slike operasjoner kan utføres via det forenklede bilde av den hierarkiske representasjon uten å eksponere de selektivt eksponerbare noder i representasjonen.
Om ønsket kan påkalling av definisjonen og utførelse av operasjoner på representasjonen gjøres uten referanse til det fullstendige bilde av representasjonen. Programmerere kan således skrive kode eller markering uten å gjøre seg kjent med detaljene i det fullstendige bilde. I praksis kan en hvilken som helst av de avbildede handlinger være uavhengig nyttige og behøver ikke å bli utført alle på en gang eller av det samme program.
Eksempel på fremgangsmåte for å definere et brukergrensesnitt-element som har et forenklet bilde
Fig. 6 viser et eksempel på en fremgangsmåte for å motta en definisjon av et brukergrensesnittelement som har en hierarkisk representasjon, med et forenklet bilde. Definisjonen kan f.eks. lages ved å bruke forskjellige språk, slik som markeringsspråk (f.eks. XML eller HTML) eller programmeringsspråk (f.eks. Java eller C++). Definisjonen kan således mottas fra et program eller spesifiseres i et markeringsdokument.
Ved 610 blir det mottatt en indikasjon på den ene eller de flere noder som vil bli lagret for representasjonen av brukergrensesnittelementet. Brukergrensesnittelementet (f.eks. under-elementer) kan f.eks. spesifiseres. Definisjonen kan indikere de hierarkiske forhold mellom elementer. En slik definisjon kan innbefatte nodedefinisjoner for forskjellige elementer som utgjør et sammensatt brukergrensesnittelement.
Ved 620 blir en indikasjon på minst én selektivt eksponerbar node mottatt. Om ønsket kan de selektivt eksponerbare noder velges automatisk istedenfor å bli spesifisert i definisjonen. Når et forenklet bilde av en representasjon av det definerte brukergrensesnittelement er fremskaffet, blir de selektivt eksponerbare noder ueksponerte. Definisjonen kan så lagres ved 630 for senere påkalling.
Eksempel på fremgangsmåte for påkalling av et definert brukergrensesnittelement som har et forenklet bilde
Et eksempel på brukergrensesnittelementet kan lages ved å påkalle definisjonen (f.eks. slik som det som er definert via fremgangsmåten vist på fig. 6). Fig. 7 viser et eksempel på en fremgangsmåte for å påkalle en definisjon av et brukergrensesnittelement som har et forenklet bilde. Ved 710 blir det mottatt en anmodning om å skape et brukergrensesnittelement. En slik anmodning kan mottas programmessig (f.eks. fra et programvareprogram) eller fra et markeringsdokument.. Anmodningen behøver ikke å bli mottatt fra den samme entitet som definerte brukergrensesnittelementet.
Ved 720 blir definisjonen av den hierarkiske definisjonen av et brukergrensesnittelement brukt til å lage de riktige noder i den hierarkiske representasjon av brukergrensesnittet (f.eks. svarende til de brukergrensesnittelementer som utgjør et sammensatt brukergrensesnittelement). De skapte noder blir tilveiebrakt hvis et fullstendig bilde av representasjonen blir etterspurt.
Ved 730 blir de riktige noder (f.eks. som spesifisert ved hjelp av definisjonen) utpekt som selektivt eksponerbare. Slike selektivt eksponerbare noder blir ikke eksponert (blir f.eks. ikke påtruffet når et forenklet bilde f.eks. av den representasjon der brukergrensesnittelementet er representert) blir etterspurt.
Om en node er eksponert på et bilde av representasjonen av et brukergrensesnittelement er uavhengig av om det tilsvarende brukergrensesnittelement blir vist eller ikke (f.eks. er skjult) på en visningsinnretning når brukergrensesnitt-elementet blir vist.
Eksempel på fremgangsmåte for å utføre en operasjon på
et brukergrensesnitt- element som har et forenklet bilde
Når definisjonen av brukergrensesnittet blir oppkalt for å lage den hierarkiske representasjon av brukergrensesnittelementet (f.eks. som vist på fig. 7), kan operasjoner utføres for representasjonen. En slik operasjon kan utføres for enten det fullstendige eller forenklede bilde av representasjonen. De operasjoner som utføres på det forenklede bilde innbefatter f.eks. å nummerere avkom fra en node, å tilføye avkom til en node, å fjerne avkom fra en node, og å navigere innenfor den hierarkiske representasjon.
Et eksempel på en fremgangsmåte for å utføre en operasjon på et forenklet bilde av en representasjon av et brukergrensesnittelement, er vist på fig. 8. Ved 810 blir det mottatt en anmodning om å utføre en operasjon på brukergrensesnitt-elementet (f.eks. hovednoden i et sammensatt brukergrensesnittelement). Ved 820 blir den anmodede operasjon utført ved å bruke det forenklede bilde av den hierarkiske representasjon av brukergrensesnittelementet. Operasjonen kan resultere i en modifikasjon av den hierarkiske representasjon (f.eks. ved tilføyelse eller fjerning av noder), eller representasjonen behøver ikke å bli endret (f.eks. ved nummerering eller navigering innenfor noder).
En anmodning om opptelling av avkom til en node ved å benytte det forenklede bilde, kan f.eks. resultere i opptelling av de avkom som er lagret i en datternode (eller en datterdatternode) for noden, hvis datternoden er utpekt som selektivt eksponerbar.
En anmodning om å tilføye en datter til en mornode som har selektivt eksponerbare døtre på det forenklede bilde, kan resultere i at datteren blir tilføyd på sin riktige plass i hierarkiet til det fullstendig bilde av representasjonen av bruker-elementet som kan være eller ikke være den mornoden som er synlig på det forenklede bilde.
På det forenklede bilde vil det således synes som om en datter ble tilføyet direkte under mornoden. For operasjoner som involverer døtre, kan definisjonen av den hierarkiske representasjon av brukergrensesnittelementet benyttes til å finne det riktige sted å tilføye eller finne døtre innenfor det fullstendige bilde av den hierarkiske representasjon. Et program kan på denne måten skrives for å vekselvirke med det forenklede bilde, og programmereren er skjermet fra vanske-lighetene med å måtte kjenne til detaljene i det fullstendige bilde, innbefattende de skjulte noder og deres arrangement innenfor hierarkiet.
Implementeringseksempler vedrørende en kombinasjonsliste
Noen av de følgende eksempler beskriver forskjellig prosessering vedrør-ende et eksempel på et brukergrensesnittelement kjent som en kombinasjonsliste. De teknikker som beskrives, kan anvendes på ethvert antall brukergrensesnittelementer som nå finnes eller som vil bli utviklet senere.
Eksempel på brukergrensesnittelement i form av en kombinasjonsliste
Fig. 9 viser et eksempel på et brukergrensesnittelement 905 som er vanlig kjent som en kombinasjonsliste. I eksemplet er kombinasjonsboksen 905 et sammensatt brukergrensesnittelement som omfatter flere brukergrensesnittelementer , som igjen kan omfatte ytterligere brukergrensesnittelementer. Kombinasjonsboksen 905 omfatter en inn-boks 910, en rullegardintast 930 og et lokalmeny-vindu 920. Når en bruker klikker på rullegardintasten 930, blir vanligvis lokalmeny-vinduet 920 vist. I dette eksemplet inneholder lokalmeny-vinduet 920 en listeboks 925 (f.eks. visuelt uskjelnbar fra lokalmeny-vinduet 920). Lokalmeny-vinduet 920 kan imidlertid inneholde alternative eller ytterligere brukergrensesnitt-elementer (f.eks. en rullegardinmeny). Listeboksen 925 er også et sammensatt brukergrensesnittelement med sine egne elementer, slik som rullebetrakteren 926 (f.eks. også visuelt uskjelnbar fra lokalmeny-vinduet 920) som inneholder rutenettpanelet og rullefeltet 945 for å rulle gjennom listeelementene 940, som befinner seg på rutenettpanelet 935.
I illustrasjonseksemplet av kombinasjonsboksen 905, er listebokselementet 925 skissert som visuelt uskjelnbart fra rullebetrakter-elementet 926 og lokalmeny-elementet 920. Illustrasjonen viser således at lokalmenyvinduet 920 inneholder det listeboks-elementet 925 som er laget ved å tilføye et rutenettpanel 935 til en tom holder som befinner seg i rullebetrakteren 925. Andre arrangementer er mulige. For eksempel er det mulig for et lokalmeny-vindu 920 å inneholde andre brukerelementer enn en listeboks 925. Videre er det også mulig at rullebetrakteren 926 kan ha andre elementer (f.eks. en meny) enn et rutenettpanel 935 innenfor den tomme holderen.
Rullefeltet 945 kan også være representert som et sammensatt brukergrensesnittelement som inneholder elementer slik som rulletastene 950, 951, 955 og 956 og et rullehjul 960. Et antall variasjoner kan benyttes istedenfor den avbildede kombinasjonsboks 905. Elementer kan f.eks. fjernes, ytterligere elementer kan tilføyes eller alternative elementer kan defineres. Et horisontalt rullefelt (ikke vist) kan f.eks. også være tilføyd for å hjelpe brukeren til å rulle gjennom listeelementer som er lange i horisontalretningen.
Eksempel på representasjon av et brukergrensesnittelement i form av en kombinasjonsliste (fullstendig bilde)
Fig. 10A viser et eksempel på en hierarkisk representasjon 1000 av en kombinasjonsboks (f.eks. den som er vist på fig. 9) som skal fremskaffes (f.eks. ved hjelp av en brukergrensesnitt-tjeneste) når det anmodes om et fullstendig bilde. Som vist er nodene arrangert i en trestruktur på hierarkisk måte.
Hovednoden til kombinasjonsboksen er representert ved 1005 som den øverste node i hierarkiet. De andre elementene til kombinasjonsboksen (f.eks. slik som de vist på fig. 9) er også representert som noder i den hierarkiske representasjon som lokalmeny 1020, innboks 1010 og rullegardintast 1030. Lokalmenyen 1020 er vist som om den omfatter listeboksen 1025. Listeboksen 1025 er en mor-node i den hierarkiske representasjon som videre omfatter en rullebetrakter 1026.
Rullebetrakteren 1026 er selv en mornode innenfor den hierarkiske representasjon. Rullebetrakternoden 1026 er en mornode for et plassholder-element 1035, det vertikale rullefeltet 1030 og det horisontale rullefeltet 1040. Som nevnt ovenfor i forbindelse med fig. 9, er det ingen visuell differanse mellom morliste-boksnoden 1025 og dens datterelement rullebetrakteren 1026. Dette er slik fordi listeboksen 1025 er dannet ved å tilføye rutenettpanel-elementet 1045 som en datternode av plassholder-elementnoden 1035. Andre datternoder kan imidlertid tilføyes under plassholder-elementene for å bruke rullebetrakteren 1026 i kombinasjon med andre brukerelementer for å danne andre mer komplekse brukergrensesnittelementer. Listeelementene 1050A, 1050B og 1050C er til slutt døtre av rutenettpanelet 1045.
Eksemplet illustrerer hvordan et sammensatt brukergrensesnittelement kan konstrueres fra andre brukergrensesnittelementer og dermed representeres av mange noder. Et sammensatt brukergrensesnittelement av listeboks-typen kan f.eks. defineres som listeboksnoden 1025 og dens etterkommer-noder. For å konstruere et sammensatt brukergrensesnittelement av kombinasjonsboks-typen, kan inn-noden 1010, lokalmeny-noden 1020 og tastnoden 1030 kombineres under kombinasjonsboks-noden 1005. Endelig kan det sammensatte brukergrensesnitt-elementet i form av listeboksen (f.eks. listeboks-noden 1020 og dens etterkommere) settes inn (f.eks. via markeringer eller programvare) under lokalmeny-noden 1020. En enkel referanse til det sammensatte brukergrensesnittelement i form av en listeboks kan resultere i frembringelse av listeboks-noden 1025 og dens etterkommere. I praksis behøver de noder som er relatert til listeelementer (f.eks. nodene 1050A, 1050B og 1050C) ikke å være innbefattet i definisjonen av brukergrensesnittelementet som listeboks.
Den flerfoldige nestingen av noder som er vist i eksemplet, kan øke kompleksiteten ved å definere og manipulere et brukergrensesnittelement. Selv om kombinasjonsboks-representasjonen er forholdsvis kompleks, kan enda mer komplekse eksempler implementeres. Teknologiene kan imidlertid også anvendes på enklere eksempler.
I eksemplet er settet med noder 1060 som omfatter nodene 1010, 1020, 1025, 1026, 1030, 1031A, 1031B, 1033, 1034A, 1034, 1035, 1040, 1041A, 1041B, 1043, 1044A, 1044B og 1045 blitt definert som selektivt eksponerbare. Når et forenklet bilde av representasjonene blir presentert, blir de selektivt eksponerbare noder ikke eksponert.
Et forenklet bilde av den hierarkiske representasjon av brukergrensesnitt-elementet kan være ønskelig. Det kan f.eks. være ønskelig å tilføye ytterligere listeelementer uten å måtte håndtere de relative kompleksitetene til den hierarkiske representasjon (f.eks. hvor listeelementer skal tilføyes som døtre).
Eksempel på representasjon av et brukergrensesnittelement
i form av en kombinasjonsboks (forenklet bilde)
Selv om et sammensatt brukergrensesnittelement kan innbefatte et komplekst antall av noder, kan det være ønskelig å tilveiebringe et forenklet bilde av den hierarkiske representasjon av brukergrensesnittelementet. Fig. 11 viser et eksempel på en hierarkisk representasjon 1100 (f.eks. svarende til representasjonen 1000 på fig. 10A) levert når det ønskes et forenklet bilde av kombinasjonsboksen (f.eks. slik som den på fig. 9). I eksemplet er nodene 1050A, 1050B og 1050C for listeelementene vist som den direkte etterkommer av hovednoden 1105 for kombinasjonsboksen. De andre nodene som ikke er vist, blir noen ganger sagt å være "innkapslet" i kombinasjonsboks-noden 1105. Ved å benytte det forenklede bilde, kan et program som dreier seg om å manipulere listeelementene, betrak-te listeelementene som døtre av hovednoden 1110 og behøver ikke å inneholde logikk vedrørende de andre elementer i det sammensatte brukergrensesnittelement. Definisjonen av brukergrensesnittelementet i form av kombinasjonsboksen kan inneholde tilstrekkelig informasjon til at operasjoner for det forenklede bilde kan omsettes til passende operasjoner for det fullstendige bilde av den hierarkiske representasjon.
Eksempel på nesting av brukergrensesnittelementer
som har et forenklet bilde
De arrangementer som beskrives her, kan også understøtte nesting. Ved nesting kan det være brukergrensesnittelementer som har selektivt eksponerbare noder inne i andre brukergrensesnittelementer som selv har selektivt eksponerbare noder. Slik nesting kan løses på en rekke forskjellige måter. Selv om noen av nodene i et sammensatt brukergrensesnittelement f.eks. kan være utpekt som eksponerte (f.eks. synlige i et forenklet bilde) hvis brukergrensesnittelementet er gjort til en del av (f.eks. innkapslet i) et annet sammensatt brukergrensesnittelement, kan disse nodene betraktes som selektivt eksponerbare (f.eks. ikke synlige på et forenklet bilde) på grunn av det faktum at de er inne i et område i hierarkiet som representerer det innkapslende, sammensatte brukergrensesnittelement som er utpekt som selektivt eksponerbart (f.eks. ved hjelp av det innkapslende, sammensatte brukergrensesnittelement).
Slik nesting kan videre understøtte relativitet. Noder kan f.eks. betraktes eller ikke betraktes som selektivt eksponerbare, avhengig av på hvilken node det anmodes om å utføre en operasjon. En anmodning om å utføre en operasjon på en node innkapslet i et annet brukergrensesnittelement, kan med andre ord resultere i et bilde som viser noder som ikke kan ses under utførelse av en operasjon på det innkapslende brukergrensesnittelement.
Fig. 10B viser et eksempel på en hierarkisk representasjon av en kombinasjonsboks, slik som den som er representert på fig. 10A. For korthets skyld er noen av de noder som er relatert til rullefelt, utelatt.
I eksemplet er rullebetrakter-noden 1026 hovednoden til et sammensatt brukergrensesnittelement som omfatter rullebetrakter-noden 1026, beholderelement-noden 1035 og de forskjellige rullefelt-noder (f.eks. noden 1030). For operasjoner utført på rullebetrakter-noden 1026 på et forenklet bilde, blir de andre nodene til det sammensatte brukergrensesnittelement, ansett å være selektivt eksponerbare (blir f.eks. utelatt) og innkapslet av rullebetrakter-noden 1026. En anmodning om å tilføye en datternode til rullebetrakter-noden 1026 på et forenklet bilde, vil f.eks. resultere i at en datternode blir tilføyd beholderelement-noden 1035. På denne måten defineres det en innkapslingsgrense 1090.
Listeboks-noden 1025 er likeledes hovednoden i et sammensatt brukergrensesnittelement som omfatter rullebetrakter-noden 1026 (f.eks., og de noder som innkapsles av denne) og rutenettpanelet 1045. For operasjoner utført på listeboks-noden 1025, blir de andre noder i det sammensatte brukergrensesnittelement ansett å være selektivt eksponerbare (blir f.eks. utelatt) og innkapslet av listeboks-noden 1025. På denne måten blir det definert en innkapslingsgrense 1080.
Kombinasjonsboks-noden 1005 er videre hovednoden i et sammensatt brukergrensesnitt som omfatteren inngangsnode 1010, en lokalmeny-node 1020, en tastnode 1030 og lokalmeny-noden 1025 (f.eks., og de noder som er innkapslet i disse). For operasjoner utført på kombinasjonsboks-noden 1005 blir de andre noder i det sammensatte brukergrensesnittelement ansett å være selektivt eksponerbare (de blir f.eks. utelatt) og innkapslet av kombinasjonsboks-noden 1005). På denne måten blir det definert en innkapslingsgrense 1070. Fordi listeboks-noden 1025 selv er en del av en innkapslingsgrense, har den effektive innkapslingsgrense 1095 en virkning. For operasjoner utført på kombinasjonsboks-noden 1005 blir med andre ord de noder som er vist, bortsett fra kombinasjonsboks-noden 1005 og listeelement-nodene 1050A-C, ansett å være selektivt eksponerbare (de blir f.eks. utelatt) og innkapslet av kombinasjonsboksen 1005. En anmodning om å tilføye en datternode til kombinasjonsboks-noden 1005 på et forenklet bilde, vil f.eks. resultere i at en datternode blir tilføyd rutenettpanel-noden 1045.
Eksempel på fremgangsmåte for å representere et brukergrensesnitt-element som har et forenklet bilde
En lang rekke metoder kan brukes til å fremskaffe et forenklet bilde. En slik metode er å lagre, inne i representasjonen av brukergrensesnittelementet, forskjellige egenskaper for nodene. Det følgende eksempel beskriver bruk av egenskaper (f.eks. "innkapslings-mor" og "innkapslings-beholder") for å utpeke hvilke noder i en representasjon som er selektivt eksponerbare.
Ved å fastsette en nodes riktige egenskap (f.eks. "innkapslings-mor") til SANN, og noder under noden i hierarkiet blir utpekt som selektivt eksponerbare (f.eks. ikke eksponert på det forenklede bilde).
Som beskrevet her, blir en slik node noen ganger kalt "hovednoden". Hvis en spesiell node under hovednoden i hierarkiet videre har en riktig egenskap (f.eks. "innkapslingsbeholder") satt til SANN, blir døtre av hovednoden betegnet som ikke selektivt eksponerbare (blir f.eks. eksponert på det forenklede bilde). I et slikt tilfelle blir døtre av den spesielle node ansett å være døtre av hovednoden i forbindelse med det forenklede bilde. Hvis døtre blir tilføyd hovednoden via det forenklede bilde, så blir de i virkeligheten tilføyd som døtre av den spesielle node som har egenskapen (f.eks. i "innkapslingsbeholder") satt til SANN.
Nesting kan understøttes som beskrevet i forbindelse med fig. 10B. I eksemplet kan en node ved toppen av en innkapslingsgrense (f.eks. en hovednode) ha en passende egenskap (f.eks. "innkapslingsmor"-egenskapen) fastsatt, og en node ved bunnen av innkapslingsgrensen kan ha en passende egenskap (f.eks. "innkapslingsbeholder"-egenskapen) fastsatt. På denne måten kan innkapslingsgrenser defineres via egenskapsinnstillingen.
Fig. 12 viser et eksempel på en fremgangsmåte 1200 for å representere et brukergrensesnittelement med et forenklet bilde via betegningsverdier for forskjellige egenskaper for noder innenfor en hierarkisk representasjon av brukergrensesnittelementet. Nodene i den hierarkiske representasjon kan ha egenskaper relatert til selektiv eksponering av noden selv, dens døtre eller dens mødre. Ved å fastsette slike egenskaper, kan et brukergrensesnittelement som har et forenklet bilde, representeres, og operasjoner kan utføres på representasjonen via det forenklede bilde.
Ved 1210 blir minst én node i den hierarkiske representasjon av brukergrensesnittet valgt for å tjene som hovednode (f.eks. som innkapsler i selektivt ueksponerte noder). Ved 1220 blir innkapslingsmor-egenskapen til den valgte node satt til "SANN". Ved 1230 blir en etterkommer av hovednoden valgt til å tjene som en beholder for eventuelle barn (f.eks. tilstedeværende nå eller tilføyd senere) av hovednoden på det forenklede bilde. Ved 1240 blir så innkapslingsbeholder-egenskapen til etterkommernoden satt til "SANN".
Ved å fastsette egenskapene som forklart i eksemplet, blir beholderen og eventuelle mellomliggende etterkommere (f.eks. døtre) mellom hovednoden og beholderen derved definert som selektivt eksponerbare (f.eks. utelatt på det forenklede bilde eller "innkapslet" i moren). Datternoder under beholderen vil bli eksponert (f.eks. synlige) på det forenklede bilde.
I visse arrangementer kan det ennå ikke være noen datterelementer. I et slikt tilfelle kan den riktige egenskapen til en bladnode fastsettes. Deretter, når døtre blir tilføyd via det forenklede bilde, blir de plassert under bladnoden.
Eksempel på markeringsdefinisjon av en kombinasjonsboks
Et brukergrensesnittelement som har et forenklet bilde av sin representasjon, kan defineres på en lang rekke måter. En slik måte er via et markeringsspråk (f.eks. HTML eller XML) som kan prosesseres og lagres for senere oppkalling. Fig. 13 viser et eksempel på en definisjon av en kombinasjonsboks med et forenklet bilde (f.eks. slik som det som er vist på fig. 11) skrevet i XML.
Når et eksempel på den definerte kombinasjonsboks er lagret, blir passende egenskaper fastsatt for de forskjellige noder i den hierarkiske representasjon for å oppnå det ønskede, forenklede bilde. Måten å definere egenskapene på for de forskjellige noder i den hierarkiske representasjon, kan være tilpasset bruk i andre typer språk foruten markeringsspråk.
I eksemplet blir det oppnådd nesting. Definisjonen på fig. 13 kan resultere i det arrangement som er vist på fig. 10B.
Eksempler på programdefinisjon av en kombinasjonsboks
Et brukergrensesnittelement som har et forenklet bilde, kan også defineres programmessig (f.eks. i et programmeringsspråk slik som C+++ eller Java). Fig. 14A og 14B viser f.eks. en programdefinisjon av den hierarkiske representasjon av en kombinasjonsboks med forenklet bilde.
Både markeringsdefinisjonen på fig. 13 og programdefinisjonen på fig. 14A og 14B viseren kombinasjonsboks definert som et lokalmeny-element som inneholder et listeboks-element for å holde døtrene i kombinasjonsboksen eksponert på det forenklede bilde (dvs. listeelementene). Listeboks-elementet (som selv er en sammensatt styring) blir videre definert som å ha et rullebetrakter-element som inneholder et rutenettpanel for å inneholde døtrene til listeboksen som er eksponert på det forenklede bilde (dvs. listeelementene).
I programdefinisjonseksemplet blir det igjen oppnådd nesting. Definisjonene på fig. 14A og 14B kan resultere i det arrangement som er vist på fig. 10B. Et sammensatt brukergrensesnittelement (f.eks. en kombinasjonsboks) blir således definert via sammenstilling av forskjellige brukergrensesnittelementer som hvert kan ha muligheter for selektivt eksponerbare noder. Sammenstilt til et sammensatt brukergrensesnittelement kan nesting håndteres på en slik måte at detaljene ved hvordan selektivt eksponerbare noder er definert innenfor de innkapslede brukergrensesnittelementer, forblir transparente ved operasjon på et brukergrensesnitt-element ved et ytre nivå (f.eks. innkapsling).
Eksempel på markeringsoppkall av en kombinasjonsboks-definisjon Definisjonen av et brukergrensesnittelement (f.eks. slik som de som er vist på fig. 13 og 14) kan påkalles for å lage en representasjon av brukergrensesnitt-elementet, innbefattende eventuelle selektivt eksponerbare noder som forblir ueksponert på det forenklede bilde. Slik påkalling kan oppnås på en lang rekke forskjellige måter (f.eks. via markeringsspråk eller programmessig).
Et eksempel på påkalling 1500 av en definisjon (f.eks. slik som de som er vist på fig. 13 og 14) er vist på fig. 15 som skrevet i XML. Ved å innbefatte merket "«30MBO BOX>" ved 1510, gjør påkallingen bruk av den tidligere lagde definisjon av kombinasjonsboksen som letter et forenklet bilde av den hierarkiske representasjon av kombinasjonsboksen. Som vist i eksemplet er den eneste annen anstrengelse ved påkallingen å spesifisere listeelementene 1520 uten å ha kjennskap til den fullstendige hierarkiske representasjon av kombinasjonsboksen. Strukturen til påkallingen på fig. 15 kan således svare til det forenklede bilde av den hierarkiske representasjon av kombinasjonsboksen, selv om kombinasjonsboksen i virkeligheten er sammensatt av flere andre brukergrensesnittelementer. På denne måten blir det oppmuntret til gjenbruk av brukergrensesnittelementer til å lage sammensatte styringer. I eksemplet kan et forenklet bilde brukes av syste-met på grunn av det faktum at påkallingen blir utført i XML.
Eksempel på programmessig påkalling av en kombinasjonsboks-definisjon Metoden for påkalling av kombinasjonsboksen overføres likeledes til den programmessige påkalling 1600 i definisjonen som vist på fig. 16. Eksemplet kan implementeres ved hjelp av en lang rekke programmeringsspråk (f.eks. Java og C++). Kodelinjen "COMBOBOX = NEW COMBOBOX ()" VED 1610 påkaller den tidligere lagde definisjon. De fordelene som er beskrevet ovenfor i forbindelse med markeringsversjonen, gjelder også den programmessige påkalling. For å aksesse-re det fullstendige bilde i stedet for det forenklede bilde, kan det benyttes andre språk (f.eks. "COMBOBOX.FULLVIEW.ELEMENTS" eller lignende).
Eksempel på fremgangsmåte for å utføre en operasjon på et forenklet bilde Når programvare eller markering har påkalt et definert brukergrensesnittelement, blir det lagd en hierarkisk representasjon av brukergrensesnittelementet
som har et forenklet bilde, og som er tilgjengelig for operasjoner. Operasjoner innbefatter å tilføye døtre, å fjerne døtre, å telle opp døtre, å finne ut hva som er mor-noden til en node på det forenklede bilde, og forskjellige operasjoner for å navigere i den hierarkiske representasjon av brukergrensesnittelementet. Resultatene av
disse operasjonene kan være forskjellige i henhold til om de utføres ved å benytte det forenklede bilde av den hierarkiske representasjon eller det fullstendige bilde.
I de forskjellige utførelsesformer kan et program spesifisere om det forenklede bilde er ønsket. I noen scenarier kan det ellers antas fra sammenhengen at et forenklet bilde er ønsket.
I forbindelse med visse operasjoner, slik som å tilføye døtre eller fjerne døt-re i det forenklede bilde, kan definisjonen av den hierarkiske representasjon av brukergrensesnittelementet brukes til å bestemme hvordan operasjonene bør ut-føres på det fullstendige bilde.
Fig. 17 viser et eksempel på en fremgangsmåte 1700 for å utføre en operasjon på et forenklet bilde, nemlig å tilføye en datter til et brukergrensesnittelement (f.eks. en node som representerer et slikt element). Ved 1710 blir det mottatt en indikasjon om å tilføye døtre til en node på det forenklede bilde av den hierarkiske representasjon av et brukergrensesnittelement. Ved 1720, basert på hvordan den hierarkiske representasjon av brukergrensesnittet er blitt definert, blir selektivt eksponerbare noder fjernet, og den nye datternode blir tilføyd den riktige node i henhold til definisjonen (f.eks. til den node som har "innkapslingsbeholder"-egenskapen satt til "SANN") ved 1730.
Den prosess som er illustrert på fig. 17, kan brukes som vist på fig. 18 til å
tilføye en ny datter 1850 til det forenklede bilde av den hierarkiske representasjon av en kombinasjonsboks. Når definisjonen av kombinasjonsboksen blir påkalt, kan nye døtre, slik som den nye datter 1850D tilføyes det forenklede bilde av den hierarkiske representasjon av kombinasjonsboksen, som vist på fig. 19. Ved å benytte definisjonen av den hierarkiske representasjon, vil tilføyelsen av den nye datter 1850D i det forenklede bilde på fig. 19 bli omformet som et tillegg til den riktige plassen i det fullstendige bilde av den hierarkiske representasjon, som vist på fig. 18.
Eksempel på detaljer for å utføre operasjonen
Et eksempel på en hierarkisk representasjon 1800 av et brukergrensesnitt-element utformet som en kombinasjonsboks, er vist på fig. 18. Når anmodningen om å tilføye en datter til kombinasjonsboksen (f.eks. noden 1005) blir mottatt, blir "innkapslingsmor"-egenskapen detektert på noden 1005, og gjennomføringen fortsetter til en tilknyttet etterkommer-node som har "innkapslingsbeholder"-egenskapen. I eksemplet kan gjennomføringen oppnås via en peker 1855. Fordi "innkapslingsmor"-egenskapen blir detektert på noden 1025, fortsetter gjennomfø-ringen med å gå videre til en tilknyttet etterkommer-node som har "innkapslings-beholder"-egenskapen. I eksemplet kan gjennomføringen oppnås via en peker 1860 til noden 1045. Den nye datteren blir så tilføyd som en datternode 1850D til noden 1045.
Om ønsket, kan en direkte peker 1880 implementeres for mer direkte å navigere til den riktige node hvor døtre skal tilføyes. I tillegg kan det innbefattes en peker 1885 tilbake til hovednoden.
Når en ny datter blir tilføyd på det forenklede bilde som vist på fig. 19, vil
det for påkallingsprogrammet synes som om den nye datter 1850D blir tilføyd som en datter av hovednoden 1905 til kombinasjonsboksen. Operasjonen blir imidlertid i virkeligheten implementert (f.eks. av brukergrensesnitt-tjenesten) som tilføyelsen av den nye datter 1850D i det fullstendige bilde på fig. 18 (f.eks. under rutenettpanel-noden 1045).
Nesting kan håndteres på en lang rekke måter. Pekere kan f.eks. brukes som vist til å utelate mellomliggende innkapslingsnivåer. Eller et nestingsnivå kan spores under gjennomgang av den hierarkiske representasjon. Basert på nivået kan det bestemmes hvilke noder som kan hoppes over. Gjennomgang kan også fortsette fra bunnen av hierarkiet til toppen (f.eks. ved en anmodning fra en datternode om å bestemme dens mor).
Alternativ representasjon av selektivt eksponerbare noder
En alternativ representasjon 2000 av selektivt eksponerbare noder er vist på fig. 20A. I eksemplet er en spesiell node 2020 spesielt utpekt som selektivt eksponerbar i et fullstendig bilde av representasjonen.
Det tilsvarende forenklede bilde 2050 er vist på fig. 20B. Som vist blir døtre 2030B og 2030C av den spesielle node 2020 antatt å være søsken av døtrene (f.eks. noden 2030A) til mornoden 2010. Døtrene 2030B og 2030C til den spesielle node 2020 blir med andre ord ansett å være søsken til søsknene til den spesielle node 2020 (f.eks. søsken 2030A på det fullstendige bilde).
En slik implementering kan oppnås på en lang rekke måter. I henhold til et eksempel, blir en spesiell egenskap (f.eks. "skjult beholder") satt til å være sann for den spesielle node 2020, som ikke blir eksponert når det bes om et forenklet bilde.
Eksempel på implementering av en alternativ representasjon
I noen scenarier for brukergrensesnittelementer kan det være ønskelig å generere noder fra en spesifisert posisjon (f.eks. fra en database). Fig. 21 illustrerer f.eks. en listeboks 2100. Det kan være ønskelig å generere ett eller flere av listeelementene 2110 fra en database eller en annen datakilde.
En slik metode til å generere innhold fra en database, er å innbefatte et spesielt element i den hierarkiske representasjon av et brukergrensesnittelement. Det spesielle element kan forbli ueksponert i det forenklede bilde, men kan likevel operere for å generere innholdet og være tilstede i det fullstendige bilde. Om ønsket kan det spesielle element være bundet til en datakilde for automatisk å inn-sette innholdet i brukergrensesnittelementene, slik som listeelementene 2110.
Et slikt spesielt element blir kalt en "gjentakelse". Fig. 22 illustrerer en hierarkisk representasjon 2200 av en listeboks (f.eks. slik som den som er vist på fig. 21) omfattende en gjentakelsesnode 2220 innsatt i den hierarkiske representasjon for automatisk å generere noen av listeelementene, slik som listeelementene 2230 og 2240.
Bruk av gjentakelser gjør det også mulig for de som utvikler brukergrensesnitt å generere innhold automatisk ved å binde gjentakelsen til en samling av registreringer (f.eks. fra en database). Malbeholdere 2221 og 2222 kan videre være tilknyttet en gjentakelse 2220 for å inneholde informasjon relatert til den spesifikke registrering i en database som genererer innhold for en spesifikk datter av gjentakelsen. I dette eksemplet er listeelementene 2230 og 2240 bundet til registreringer i en datakilde for å generere tekstinnhold 2235 og 2245 (f.eks. navn, sted, eller et annet registreringsfelt). Selv om fig. 22 viser bare et enkelt datterelement (listeelementene 2235 og 2240) tilknyttet hver av malbeholderne 2221 og 2222, er det mulig å ha flere datterelementer (f.eks. telefonnummer, navn og bilde av en per-son).
I det fullstendige bilde av den hierarkiske representasjon 2200 for listeboksen, synes det som om gjentakelsen 2220 er en av datternodene til listeboks-noden 2205 og flytpanel-noden 2210. Malbeholderne 2221 og 2222 opptrer som døtre av gjentakelsen 2220.
Programmer som kaller opp definisjonen av listeboksen kan imidlertid ikke vente å se en gjentakelse som en datter av flytpanel-noden 2210. Definisjonen av en listeboks kan også ha fastsatte regler, slik at den ikke aksepterer noe annet en et listeelement som er en datter av flytpanelet 2210. Gjentakelsen 2220 og malbeholderne 2221 og 2222 ønskes derfor ikke eksponert (f.eks. skal de skjules) i den hierarkiske representasjon av en listeboks når det benyttes et forenklet bilde.
Ved ikke å eksponere gjentakelsen 2220 og malbeholderne 2221 og 2222 på et forenklet bilde av den hierarkiske representasjon av en listeboks, blir listeelementene 2230 og 2240 effektivt promotert som søsken av søsknene til deres mor, gjentakelsen 2220 (f.eks. søsknene tii listeelement-noden 2220). Et slikt forenklet bilde 2300 er vist på fig. 23 hvor gjentakelsen 2220 på fig. 22 ikke er eksponert, og listeelementene 2230, 2240 og 2250 opptrer som søsken på fig. 23.
Frembringelse av et eksempel på en alternativ representasjon
Et eksempel på en fremgangsmåte 2400 for å lage en alternativ representasjon av en selektivt eksponerbar node (f.eks. en gjentakelse), er vist på fig. 24. Ved 2410 blir det valgt et brukergrensesnittelement som har en hierarkisk representasjon. Ved 2430 blir minst én node i den hierarkiske representasjon utpekt til å være selektivt eksponerbar (f.eks. ikke eksponert på et forenklet bilde av den hierarkiske representasjon).
En slik utpeking kan f.eks. oppnås ved å fastsette den "skjulte beholder"-egenskapen for den utpekte node til "SANN". Gjentakelsens klassekonstruktør kan fastsette en slik egenskap, slik at egenskapen blir fastsatt hver gang en gjentakelse blir initialisert.
Gjentakelsen kan aktiveres etter ønske (f.eks. automatisk ved påkalling av et brukergrensesnittelement definert som om det inneholder gjentakelsen). Påkallingsprogrammet behøver imidlertid ikke å ta hensyn til den ueksponerte gjentakelse som automatisk befolker listeelementene. Med hensyn til påkallingsprogrammet, er bare påkalling av definisjonen av et brukergrensesnittelement nød-vendig, og det har ingen kjennskap til at brukergrensesnittelementet er definert som å inneholde en gjentakelse.
Selv om påkallingsprogrammet er oppmerksomt på gjentakelsen, behøver programvaren eller markeringen som prosesserer listeelementene i forbindelse med gjentakelsen, ikke å være kjent med de kompleksiteter som gjelder gjentakelsen. På det forenklede bilde synes brukergrensesnittelementet ganske enkelt å ha listeelementer uten noen gjentakelse.
Eksempel på markeringspåkalling av en gjentakelse i
et brukergrensesnittelement
Brukergrensesnittelementer kan påkalle gjentakelser på en rekke forskjellige måter. En slik måte er via et markeringsspråk (f.eks. XML eller HTML). Fig. 25 illustrerer et eksempel 2500 på en listeboks som inneholder en gjentakelsesnode ved bruk av XML. Denne påkallingen av gjentakelsen beror på den tidligere definisjon av gjentakelsesklassen (f.eks. innbefattende en passende konstruktør), og derfor er det ikke nødvendig å utpeke gjentakelsens "skjulte beholder"-egenskap som "SANN".
Eksempel på programmessig påkalling av en gjentakelse i
et brukergrensesnittelement
En gjentakelse kan også påkalles programmessig (f.eks. i et programmeringsspråk slik som C++ eller JAVA) for bruk i brukergrensesnittelementer. Fig.26 illustrerer kode 2600 som har et eksempel på en programmessig oppkalling av en gjentakelse for en listeboks.
Eksempel på alternativ oppkalling av en gjentakelse i
et brukergrensesnittelement
Fig. 27 illustrerer markeringsspråk som innbefatter en alternativ markeringsoppkalling 2710 til en gjentakelse i et brukergrensesnittelement. Det viste eksempel vil resultere i flere (f.eks. to) datternoder for en malbeholder (f.eks. malbeholderne 2221 og 2222); en for bilde og en for kundenavnet.
I hvert av eksemplene, ved å påkalle gjentakelsen, må påkallingsbrukeren eller -prosessen definere bare ett listeelement (f.eks. et som indikerer en kilde) ved 2710 for å komplettere listeboksen, idet de resulterende listeelementer blir generert av gjentakelsen automatisk ved påkallingen (f.eks. via referanse til kil-den).
Fig. 28 viser et eksempel på en definisjon av en listeboks med mange listeelementer uten å benytte gjentakelsestrekket. Listeelementene 2810 er følgelig eksplisitt listet opp i markeringen og vil ikke bli oppdatert når den tilsvarende database oppdateres. Tilgjengeligheten for en gjentakelse (f.eks. innbefattende mulig-heten til å binde seg til en datakilde) i brukergrensesnittelementet, kan således resultere i mer effektiv kode eller markering under frembringelse av brukergrensesnittelementer som har mange eller dynamisk oppdaterte valgmuligheter.
Utførelse av operasjoner via den alternative representasjon
Når operasjonene blir utført på den beskrevne representasjon via det forenklede bilde, blir den riktig utpekte node (f.eks. gjentakelsesnoden) betegnet som "skjult beholder", ikke eksponert. Det vises tilbake til fig. 22 hvor listeelementene 2230 og 2240 kan oppføre seg som ethvert annet listeelement og kan velges av brukeren av den viste listeboks.
En anmodning om moren til listeelementet 2230 via det forenklede bilde vil videre, blir besvart ved å indikere at mornoden til 2230 er flytpanel-noden 2210 (ikke gjentakelsen 2220 eller malen 2221). Nodene 2220 og 2221 (f.eks. betegnet som "skjult beholder") blir således utelatt (f.eks. ikke eksponert). Hvis flytpanelet og rullebetrakteren blir utpekt som selektivt eksponerbare, vil alternativt moren til listeelementet 2230 være listeboksen 2205 på det forenklede bilde.
En viss funksjonalitet kan etter ønske være sperret. For eksempel kan det være forbudt å tilføye eller slette listeelementene 2230 og 2240 som ble befolket av gjentakelsen 2220.
Eksempel på implementering av en annen alternativ representasjon
Et annet eksempel på en representasjon av et brukergrensesnittelement med selektivt eksponerbare noder kan oppnås ved å konstruere en node, slik at bare den utpekte node blir eksponert på det forenklede bilde. Etterkommerne (f.eks. alle etterkommerne) til noden blir f.eks. betraktet som selektivt eksponerbare og ikke vist på det forenklede bilde. En slik representasjon vil bare ha en node eksponert for brukergrensesnittelementet på det forenklede bilde.
I representasjonen av et brukergrensesnittelement som vist på fig. 20A, hvis noden 2010 var utpekt på denne måten, blir f.eks. etterkommerne (f.eks. nodene 2220, 2030A, 2030B og 2030C) utpekt til å være selektivt eksponerbare. Den resulterende representasjon vil ha bare noden 2010 (f.eks. hovednoden) eksponert på det forenklede bilde.
Om ønsket, kan en operasjon for å tilføye en datter til et slikt forenklet bilde resultere i en feil, fordi noden 2010 er definert som ikke å understøttet datternoder på et forenklet bilde. Utførelse av en bestemt datteroperasjon ved å bruke et slikt forenklet bilde, kan bli feilaktig av samme grunn, eller et tomt sett kan fremskaffes.
Slike representasjoner kan være nyttige for å skjerme detaljer i det fullstendige bilde av de brukergrensesnitt som er av liten interesse for visse brukere. Den beskrevne representasjon kan oppnås på et antall forskjellige måter. En enkelt egenskap som f.eks. indikerer at etterkommerne er selektivt eksponerbare, kan f.eks. fastsettes. Beholderegenskapen "innkapslingsmor" kan f.eks. settes til SANN for å resultere i et slikt arrangement (f.eks. hvis det ikke er noen tilsvarende node med "innkapslingsbeholder" satt til SANN).
Eksempel på en bilderepresentasjon
Et annet eksempel på implementering av teknologiene er å implementere en intern representasjon av et bilde som om det har en selektivt eksponerbar datter med tekst som indikerer at tekst skal presenteres hvis bilde er utilgjengelig. Hovednoden kan inneholde bilde, og den selektivt eksponerbare datter kan representere den tilsvarende tekst. På denne måten kan det forenklede bilde manipule-res uten kjennskap til den selektivt eksponerbare datter.
Eksempler på fremgangsmåter for å bestemme egenskaper ved noder Under bestemmelse av hvilke egenskapsverdier en node skal innta (f.eks. arvet), kan de selektivt eksponerbare noder tas i betraktning. Om ønsket, kan slike noder ignoreres (f.eks., og egenskaper tatt fra hovednoden), idet slike noder kan bestemme egenskapsverdier som skal inntas, eller de selektivt eksponerbare noder kan virke i kombinasjon med hovednoden for å bestemme hvilke egenskapsverdier som skal inntas. En slik bestemmelse kan f.eks. være relevant ved tilføyel-se av noder til representasjonen.
En node i hierarkiet kan indikere ønskede egenskaper for andre noder via egenskapsregler (f.eks. fastsatt via et stilark). En node kan f.eks. spesifisere at fontegenskapen til døtre skal være "fet").
På fig. 10A, hvis egenskapsreglene sier at fontegenskapen til døtre av hovednoden 1005 skal være "fete", men egenskapsreglene i tilknytning til listeboks-noden 1025 bestemmer at dens døtre skal ha en fontegenskap som er "kursiv", blir det f.eks. tvetydig hva egenskapen til et listeelement, slik som 1050A, skal være.
Ifølge en implementering blir den arvbare egenskapen til en datternode som ikke er selektivt eksponerbar, arvet fra den nærmeste mor i det forenklede bilde. I eksemplet ovenfor, hvis det forenklede bilde er som vist på fig. 11, er den nærmeste mor på det forenklede bilde over listeelementene 1050A, 1050B og 1050C hovednoden 1105.1 denne utførelsesformen vil derfor fontegenskapen til kombinasjonsboksen bli inntatt av listeelementene.
I henhold til en annen implementering kan den nærmeste mor i det forenklede bilde innbefatte regler for å spørre om noen av egenskapsreglene for noen av dens selektivt eksponerbare datternoder skal tilføyes de datternoder som ikke er selektivt eksponerbare. En prosess som anvender egenskapsregler, kan f.eks. spørre om egenskapsreglene i tilknytning til listeboksen må anvendes på listeelementene i stedet for egenskapsreglene tilknyttet kombinasjonsboksen.
Ifølge en annen implementering, kan egenskapene til datternodene til en skjult beholder, som beskrevet ovenfor, bestemmes ut fra egenskapsregler fastsatt av den skjulte beholder selv og ikke den umiddelbare mornode i det forenklede bilde av den hierarkiske representasjon.
Om ønsket kan en kombinasjon av implementeringene fremskaffes, ved hjelp av hvilke en fleksibel egenskapsbestemmelse kan understøttes.
Forenkling av sammensatte brukergrensesnittelementer
De forskjellige teknologier som er beskrevet her, kan brukes til å lette defi-nering, frembringelse og vekselvirkning med sammensatte brukergrensesnittelementer. En oppkalling kan f.eks. være en enkel indikasjon på et spesielt brukergrensesnittelement som viser seg å være et sammensatt brukergrensesnitt. Påkallingen kan resultere i frembringelse av flere noder for å representere brukergrensesnittelementet.
Programmereren som definerer det sammensatte brukergrensesnittelement, kan imidlertid ta forholdsregler for å indikere at forskjellige av nodene er selektivt eksponerbare. En programmerer som påkaller definisjonen kan således velge å programmere til det forenklede bilde (eller at et slikt bilde frembringes som en standardinnstilling) der slike noder ikke blir eksponert. I så fall behøver programmereren som påkaller definisjonen ikke å være oppmerksom på at den sammensatte styring i virkeligheten er sammensatt av mange noder.
De som definerer ytterligere styringer, kan videre neste sammensatte styringer innenfor sine styredefinisjoner. Indikasjonen på hvilke noder som skal være selektivt eksponerbare, kan bevares slik at nesting lett kan utføres. På denne måten kan en første sammensatt styring defineres som om den inneholder en annen sammensatt styring, og det forenklede bilde vil bli presentert korrekt (f.eks. noder betegnet som selektivt eksponerbare for den annen sammensatte styring vil være selektivt eksponerbare for den annen sammensatte styring). Om ønsket, kan hovednoden til den annen sammensatte styring også indikeres til å være selektivt eksponerbar.
Et eksempel som er nyttig når det gjelder å illustrere nesting, innbefatter den programmessige definisjon av en kombinasjonsboks som vist på fig. 14A og 14B. I eksemplet består kombinasjonsboksen av en første listeboks. Listeboks-definisjonen innbefatter innstillingsegenskaper for å oppnå selektivt eksponerbare noder i listeboksen. Selve listeboksen påkaller videre definisjonen av en rullebetrakter, som selv fastsetter egenskaper for å oppnå selektivt eksponerte noder innenfor rullebetrakteren. For aksess til programvare, eller markering for å akses-sere kombinasjonsboksen, kan imidlertid nesting implementeres slik at de interne detaljer ved listeboksen (f.eks. innbefattende de selektivt eksponerbare noder i denne) ikke vises (f.eks. ved aksessering av det forenklede bilde av kombinasjonsboksen).
Operasjoner utført på listeboksen kan imidlertid fremdeles trekke fordel av det faktum at noder i denne er selektivt eksponerbare (f.eks. ved utførelse av en operasjon på listeboksen i et forenklet bilde). Selektiv eksponering kan således være både nestbar og relativ.
Alternativer
Prinsippene for oppfinnelsen er nå blitt beskrevet og illustrert under henvisning til de illustrerte utførelselsformer, og man vil forstå at de illustrerte utførelses-former kan modifiseres med hensyn til arrangement og detaljer uten å avvike fra disse prinsippene.
Forskjellige brukergrensesnittelementer kan f.eks. kombineres med hverandre og nestes for å tilveiebringe mer komplekse representasjoner. Brukergrensesnittelementene kan være fremskaffet som en del av et grensesnitt for et program eller være innbakt i et dokument (f.eks. en nettside eller et ordbehand-lingsdokument). De teknologier som er beskrevet her, kan også anvendes på eventuelle andre dokumenter eller filer som kan representeres på en hierarkisk form.
Selv om spesielle egenskapsnavn er brukt ovenfor, kan andre egen-skapsmåter brukes for selektivt å eksponere noder i en hierarkisk representasjon.
Man vil forstå at programmene, prosessene og fremgangsmåtene som er beskrevet her, ikke er relatert eller begrenset til noen spesiell type datamaskinap-parat. Forskjellige typer av universelle eller spesielle datamaskiner kan brukes med eller utføre operasjoner i samsvar med den her beskrevne lære. Handlinger som er beskrevet her, kan oppnås ved hjelp av datamaskin-lesbare media omfattende datamaskin-utførbare instruksjoner for å utføre slike handlinger. Elementer av den illustrerte utførelsesform som er vist i programvare, kan være implementert i maskinvare og omvendt. På bakgrunn av de mange mulige utførelsesformer som prinsippene bak oppfinnelsen kan anvendes for, vil man forstå at de detaljerte ut-førelsesformer bare er illustrerende og ikke skal tas som begrensende for oppfin-nelsens ramme. Vi krever derimot beskyttelse for alle slike utførelsesformer som faller innenfor rammen av de etterfølgende patentkrav og deres ekvivalenter.

Claims (22)

1. Datamaskinutført fremgangsmåte for å forenkle en visning til en hierarkisk representasjon av et sammensatt brukergrensesnittelement, hvor fremgangsmåten omfatter: å spesifisere i et formateringsdokument eller å motta (510) gjennom et program en definisjon av en hierarkisk representasjon (100, 300, 1000, 1800, 2000) av et sammensatt brukergrensesnittelement (905,2100) hvor definisjonen omfatter en angivelse av et antall noder (110, 120, 310, 320, 325, 340, 410, 1005, 1010, 1020, 1025, 1026, 1030, 1031A, 1031B, 1033, 1034A, 1034B, 1035, 1040, 1041 A, 1041B, 1043, 1044A, 1044B, 1045, 1050A, 1050B, 1050C, 1105, 1905,2010, 2020, 2030A, 2030B, 2030C, 2205, 2210, 2220-2222, 2230, 2235, 2240, 2245, 2250) som representerer del-elementer (910, 920, 925, 926, 930, 935, 940, 945, 950, 951, 955, 956, 960, 2110) av det sammensatte brukergrensesnittelementet, hierarkiske sammenhenger mellom antallet av nodene og en angivelse at minst én node av antallet av noder er en selektivt eksponerbar node idet en selektivt eksponerbar node er en node, som ikke er eksponert i en forenklet visning (200, 400,1100, 2050) til den hierarkiske representasjon til det sammensatte brukergrensesnittelement; å opprette (720) en forekomst av det sammensatte brukergrensesnittelement ved å kalle opp (520) definisjonen av det sammensatte brukergrensesnitt-element, og å tilveiebringe en forenklet visning (200, 400, 1100, 2050) av den hierarkiske representasjon av det sammensatte brukergrensesnittelement som eksponerer alle noder av antallet av nodene og deres hierarkiske sammenhenger, unntatt nodene angitt som selektivt eksponerbare noder, som ikke er eksponert.
2. Fremgangsmåte ifølge krav 1, hvor det sammensatte brukergrensesnittelement omfatter en kombinasjonsboks.
3. Fremgangsmåte ifølge krav 1, hvor noder angis som selektivt eksponerbare ved riktig utpeking av egenskaper for den minst ene selektivt eksponerbare noden selv, mor-noden til den minst ene selektivt eksponerbare noden, eller en forgjengernode til den minst ene selektivt eksponerbare noden.
4. Fremgangsmåte ifølge krav 1, hvor når én av de selektivt eksponerbare noder blir utpekt som en innkapslende beholder, blir dens barn eksponert i den forenklete visningen som barn til en forgjengernode til den innkapslende beholder og det å legge til (1710) en datternode til forgjengernoden i den forenklede visningen i praksis legger til (1730) datternoden til den innkapslende beholder i den hierarkiske presentasjonen av det sammensatte brukergrensesnittelementet.
5. Fremgangsmåte ifølge krav 1, hvor den minst ene selektivt eksponerbare node er en av et antall noder som omfatter et brukergrensesnittelement nestet innenfor det sammensatte brukergrensesnittelementet.
6. Fremgangsmåte ifølge krav 1, hvor den minst ene selektivt eksponerbare node er en av antall noder som representerer det sammensatte brukergrensesnittelementet; nodene som representerer brukergrensesnittelementet omfatter minst én node som ikke er definert som selektivt eksponerbar innenfor definisjonen av den hierarkiske representasjonen av det sammensatte brukergrensesnittelementet; nodene som representerer det sammensatte brukergrensesnittelementet blir nestet innenfor et andre sammensatte brukergrensesnittelement; og det andre sammensatte brukergrensesnittelement innbefatter en angivelse at de noder som representerer det sammensatte brukergrensesnittelementet er utpekt som selektivt eksponerbare; det å behandle den node som er utpekt som ikke selektivt eksponerbar som ikke selektivt eksponerbar når det henvises til denne via en av de noder som representerer det sammensatte brukergrensesnittelementet; og ellers å behandle de noder som er utpekt som ikke selektivt eksponerbare som selektivt eksponerbare.
7. Fremgangsmåte ifølge krav 1, hvor noden som er utpekt som selektivt eksponerbar er en brukergrensesnittelementgenerator som kan operere for å tilveiebringe data fra en datakilde for generering av et antall noder nedenfor noden i den hierarkiske representasjon.
8. Fremgangsmåte ifølge krav 7, hvor dataene stammer fra en database.
9. Fremgangsmåte ifølge krav 7, hvor antallet noder nedenfor noden er listeelementer.
10. Fremgangsmåten ifølge krav 1, som videre omfatter: å motta (810) en anmodning om å utføre en operasjon på den hierarkiske representasjonen av det sammensatte brukergrensesnittelement; og å utføre (530, 820) operasjonen på den forenklete visningen av den hierarkiske representasjonen.
11. Fremgangsmåte ifølge krav 10, hvor et passende del-sett av nodene utgjør et brukergrensesnittelement innenfor det sammensatte brukergrensesnittelementet.
12. Fremgangsmåte ifølge krav 10, hvor operasjonen blir utført ved å utelate den minst ene noden i hierarkiet som er utpekt som selektivt eksponerbare i den forenklede visningen.
13. Fremgangsmåte ifølge krav 10, hvor operasjonen er en anmodning om å utpeke datternoder for en node i representasjonen; og operasjonen blir utført på den forenklede visningen, hvorved minst én umiddelbar datter av noden ikke blir eksponert på den forenklede visningen.
14. Fremgangsmåte ifølge krav 10, hvor operasjonen er en anmodning om å fremskaffe en mor-node for en node i representasjonen; og operasjonen blir utført på den forenklede visningen, hvorved en umiddelbar foregående mor til noden ikke blir eksponert på den forenklede visningen.
15. Fremgangsmåte ifølge krav 10, hvor operasjonen er en anmodning om å tilføye en eller flere datternoder til en node i representasjonen; og operasjonen blir utført på den forenklede visningen, hvorved datternodene blir tilføyet en etterkommer av noden.
16. Fremgangsmåte ifølge krav 10, hvor operasjonen er en anmodning om å tilveiebringe egenskaper for en node; og egenskaper til minst én selektivt eksponert forgjengernode for noden blir ignorert.
17. Fremgangsmåte ifølge krav 10, hvor operasjonen er en anmodning om å tilveiebringe egenskaper for en node; og egenskaper for minst én selektivt eksponert forgjenger-node for noden blir selektivt ignorert eller vurdert på bakgrunn av egenskapen.
18. Fremgangsmåte ifølge krav 10, hvor: operasjonen er en anmodning om å tilveiebringe egenskaper for en node; og egenskapsregler for minst én selektivt eksponert forgjenger-node til noden blir ignorert.
19. Fremgangsmåte ifølge krav 10, hvor: operasjonen er en anmodning om å tilveiebringe egenskaper for en node; og regler for minst én selektivt eksponert forgjenger-node for noden blir selektivt ignorert eller vurdert basert på egenskapen.
20. Fremgangsmåte ifølge krav 1, som videre omfatter automatisk generering av del-elementer for et sammensatt brukergrensesnittelement, ved å innføre en brukergrensesnittelementgenerator i en datastruktur som representerer det sammensatte brukergrensesnittelementet; å knytte brukergrensesnittelementgeneratoren til en datakilde; og å generere brukergrensesnittelementer ved å anvende datakilden; hvor brukergrensesnittelementgeneratoren er selektivt eksponerbar i den forenklede visningen av den hierarkiske representasjonen til det sammensatte brukergrensesnittelementet.
21. Datamaskinlesbart medium, som omfatter datamaskinutførbare instruksjoner for utførelse av fremgangsmåten ifølge et av kravene 1 til 20.
22. Datamaskinsystem, som omfatter midler innrettet for utførelse av frem-gangsmåtetrinnene ifølge et av kravene 1 til 20.
NO20031008A 2002-12-18 2003-03-04 Forenklet representasjonsbilde av brukergrensesnitt-elementer NO327715B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/323,504 US7337401B2 (en) 2002-12-18 2002-12-18 User interface element representation with simplified view

Publications (3)

Publication Number Publication Date
NO20031008D0 NO20031008D0 (no) 2003-03-04
NO20031008L NO20031008L (no) 2004-06-21
NO327715B1 true NO327715B1 (no) 2009-09-14

Family

ID=23259480

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20031008A NO327715B1 (no) 2002-12-18 2003-03-04 Forenklet representasjonsbilde av brukergrensesnitt-elementer

Country Status (14)

Country Link
US (1) US7337401B2 (no)
EP (1) EP1435567A3 (no)
JP (1) JP4694107B2 (no)
KR (1) KR100863125B1 (no)
CN (1) CN100351822C (no)
AU (1) AU2003200656B2 (no)
BR (1) BR0300828A (no)
CA (1) CA2422417C (no)
MX (1) MXPA03009824A (no)
MY (1) MY140453A (no)
NO (1) NO327715B1 (no)
RU (2) RU2314559C2 (no)
TW (1) TWI221990B (no)
ZA (1) ZA200301626B (no)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949957B2 (en) * 2002-12-31 2011-05-24 International Business Machines Corporation Edit selection control
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7707255B2 (en) * 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US8799808B2 (en) 2003-07-01 2014-08-05 Microsoft Corporation Adaptive multi-line view user interface
US9864610B2 (en) * 2004-02-03 2018-01-09 Versata Fz-Llc Method and apparatus for composite user interface creation
US7913177B1 (en) * 2004-03-08 2011-03-22 Adobe Systems Incorporated System and method for managing instantiation of interface elements in rich internet applications
US7860838B2 (en) * 2004-06-04 2010-12-28 Hewlett-Packard Development Company, L.P. Dynamic hierarchical data structure tree building and state propagation using common information model
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US7895531B2 (en) 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US7574677B2 (en) * 2004-09-13 2009-08-11 Sap Ag System and method for a transparent record
US7523129B1 (en) * 2004-09-15 2009-04-21 Microsoft Corporation Data-binding enhancements
US7747966B2 (en) 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US7543278B2 (en) * 2004-10-15 2009-06-02 Microsoft Corporation System and method for making a user interface element visible
US8713063B2 (en) * 2005-01-13 2014-04-29 International Business Machines Corporation Method and system for automatically hiding irrelevant parts of hierarchical structures in computer user interfaces
US7886290B2 (en) 2005-06-16 2011-02-08 Microsoft Corporation Cross version and cross product user interface
KR100774874B1 (ko) * 2005-07-30 2007-11-08 엘지전자 주식회사 플라즈마 표시장치와 그 구동방법
US8239882B2 (en) 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US8689137B2 (en) 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US9542667B2 (en) 2005-09-09 2017-01-10 Microsoft Technology Licensing, Llc Navigating messages within a thread
US20070061745A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Nested views in an electronic file system
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US8605090B2 (en) 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US20070288854A1 (en) * 2006-06-13 2007-12-13 Nokia Corporation Reusable XForms processor
KR100879983B1 (ko) * 2006-09-01 2009-01-23 삼성전자주식회사 Htc를 이용한 독립 컴포넌트 제공 시스템 및 독립컴포넌트를 이용한 이벤트 처리 방법
KR101288970B1 (ko) * 2006-11-28 2013-07-24 삼성전자주식회사 렌더링 장치 및 방법
CN100504771C (zh) * 2007-06-08 2009-06-24 腾讯科技(深圳)有限公司 一种生成应用程序界面的方法及系统
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8782555B2 (en) 2007-08-30 2014-07-15 Microsoft Corporation Nested user interfaces for multiple displays
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8402096B2 (en) 2008-06-24 2013-03-19 Microsoft Corporation Automatic conversation techniques
EP2308048A1 (en) * 2008-07-23 2011-04-13 Koninklijke Philips Electronics N.V. Displaying music metadata in a plurality of hierarchical levels
WO2010107476A1 (en) * 2009-03-19 2010-09-23 Duke University Inhibiting gsnor
US8799353B2 (en) 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
US8302014B2 (en) 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
CN102479212B (zh) * 2010-11-30 2016-06-22 国际商业机器公司 识别网页上键盘不可访问节点的方法以及装置
EP3040946B1 (en) * 2014-12-30 2019-11-13 Dassault Systèmes Viewpoint selection in the rendering of a set of objects
CN104503769B (zh) * 2015-01-07 2017-06-20 山东鲁能智能技术有限公司 一种基于xml配置文件的字符点阵液晶界面实现方法
US9685142B2 (en) * 2015-11-03 2017-06-20 International Business Machines Corporation Obtaining and displaying relationships between elements
CN107454478B (zh) * 2017-08-01 2020-06-16 武汉斗鱼网络科技有限公司 网络直播客户端中弹幕输入框卡顿处理方法及系统
US11550601B2 (en) 2018-06-03 2023-01-10 Apple Inc. Framework providing application programming interface for user interfaces and animation
CN110516205B (zh) * 2019-07-19 2023-04-07 平安科技(深圳)有限公司 数据结构图的展示方法、装置、计算机设备及存储介质
CN113064971A (zh) * 2021-04-12 2021-07-02 苏州城方信息技术有限公司 一种基于交互式图结构的政策文本关系的挖掘与表达方法
CN113885766B (zh) * 2021-09-24 2024-02-09 远光软件股份有限公司 组织架构图的展示方法、装置、存储介质及终端设备
CN113849247B (zh) * 2021-09-26 2024-04-30 上海哔哩哔哩科技有限公司 直播间页面元素的显示方法、装置及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0529121A1 (en) * 1991-08-24 1993-03-03 International Business Machines Corporation Graphics display tool
JP2525546B2 (ja) * 1992-09-08 1996-08-21 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックリソ―ス・エディタ
EP0603425A1 (en) * 1992-12-22 1994-06-29 International Business Machines Corporation Representation of n-ary trees
US5588099A (en) 1994-09-01 1996-12-24 Microsoft Corporation Method and system for automatically resizing tables
US5649222A (en) 1995-05-08 1997-07-15 Microsoft Corporation Method for background spell checking a word processing document
US5860073A (en) 1995-07-17 1999-01-12 Microsoft Corporation Style sheets for publishing system
JPH10124280A (ja) * 1996-10-22 1998-05-15 Toshiba Corp ウィンドウシステムにおける表示方法
US6128016A (en) * 1996-12-20 2000-10-03 Nec Corporation Graphic user interface for managing a server system
JP3760580B2 (ja) * 1997-07-25 2006-03-29 富士ゼロックス株式会社 階層構造表示装置及び階層構造表示方法
US5953724A (en) * 1997-11-24 1999-09-14 Lowry Software, Incorporated Global database library data structure for hierarchical graphical listing computer software
US6061679A (en) 1997-11-25 2000-05-09 International Business Machines Corporation Creating and searching a data structure ordered by ranges of key masks associated with the data structure
US6029170A (en) 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6249284B1 (en) 1998-04-01 2001-06-19 Microsoft Corporation Directional navigation system in layout managers
US6169546B1 (en) 1998-04-01 2001-01-02 Microsoft Corporation Global viewer scrolling system
US6169984B1 (en) 1998-04-01 2001-01-02 Microsoft Corporation Global incremental type search navigation directly from printable keyboard character input
US6285366B1 (en) * 1998-06-30 2001-09-04 Sun Microsystems, Inc. Hierarchy navigation system
US6108698A (en) * 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
JP2000259303A (ja) * 1999-03-05 2000-09-22 Hitachi Information Systems Ltd データ表示装置およびデータ表示方法ならびに該方法を記録した記録媒体
US6381605B1 (en) 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6671853B1 (en) 1999-07-15 2003-12-30 International Business Machines Corporation Method and system for selectively streaming markup language documents
US7039863B1 (en) 1999-07-23 2006-05-02 Adobe Systems Incorporated Computer generation of documents using layout elements and content elements
US6662342B1 (en) 1999-12-13 2003-12-09 International Business Machines Corporation Method, system, and program for providing access to objects in a document
US6775678B1 (en) 2000-04-11 2004-08-10 Microsoft Corporation Data structure and method of storing a digital document
US6883137B1 (en) 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents
ATE297571T1 (de) 2000-05-16 2005-06-15 Garrett O'carroll System und verfahren zur dokumentverarbeitung
GB2363044A (en) * 2000-05-16 2001-12-05 Ibm Method and computer system for selecting and displaying graphic objects
KR100694238B1 (ko) * 2000-09-28 2007-03-14 가부시키가이샤 리코 구조편집방법, 영상구조편집방법, 오브젝트의 내용구조관리방법, 오브젝트의 내용구조표시방법, 컨텐츠관리방법 및 기록매체
JP4405146B2 (ja) 2000-10-17 2010-01-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Mpeg−7インスタンス用の二進フォーマット
US6732109B2 (en) 2001-01-31 2004-05-04 The Eon Company Method and system for transferring information between a user interface and a database over a global information network
US6910040B2 (en) 2002-04-12 2005-06-21 Microsoft Corporation System and method for XML based content management

Also Published As

Publication number Publication date
NO20031008L (no) 2004-06-21
EP1435567A2 (en) 2004-07-07
MXPA03009824A (es) 2004-06-30
RU2383918C2 (ru) 2010-03-10
CA2422417C (en) 2011-06-28
TWI221990B (en) 2004-10-11
ZA200301626B (en) 2004-02-26
EP1435567A3 (en) 2008-02-13
US20040122789A1 (en) 2004-06-24
CA2422417A1 (en) 2004-06-18
BR0300828A (pt) 2004-08-17
AU2003200656B2 (en) 2010-09-16
MY140453A (en) 2009-12-31
KR100863125B1 (ko) 2008-10-15
CN100351822C (zh) 2007-11-28
RU2007115294A (ru) 2008-10-27
JP4694107B2 (ja) 2011-06-08
JP2004206668A (ja) 2004-07-22
TW200411419A (en) 2004-07-01
US7337401B2 (en) 2008-02-26
NO20031008D0 (no) 2003-03-04
KR20040054465A (ko) 2004-06-25
RU2314559C2 (ru) 2008-01-10
AU2003200656A1 (en) 2004-07-08
CN1508704A (zh) 2004-06-30

Similar Documents

Publication Publication Date Title
NO327715B1 (no) Forenklet representasjonsbilde av brukergrensesnitt-elementer
Fox The R commander: a basic-statistics graphical user interface to R
RU2365978C2 (ru) Интерфейс программирования для компьютерной платформы
US5991534A (en) Method and apparatus for editing a software component
US8166396B2 (en) User interface rendering
US20090183072A1 (en) Embedded user assistance for software applications
US7305629B2 (en) Consolidation of computer documentation
Gregory Using Visual C++ 6
US20060107220A1 (en) Method and system for displaying an annotated file
Newsome Beginning Visual Basic 2012
Silva Practical eclipse rich client platform projects
JP2006163855A (ja) Webアプリケーション開発支援装置及び開発支援方法
Toffoli The Definitive Guide to IReport
Sunderaraman Practical Ext JS 4
Davis Visual Basic 6 Secrets
Harmon Dojo: Using the Dojo JavaScript Library to Build Ajax Applications
Ashley et al. Dialogs
Cameron et al. Pro ASP. NET 3.5 Server Controls and AJAX Components
Slender Developing with ext GWT: Enterprise RIA development
Whealy Inside web Dynpro for java
Ding A design tool for object-oriented development
WO2021051013A1 (en) Automated api generation
Mueller et al. Visual C♯. NET Developer's Handbook
Kann III Programming for the Web: From Soup to Nuts: Implementing a complete GIS web page using HTML5, CSS, JavaScript, Node. js, MongoDB, and Open Layers.
Anderson Building Data Entry Forms

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees