Tapahtumat. Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi.



Samankaltaiset tiedostot
Riikka Marttinen, Helsingin Tikoteekki, Windows 7:n helppokäyttötoiminnot

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04

Luku 7 Uusien Mallien Tiedostot

Helppokäyttöisyyttä Windows Vista käyttöjärjestelmän asetuksilla

Hiirisanomiin vastaaminen. 2007

5 Näppäimistö. 5.1 Näppäimistön eventit

Ohjelman Suositukset. Luku 5 Suositukset

Lupa opetuskäyttöön pyydettävä. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö

Interaktiivinen käyttöliittymä. 2008

Windows 10 käyttöjärjestelmän helppokäyttötoiminnot ja asetukset

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

Käyttöjärjestelmät: prosessit

McAfee VirusScan Enterprice asennus

BaseMidlet. KÄYTTÖOHJE v. 1.00

Windows Vista KÄYTÖN PERUSTEET

WinOodin käyttö VDI-ympäristössä

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

Petri Ilmonen. Internet selkokielellä

Copyright 2017 HP Development Company, L.P.

K ä y t t ö j ä r j e s t e l m ä s e l k o k i e l e l l ä WINDOWS MICROSOFT. Petri Ilmonen ja Juha Hällfors. -sarja

Windows 10 -käyttöohje

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Harjoitus Morphing. Ilmeiden luonti

Share-työkalu (AC 9.1)

Osio 4: Graafinen käyttöliittymä

E s i t y s g r a f i i k k a a s e l k o k i e l e l l ä MICROSOFT. PowerPoint. P e t r i V a i n i o P e t r i I l m o n e n TIKAS-SARJA

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet

AMIS-ohjelman käyttöohjeet

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

CEM DT-3353 Pihtimittari

Algoritmit 1. Luento 4 Ke Timo Männikkö

Japanin kirjoittaminen Japanese IME:n avulla Windows 7 -käyttöjärjestelmässä

Syöttölaitteiden historia

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

KJK. Windows 7 KÄYTÖN PERUSTEET. Kari J Keinonen

Applen käyttöjärjestelmät

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

VÄESTÖKARTTOJA PAIKKATIETOIKKUNASSA. Matias Järvinen 2019

Kirjausohjelman käyttöohje 3.01

ATK-taitojen päivitys luento 1. Maaningan seurakunta Hannu Räisänen 2013

Microsoft Security Essentials (MSE) asennuspaketin lataaminen verkosta

Jos haluat uuden Share-työkalun, valitse Pods -> Share -> Add New Share tai jos sinulla on jo auki Share-työkalu, näyttää se tältä:

KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA

Gimp perusteet. Riitta, Jouko ja Heikki

Kehittyneet ominaisuudet

Harjoitus Particle View

Uutiskirjesovelluksen käyttöohje

Käyttöliittymän paperiprototyyppi. Koordinaattieditori

Aloittaminen: Miten e-kirja lainataan?

NETIKKA PCTV KÄYTTÖOHJE

Harjoitus 3 Antti Hartikainen

Rämpytysralli. Pelikehys sisältää GameObject luokan, Scene luokan, SceneManager luokan, InputListener luokan, StaticImage luokan

Ubuntu - peruskäyttö. Seuraavassa läpikäydään Ubuntun peruskäyttöä:

Taulukkolaskentaa selkokielellä EXCEL

3.2 Työstöratojen luonti

SYMBIANIN SERIES 60 JA PUHELIMEN PERUSTOIMINNOT

Windows 8 -kurssi. Kurssista

Tukipyyntö-toiminnon ohje

GIS-ANALYYSI PAIKKATIETOIKKUNASSA. Matias Järvinen 2019

Ennen kuin aloitat lataamisen tarkista järjestelmävaatimukset:

Finnfoam tuotekirjaston asennusohje. Asennus ja rekisteröintiohje

OSI ja Protokollapino

Muistitikun liittäminen tietokoneeseen

HRTM58. Windows 10 Resurssienhallinta

OP-eTraderin käyttöopas

HP ProBook 430 G5 kannettavien käyttöönotto

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Konfiguraatiotyökalun päivitys

Keskellä ruutua kuvan yläpuolella linkki on call diabeteksen hallintaohjelmisto. Klikkaa sitä

Adobe Meeting podien käyttö

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

Eclipse & WindowBuilder

Selkosanakirja sdfghjklöäzxcvbnmqwertyuiopåasdfghjklöäzxcvbnmq. Tietokoneet. wertyuiopåasdfghjklöäzxcvbnmqwertyuiopåasdfghjk 1.4.

Harjoitus Bones ja Skin

