Kehittyneet ominaisuudet



Samankaltaiset tiedostot
Käyttöjärjestelmät: prosessit

Luento 5. Timo Savola. 28. huhtikuuta 2006

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Rajapinta (interface)

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

Olio-ohjelmointi Javalla

Hakemistojen sisällöt säilötään linkitetyille listalle.

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

QT tyylit. Juha Järvensivu 2008

Action Request System

Metodien tekeminen Javalla

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Gimp perusteet. Riitta, Jouko ja Heikki

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Tietorakenteet ja algoritmit

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

Versionhallinta MIKSI?

Muistitikun liittäminen tietokoneeseen

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

SMART Notebook -tuoteperhe

Luku 7 Uusien Mallien Tiedostot

Jypelin käyttöohjeet» Ruutukentän luominen

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

SiteAdmin.

Visma L7 Visma Sign. Sähköinen allekirjoittaminen L7:ssä

Pino S on abstrakti tietotyyppi, jolla on ainakin perusmetodit:

Kansionäkymä listasta suuriin kuvakkeisiin

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Ohjelmistoarkkitehtuurit. Kevät

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

U U D E T O M I N A I S U U D E T V E R S I O S T A V E R S I O O N

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

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

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

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

Android ohjelmointi Tunti 5. SQLite, Cursor, Intent ja ADB

Versiohallinta ja Subversion Maunu Tuomainen

Flash. Tehtävä 1 Piirtotyökalut, kokeile niitä. Liiketalous syksy 2012

FUNKTION KUVAAJAN PIIRTÄMINEN

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Tietotekniikan koulutus Savonlinnassa

Käyttö hiirellä. Keskipainike (rulla) Panoroi. Napsautus + veto. Näkymän keskittäminen. Kaksoisnapsautus. Pikavalikko. Työkalukäyttö.

Sisältö. 2. Taulukot. Yleistä. Yleistä

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

CQRS, -ES, PACS, DICOM, WTF?

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows 1.

ILMAINEN KARTTATIETO

Asiakashallinta. TaikaTapahtumat -käyttöohje

Visma Business AddOn Factoring-laskuaineisto. Käyttäjän käsikirja

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

PIKAOPAS NOKIA PC SUITE 4.3. Nokia puhelimelle. Copyright Nokia Mobile Phones Kaikki oikeudet pidätetään Issue 6

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Pika-aloitusopas. Haku Voit etsiä sivustoja, henkilöitä tai tiedostoja. Sivuston tai uutisviestin luominen

Fingridin säätösähkötarjousohje. Vaksin käyttöohjeet

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

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

A TIETORAKENTEET JA ALGORITMIT

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

Luokka- ja oliokaaviot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

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

HRTM58. Windows 10 Resurssienhallinta

Interaktiivinen käyttöliittymä. 2008

Versionhallinta MIKSI?

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Kuvien lisääminen ja käsittely

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

Luokat ja oliot. Ville Sundberg

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

Muuta pohjan väri [ ffffff ] valkoinen Näytä suuri risti

PÄIVITÄ TIETOSI OPTIMASTA! KOOSTE

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

SeaMonkey pikaopas - 1

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Teams-ohjelman asennus- ja käyttöohje vertaisohjaajille

EASY Tiedostopalvelin - mobiilin käyttöopas

13. Loogiset operaatiot 13.1

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Microsoft Outlook Web Access. Pikaohje sähköpostin peruskäyttöön

TermBase NET versio (Beta)

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Mikä yhteyssuhde on?

Hajautettu versionhallinta Gitillä

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Luento 3. Timo Savola. 7. huhtikuuta 2006

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

YH2: Office365 II, verkko-opiskelu

YH1b: Office365 II, verkko-opiskelu

Transkriptio:

Kehittyneet ominaisuudet Piirtoarkkitehtuurit Leikkaa, kopioi ja liitä Peru, jaetut sovellukset ja makrot Petri Vuorimaa 1

12. Piirtoarkkitehtuuri Petri Vuorimaa 2

12.1 Peruspiirtoliittymä Luo uusi kappale Valitse yksi tai useampi kappale Tuhoa kappale Muuta attribuutteja Muunna kappaleita Kokoa kappaleet ryhmäksi Petri Vuorimaa 3

12.2 Liityntäarkkitehtuuri Suoritettavat komennot Valittu kappalejoukko Piirto tai työskentely Kappalepaletti alue Attribuuttipaletti Peruspiirtokappaleet Petri Vuorimaa 4

