Pitkäkestoiset toiminnot

Paketti org.eclipse.jface.operations määrittää rajapintoja pitkäkestoisille toiminnoille, jotka edellyttävät tilanneilmaisimia tai joissa käyttäjän on mahdollista peruuttaa toiminto. Kyseisiä rajapintoja käytetään työympäristön tilannetietojen valintaikkunoiden ja näkymien toteutukseen.

Lisäosien tulee yleensä käyttää rajapinnan IProgressService sisältämää työympäristön tukea pitkäkestoisten toimintojen ajoon, niin että kaikki lisäosat esittävät toimintojen tilannetiedot yhdenmukaisesti. Ohjeaiheessa Työympäristön samanaikaisuustuki on kuvattu yksityiskohtaisesti käytössä oleva tuki tilannetietojen valintaikkunoille ja näkymille. Tämän ohjeen loppuosa puolestaan keskittyy yksityiskohtaisesti JFace-toimintojen rakenteeseen, jota työympäristö käyttää.

Runnable-objektit ja tilannetiedot

Alustan ajonaikainen ympäristö määrittää yleisen rajapinnan IProgressMonitor, jota käytetään tilannetietojen ilmoittamiseen käyttäjälle, kun pitkäkestoinen toiminto on käynnissä. Työasema voi sisältää valvontaohjelman parametrinä useissa alustan sovellusrajapinnan metodeissa, jos tilannetietojen näyttäminen käyttäjälle on tärkeää.

JFace määrittää yksityiskohtaisempia rajapintoja objekteille, jotka toteuttavat tilanteen valvontaohjelman käyttöliittymän. 

IRunnableWithProgress on pitkäkestoisen toiminnon rajapinta.  Kyseisen rajapinnan run-metodissa on IProgressMonitor-parametri, jota käytetään tilannetietojen ilmoittamiseen ja käyttäjän peruutuskäskyn tarkistamiseen.

IRunnableContext on rajapinta niille käyttöliittymän kohteille, joissa tilannetietoja voidaan ilmoittaa.  Kyseisen rajapinnan toteuttavat luokat voivat valita eri tekniikoita tilannetietojen näyttämiseen ja toiminnon ajoon.  Esimerkiksi luokka ProgressMonitorDialog toteuttaa kyseisen rajapinnan näyttämällä tilannetietojen valintaikkunan.  Luokka IWorkbenchWindow toteuttaa rajapinnan näyttämällä tilannetiedot työympäristön ikkunan tilarivillä.  Luokka WizardDialog toteuttaa rajapinnan näyttämällä pitkäkestoiset toiminnot ohjatun toiminnon tilarivin sisällä.

Huomautus:  Työympäristön käyttöliittymässä on lisätuki luokan WorkspaceModifyOperation toiminnoille. Kyseinen luokka tekee työtilaa muuttavien pitkäkestoisten toimintojen toteutuksesta yksinkertaisempaa. Se yhdistää rajapinnat IRunnableWithProgress ja IWorkspaceRunnable.  Lisätietoja on javadoc-dokumentaatiossa.

Modaaliset toiminnot

Luokka ModalContext on toimitettu, jotta voidaan ajaa toimintoja, jotka ovat modaalisia työaseman koodin perspektiivistä. Sitä käytetään rajapinnan IRunnableContext eri toteutuksien sisällä.  Jos lisäosan on odotettava jonkin pitkäkestoisen toiminnon valmistumista, ennen kuin sen suoritusta voidaan jatkaa, luokkaa ModalContext voidaan käyttää tähän tarkoitukseen niin, että käyttöliittymä jatkaa käyttäjän toimiin vastaamista.

Kun ajat toimintoa modaalisessa kontekstissa, voit halutessasi haarauttaa toiminnon eri säikeeseen. Jos haarautuksen fork arvo on false, toiminto ajetaan sen kutsuneessa säikeessä.  Jos haarautuksen fork arvo on tosi,  toiminto ajetaan uudessa säikeessä, sen kutsunut säie lukitaan ja käyttöliittymän tapahtumasilmukan ajo jatkuu, kunnes toiminto lopetetaan.  

Lisätietoja käyttöliittymän tapahtumasilmukasta on ohjeaiheessa Säikeet.