Hälyri-tietojärjestelmän järjestelmätestaussuunnitelma ja -raporttimalli

GPRS-lisäpalvelu INTERNET-ASETUKSET

Käyttöliittymän muokkaus

Käytön aloittaminen NSZ-GS7. Verkkomediasoitin. Näyttökuvia, toimintoja ja teknisiä ominaisuuksia voidaan muuttua ilman erillistä ilmoitusta.

12. Javan toistorakenteet 12.1

Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

Graafisen käyttöliittymän ohjelmointi

Action Request System

ATK yrittäjän työvälineenä

PELAAJAPROFIILI Mobiilisovellus

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

Asennus Windows 2000 ja XP -käyttöjärjestelmiin

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

12. Javan toistorakenteet 12.1

Gimp+Karttapaikan 1: => 1: Pika ohje versio

Luokka- ja oliokaaviot

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA

EXCEL Perusteet FIN WISTEC TRAINING OY ITÄMERENKATU 1, HELSINKI PUH (MA-PE KLO 9-17)

Nero 7:n Windows Vista TM -tuki

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Ensin klikkaa käynnistä-valikkoa ja sieltä Kaikki ohjelmat valikosta kaikki ohjelmat

MeetNow-palvelun käyttöopas

Paikkatieto-ohjelmistot maataloudessa

Transkriptio:

Tapahtumat Johdanto Ikkunointi Ikkunatapahtumat Päätapahtumasilmukka Tapahtumien käsittely Olioiden välinen kommunikointi Petri Vuorimaa 1

Johdanto Tapahtumien käsittely muodostaa vuorovaikutteisen käyttöliittymän ytimen Se huolehtii käyttöliittymän elementtien ja syöttölaitteiden välisestä kommunikoinnista Yleensä tapahtumien käsittely on toteutettu ikkunointijärjestelmän avulla Sovellukset kommunikoivat ikkunointijärjestelmän kanssa tapahtumien avulla Petri Vuorimaa 2

Ikkunointi Graaffiset käyttöjärjestelmät mahdollistavat usean sovelluksen yhtä aikaisen suoritukset Ikkunointijärjestelmä koordinoi koko järjestelmän toimintaa Ikkunointijärjestelmä tarjoaa sovelluksille mahdollisuuden käyttöliittymän toteuttamiseen Käyttäjälle ikkunointijärjestelmä mahdollistaa ikkunoiden paikan ja koon määrittämisen Petri Vuorimaa 3

Ohjelmistonäkökulma Yhden ikkunan sisältö voidaan esittää puuna Rakenne koostuu sisäkkäistä suorakuutioista (kuva 4-1) Petri Vuorimaa 4

Display Screen Macintosh HD window Title bar Horizontal scroll bar Vertical scroll bar Folder contents area System Folder Folder WordNet file Research folder Desktop Folder folder TOG folder Plan folder Grow box Classes window Similar tree

Juuri-ikkunat Puiden juuria kutsutaan juuri-ikkunoiksi Jokaisella sovelluksella on oma juuri-ikkunansa Object Linking and Embedding (OLE) mahdollistaa kuitenkin sovellusten sijoittamisen toisten sovellusten sisään Petri Vuorimaa 6

Ohjaus Vierityspalkkeja ym. kutsutaan kontrollielementeiksi Syöttökentistä, painonapeista, vierityspalkeista ym. käytetään myös nimitystä Widget Petri Vuorimaa 7

Ikkunamanagerit Ikkunoinen sijoittelusta, ohjauksesta ym. vastaa ns. ikkunamanageri Ikkunamanageri vastaa tavallaan työpöydän siistinä pitämisestä Yleensä käyttöjärjestelmissä on tarkoin määritelty ja standardoitu ikkunamanageri Petri Vuorimaa 8

Ikkunatapahtumat Käyttäjän syöttölaitteilla tekemät operaatiot muutetaan ohjelmistotapahtumiksi Tapahtumat välitetään aktiivisena olevalla ikkunalle Jokaisella tapahtumalla on tietty tyyppi Lisäksi tapahtuma sisältää tiedon esim. hiiren sijainnista tai painetusta näppäimestä Myös ikkuna, jolle tapahtuma on tarkoitettu, on ilmoitettava Petri Vuorimaa 9

Ikkunatapahtumien jaottelu Ikkunatapahtumat voidaan jakaa: + syöttötapahtumiin + ikkunointitapahtumiin + uudelleenpiirtoon Petri Vuorimaa 10

Syöttötapahtumat Hiiren näppäimet Muokkaajat (Modifiers) Tuplaklikkaus Hiiren liikkeet Hiiri esiin ja pois Näppäimistö Petri Vuorimaa 11