Piirrosalue Mallin perusnäyttö Eri alue kuin kangas (canvas) + kangas on alla olevan grafiikkajärjestelmän näkymän liityntä Lista kappaleista takaa-eteen järjestyksessä Kappaleet kuuluvat abstraktiin luokkaan DrawObj Petri Vuorimaa 5

Malli-Näkymä-Kontrolleri DrawObj Drawing Malli DrawObjView DrawView Näkymä Kontrolleri Petri Vuorimaa 6

class Drawing: public Model List of DrawObj objs; List of DrawObj selectedset; void Select(DrawObj *selectedobj); void UnSelect(DrawObj *selectedobj); void UnSelectAll(); void AddObj(DrawObj newobj); void DeleteSelected(); void SelectedToFront(); void SelectedToBack(); void ChangeObj(DrawObj *Obj); Petri Vuorimaa 7

class DrawObj ObjTypeId ObjectType(); DrawObj Copy(); void *GetAttribute(Id attributeid); void SetAttribute(Id attributeid, void * attributevalue); boolean isselected; Petri Vuorimaa 8

class LineObj: public DrawObj ObjTypeId objecttype() { return LINE_TYPE;} Point startpoint, endpoint; int thickness; RGB color; void *GetAttribute(Id attributeid); void SetAttribute(Id attributeid, void * attributevalue); Petri Vuorimaa 9

Class DrawObjView DrawObj *mymodelobj; void Redraw(Region DamegRegion); Rect BoundingRect(); int Ncontrols(); Point GetControl(int pointidx); void SetControl(int pointidx, Point newpoint); void StartControlDrag(int pointidx, Point selectionpoint); void MoveControl (int pointidx, Point movepoint); void EndControlDrag(int pointidx, Point endpoint); Petri Vuorimaa 10

Class DrawObjView void StartCreationEcho(Point downpoint); void MoveCreationEcho(Point movepoint); void SetCreationPoint(Point newpoint); boolean LastCreationPoint(Point newpoint); boolean IsHit(Point selectionpoint); void StartObjDrag(Point selectionpoint); void MoveObj(Point movepoint); void EndObjDrag(Point endpoint); Petri Vuorimaa 11

Mallinäkymien sitominen Jokaista kappaletta kohden pitää olla malli Näkymä per kappale vie paljon tilaa Tyyppinäkymä-taulu on parempi vaihtoehto Tyyppinäkymä-taulu on indeksoitu (ObjTypeId) ja palauttaa DrawObjView Petri Vuorimaa 12

Mallinäkymien sitominen (jatk.) DrawObjView *DrawView:: GetObjView(DrawObj *modelobj); DrawObj DrawObjView Drawing DrawView Petri Vuorimaa 13

Palettiarkkitehtuuri Kolme peruspalettia + kappaleet + attribuutit + toimenpieet Jokaisella paletilla on oma malli-näkymäkontrolleri Petri Vuorimaa 14

Kappalepaletti Petri Vuorimaa 15

Attribuuttipaletti 1. 1. Ikoni on on aktivoitu, kun vähintään yhdellä kappaleella on on kyseinen attribuutti 2. 2. Ikoni on on merkitty, kun kaikilla kappaleilla on on sama attribuutin arvo 3. 3. Kaikkien attribuuttien arvot asetetaan, kun käyttäjä valitsee aktiivisen ikonin Petri Vuorimaa 16

Arkkitehtuurin yhteenveto Arkkitehtuuri: piirtomalli, piirtonäkymä ja paletit Piirtomalli: lista kappaleista ja valituista kappaleista DrawObj: liittymä kappaleiden ja muun arkkitehtuurin välillä DrawView: toteuttaa näkymän ja kontrollerin DrawObjView: DrawViewin vuorovaikutteinen liittymä TypeViewTable: yhdistää tyypin oikeaan näkymään Petri Vuorimaa 17

12.3 Tehtävät Uudelleenpiirto Uuden kappaleen luominen Kappaleen valinta Kappaleiden raahaus Attribuuttien asetus Palettiolioiden attribuuttien asetus Ohjauspisteiden manipulointi Petri Vuorimaa 18

Uudelleenpiirto For each draw object DO in the model list in back to front order { DOV = GetObjView(DO); if (Dov.BoundingRect() intersects DamagedRegion) { DOV.Redraw(DamagedRegion) if (DO.IsSelected) { for each control point C in DOV { draw handle for C } } } } Petri Vuorimaa 19

13. Leikkaa, kopioi ja liitä Interaktiiviset ohjelmat voivat jakaa tietoa Tekstinkäsittelijä voi vastaanottaa tietoa taulukkolaskennasta, tietokannasta, piirto-ohjelmasta jne. Yksinkertainen leikkeletaulu + ei mahdollista muutosten seurantaa Julkaise ja tilaa + sovelluksille voidaan kertoa muutoksista Sulautettu editointi + tietoa voi editoida välittömästi Petri Vuorimaa 20

13.1 Leikkeletaulut Leikkeletaulu on paikka, jonne ohjelmat voivat siirtää tietoa ja toiset voivat hakea sitä 1. Mitä formaattia pitäisi käyttää? 2. Entä jos lähteellä ja käyttäjällä on eri formaatti? 3. Mitä tapahtuu, jos tietoa on todella paljon? Petri Vuorimaa 21

Yksinkertainen leikketaulu Globaali muistialue, jota käyttöjärjestelmä ylläpitää Informaation lisäksi talletetaan tieto formaatista Esim. taulukkolaskenta voi tallettaa excel-, tekstitai bittikartta-formaatissa Formaatti määritellään myös liitettäessä Kuluttaa paljon muistia Formaattien tunnisteista pitää sopia Petri Vuorimaa 22

X Windows Asiakas A Asiakas B A B Petri Vuorimaa 23

X Windows Leiketaulusta käytetään nimeä selection Kun käyttäjä kopioi tekstin, asiakas A kutsuu XSetSelectionOwner Kun käyttäjä liittää tekstin, asiakas B kutsuu XConvertSelection (ja määrittelee formaatin) Asiakas A voi käyttää pyydettyä formaattia tai ehdottaa jotain muuta Asiakas A:n täytyy säilyttää informaatiota käyttöön asti tai kunnes joku muu tekee valinnan Petri Vuorimaa 24

Tarveperustainen leikkeletaulu MS Windowsissa kaikki sovellukset jakavat saman näytön, prosessorin ja käyttöjärjestelmän Leikkeletaulu on lukittava + Openclipboard + CloseClipboard Sovellus kutsuu ensin EmptyClipboard Sen jälkee se kutsuu SetClipboard (jokaiselle formaatille erikseen) Data voidaan tallettaa heti tai myöhemmin Petri Vuorimaa 25

Tarveperustainen leikkeletaulu Liittävä ohjelma valitsee ensin formaatin + IsClipboardFormatAvailable + GetPriorityClipboardFormat + EnumClipboardFormats Sen jälkeen, liittävä ohjelma lukee datan + GetClipboardData Petri Vuorimaa 26

13.2 Julkaise ja tilaa Joskus aktiivinen yhteys sovellusten välillä on parempi ratkaisu kuin pysyvä siirto Koska informaatiota päivitetään? + aina kun lähdeinformaatiossa tapahtuu muutoksia + kun lähdetiedosto talletetaan + kun käyttäjä pyytää sitä Lähdesovellus voi julkaista datan versiotiedostoon ja kohdesovellus tilaa sen Petri Vuorimaa 27

13.3 Sulautettu editointi Tekstinkäsittelyohjelmat voivat hyödyntää informaatiota useasta erillisestä lähteestä Usein on kätevää editoida vierasta dataa suoraan tekstinkäsittelysovelluksessa Kaksi tärkeintä arkkitehtuuria ovat + Microsoft OLE + Apple OpenDoc Petri Vuorimaa 28

Sulautettu liitäntä Mitä pitäisi liittää? + sulautettu data tai linkki alkuperäiseen tiedostoon Tiedostot sisältävät tiedostoja + rakenteinen tiedostojärjestelmä (esim. Microsoft) Data voidaan sarjallistaa (OLE, Java) + data muunnetaan tavuvirraksi ja takaisin dataksi Alkuperäinen sovellus piirtää datan Data voidaan piirtää erityistiedostoon (metafile) Petri Vuorimaa 29

Datan editointi Editoi vieressä + käynnistetään erillinen editori Editoi paikalla + editointi tapahtuu sulautetussa ikkunassa Petri Vuorimaa 30