Hiiren näppäimet Hiiri on nykyään tärkein vuorovaikutusväline Yleisin toiminto on osoita-ja-klikkaa Sovelluksen on varmistettava, että hiiri on oikella alueella näppäimen painamisen aikana Erikseen tapahtumat näppäin-alas ja näppäin-ylös Syynä hiiren mahdollinen liikkuminen näppäimen painamisen aikana Petri Vuorimaa 12

Muokkaajat (Modifiers) Hiiren näppäimiä on yleensä vain 2-3, mutta eri toimintoja on enemmän Harvinaisemmat toiminnot saadaan aikaiseksi käyttämällä varsinaisen näppäimistön muokkaaja-näppäimiä + Shitf, Control, Alt, Meta Näiden näppäimien painallukset voidaan välittää erillisinä tapahtumina Yleensä ne kuitenkin välitetään muiden tapahtumien yhteydessä esim. lippuina + Control-Alt-Shift-MiddleButton_up Petri Vuorimaa 13

Tuplaklikkaus Alkuperäisessä Macintosh-tietokoneessa oli vain yksi hiiren näppäin sekä Shift- ja Commandnäppäimet Koska nämä eivät riitä kaikkien toimintojen määrittelemiseen, kehitettiin tuplaklikkaus Tuplaklikkaus on oma erillinen tapahtuma + esim. Windows-käyttöjärjestelmässä on tuplaklikkaus erikseen jokaiselle hiiren näppäimelle Petri Vuorimaa 14

Hiiren liikkeet Ensimmäisissä ikkunointijärjestelmissä sovellukset seurasivat tarvittaessa hiiren liikkeitä jatkuvasti Tämä vei kuitenkin ylimääräistä laskentateho + Normaalisi syöttötietoa tarvitaa 1/5 sekunnin välein + Hiiren liikkeitä pitää kuitenkin seurata 1/60 sekunnin välein Nykyään käyttöjärjestelmä generoi tapahtuman jokaisesta hiiren liikkeestä + Hiiren liikuttaminen hidastaa siis merkittävästi tietokoneen toimintaa + Jos hiirtä ei liikuteta, ylimääräistä kuormitusta ei kuitenkaan ole Petri Vuorimaa 15

Hiiri-esiin ja -pois Hiiri-esiin ja -pois -tapahtumia käytetään, kun hiiri tulee tietyn ikkunan alueelle tai poistuu siltä Näiden tapahtumien avulla ikkuna/sovellus tietää, koska käyttäjän toimenpiteet pitää huomioida Esim. käyttäjä painaa ikkunan painonappia, mutta poistuu ikkunan alueelta, kun näppäin on painettuna Petri Vuorimaa 16

Näppäimistö Näppäimistön tapahtumat eivät ole niin yksinkertaisia kuin luulisi + eri maissa erilaiset näppäimistöt + näppäimeimet toimivat yhdessä (Shift, Alt, Control ym.) + näppäimiä voidaan painaa yhdessä (esim. pianon soitto, pelit) + oikotie (Shortcut) -näppäimet Yleensä jokaisesta näppäimistön tilan muutoksesta lähetetään ns. skannauskoodi (scan code) Ikkunointijärjestelmä muuntamaa nämä raakatapahtumat abstraktimpaan muotoon Petri Vuorimaa 17

Ikkunointitapahtumat Ikkunointijärjestelmä luo myös itse tapahtumia: + ikkunan luonti ja tuhoaminen + ikkunan avaaminen tai sulkeminen Myös ikkunan koon muuttuminen on tärkeä tapahtuma Petri Vuorimaa 18

Uudelleenpiirto Ikkunoiden sisällön päivitys toteutetaan uudelleenpiirto-tapahtumalla Tapahtuma kertoo, myös päivitettävän alueen, jolloin päivitys on nopeampaa Ikkunaan voi piirtää vain uudelleenpiirtotapahtuman tullessa Sovellus ei siis piirrä silloin kuin se haluaa vaan silloin kun ikkunointijärjestelmä niin määrää! Petri Vuorimaa 19

Päätapahtumasilmukka Tapahtumien käsittelyyn pohjaustuva ohjelma eroaa hyvin paljon normaalista ohjelmasta Päärutiini on yleensä hyvin yksinkertainen Initialization while (not time to quit) { Get Next Event E Dispatch Event E } Petri Vuorimaa 20

Alustus Alustus-vaiheessa: + määritetään sovelluksen ikkunat + ladataan data + asetetaan tarvittavat asiat Varsinaiset ikkunat tulevat näkyviin vasta kun uudelleenpiirto-tapahtuma saapuu Petri Vuorimaa 21