13.4 Yhteenveto Leikkaa, kopio ja liitä ovat perusmekanismeja interaktiivisten sovellusten integrointiin Yksinkertainen leikkeletaulu on yhteinen muistialue Julkaise ja tilaa on aktiivinen linkki Sulautettu editointi mahdollistaa editoinnin paikalla Petri Vuorimaa 31

14. Peru, ryhmätyö ja makrot Peru: käyttäjän toimenpiteet voi perua Ryhmätyö: yhden käyttäjän malliin tekemät muutokset näkyvät myös muille käyttäjille Makrot: käyttäjä voi rakentaa monimutkaisia käskyjä yksinkertaisista käskyistä Kaikissa tapauksissa käyttäjän toimenpiteitä monitoroidaan ja tarjotaan lisäpalveluja Petri Vuorimaa 32

14.1 Peru/tee uudestaan Käyttäjät tuntevat olonsa turvalliseksi, kun toimenpiteet voi perua Toimenpiteet ovat käskyjä tai kokonaisia tehtäväsarjoja (esim. viivan piirtäminen) Toimenpiteet aiheuttavat pysyvän muutoksen malliin Käyttäjä voi perua tai tehdä muutoksen uudestaan Petri Vuorimaa 33

Yksinkertainen historia järjestelmä Atomiset toimenpiteet tallennetaan historialistaan Peru poistaa viimeisimmän komennon historialistasta ja palauttaa käyttöliittymän tilan Perumattomia komentoja (esim. tiedoston talletus) ei voi perua Näkymää muuttavia käskyjä (esim. näkymän vieritys) ei yleensä talleteta historialistaan Petri Vuorimaa 34

Valikoiva peruminen 1. Luo valkoinen suorakaide 2. Luo viiva 3. Muuta suorakaide mustaksi 4. Luo ellipsi 5. Luo vapaa viiva Käyttäjä haluaa pitää suorakaiteen valkoisena? Peru 3. Petri Vuorimaa 35

Valikoiva peruminen (cont.) 1. Luo valkoinen suorakaide a 2. Luo viiva b 3. Suorakaide a mustaksi 4. Kopio a suorakaiteeksi c 5. Luo vapaa viiva d Käyttäjä haluaa pitää suorakaiteen a valkoisena? Konflikti! Petri Vuorimaa 36

14.2 Ryhmätyö Käyttäjät haluavat usein tehdä työtä yhdessä Asynkroninen yhteistyö: + monta henkilöä työskentelee saman työn kimpussa eri aikoina Synkroninen yhteistyö: + monta henkilöä työskentelee saman työn kimpussa yhtä aikaa Petri Vuorimaa 37

Asynkroninen ryhmätyö Kaikki käyttäjän malliin tekemät muutokset talletetaan erilliseen tiedostoon (patch) Muutokset välitetään muille käyttäjille tai keskitettyyn tietokantaan Ristiriitaiset muutokset pitää selvittää Konfliktit voidaan myös välttää lukitsemalla tiedostot Petri Vuorimaa 38

Synkroninen ryhmätyö Kaksi tai useampi käyttäjä työskentelee yhtä aikaa Kaikkien käyttäjien pitää saada tieto muiden käyttäjien malliin tekemistä muutoksista Sosiaaliset kysymykset pitää myös ratkaista + floor control Komennot välitetään muille käyttäjille Konfliktit pitää ratkoa Petri Vuorimaa 39

14.3 Makrot Makrot rakennetaan komennoista tallettamalla käyttäjän toimenpiteet Käyttäjän toimenpiteet on yleistettävä Syöttötiedon sijasta talletetaan komennot + Komennot parametrisoidaan + Komennot voivat riippua olioista Petri Vuorimaa 40

14.4 Monitorointiarkkitehtuuri Monitorointi perustuu komento oliolle + DoIt, UndoIt, RedoIt AddChip + user selects chip icon + echo rectangle is shown + user selects place (center of chip is defined) + AddChipCmnd.DoIt(CenterPoint) + Id = AddChip(CenterPoint) Petri Vuorimaa 41

Monitorointiarkkitehtuuri (jatk.) UndoChip + AddChipCmnd.UndoIt(Id) + DeleteChip(Id) RedoChip + AddChipCmnd.RedoIt(Id) + AddChipCmnd.DoIt(CenterPoint) Petri Vuorimaa 42

14.5 Yhteenveto Komentoja monitoroindaan Peru ja tee uudelleen Ryhmätyö Makrojen tallentaminen Petri Vuorimaa 43