Tapahtumajonot Käyttäjän ym. tapahtumat asetataan yleensä tapahtumajonoon Tapahtumat käsitellään yksi kerrallaan jonosta Aina jonoja ei käytetä, vaan tapahtumat lähetetään suoraan käsiteltäväksi Päätapahtumasilmukka vastaa kuitenkin aina tapahtumien käsittelystä Petri Vuorimaa 22

Tapahtumien suodatus Kaikkia tapahtumia ei tarvitse käsitellä + esim. Shift, Ctrl ym. näppäimet Initialization while (not time to quit) { Get Next Event E If (not FilteredEvent(E)) { Dispatch Event E } Petri Vuorimaa 23

Tapahtumien maskaus Sovellusten ei suinkaan tarvitse tietää kaikkia tapahtumia + esim. hiiren tarkat liikkeet Sovellus voi usein kertoa päätapahtumasilmukalle mitkä tapahtumat voi maskata Maskauksen voi tehdä joko sovellus tai ikkuna kohtaisesti Petri Vuorimaa 24

Sovelluksen lopettaminen Alussa käytettiin erityistä lippua, joka kertoi kuinka kauan sovellus on toiminnassa Nykyään käytetään erityistä lopetus-tapahtumaa, joka välitetään kaikille sovelluksen ikkunoille Näin kaikki tarvittavat lopetustoimenpiteet saadaan tehtyä Vasta tämän jälkeen asetetaan lopetuslippu ja päätapahtumasilmukka päätetään Petri Vuorimaa 25

Tapahtumien käsittely Tapahtumat voidaan välittää esim. alimmalla tasolla päälimmäisenä olevalla ali-ikkunalle + Bottom-First (kuvat 4-12 ja 4-13) Petri Vuorimaa 26

Tapahtumien käsittely (jatk.) Toinen vaihtoehto on välittää tapahtumat aina ylimmällä tasolla olevalle ikkunalle + Top-Down Ylin ikkuna välittää tapahtumat edelleen aliikkunoille Näin sovellus voi itse vaikuttaa tapahtumien käsittelyyn Petri Vuorimaa 27

Näppäimistötapahtumat Näppäimistötapahtumat voidaan välittää esim. hiiren osoittamalle ikkunalle Toinen vaihtoehto on klikkaa ja kirjoita, jossa ikkuna on ensin aktivoitava hiirellä Tässä vaihtoehdossa ikkuna voi erikseen pyytää näppäimistö-fokuksen (key focus) Jossakin ikkunointijärjestelmissä aktiivista ikkunaan voi myös vaihtaa erikoisnäppäimillä Petri Vuorimaa 28

Hiirifokus Ali-ikkunat voivat mahdollisesti pyytää myös hiirifokusta ikkunointijärjestelmältä Tällöin ei haittaa vaikka hiiri liikkuisi välillä aliikkunan ulkopuolella Kätevä esim. vierityspalkkien yhteydessä Petri Vuorimaa 29

Olioiden välinen kommunikointi Myös ali-ikkunoiden välinen kommunikointi voidaan hoitaa ns. pseudotapahtumien avulla (kuva 4-15) Petri Vuorimaa 30

Kommunikointitavat Yksinkertainen takaisinsoitto Ilmoitus vanhemmalle Yhteysmalli Petri Vuorimaa 31

Yksinkertainen takaisinsoitto Jokainen widgetti luo joukon takaisinsoittorutiineja, joilla widgetin tilaa voidaan muuttaa Rutiinit rekisteröidään erilliseen listaan Sovelluksen sisällä widgetit voivat muuttaa toistensa tilaa listan avulla Ongelmana on, että eri liitoksia ei hallita mitenkään Petri Vuorimaa 32

Ilmoitus vanhemmalle Tässä mallissa ali-ikkuna ilmoittaa vanhemmalleen tärkeistä muutoksista Tämän jälkeen ylemmän tason ikkuna päättä ämiten ali-ikkunoiden tilaa muutetaan ja välittää tarvittavat tapahtumat niille Etuna on, että ohjauskoodi on selkeästi yhdessä paikassa Petri Vuorimaa 33

Yhteysmalli Tässä mallissa mikä tahansa oli voi suoraan kutsua toisen olion metodeja Hankala malli kahdesta syystä: + olion on tiedettävä mitä kutsuja pitää milloinkin käyttää + tiedot eri metodeista pitää välittää kaikille olioille Em. syistä tarvitaan erityistä tukea ohjelmointikieleltä + esim. JavaBeans Petri Vuorimaa 34