Langvarige funktioner

Pakken org.eclipse.jface.operations definerer grænseflader for langvarige funktioner, der kræver statusindikatorer, eller som tillader brugerannullering af funktionen. Disse grænseflader bruges i implementeringen af dialogbokse og oversigter for arbejdsbænkstatus.

Normalt skal plugins bruge den arbejdsbænkunderstøttelse, der stilles til rådighed i IProgressService til brug for udførelse af langvarige funktioner, så status for alle plugins vises konsistent. I Understøttelse af arbejdsbænksamtidighed finder du en gennemgang af den understøttelse, der er tilgængelig for statusdialogbokse og -oversigter. Den resterende del af denne gennemgang fremhæver oplysningerne om den JFace-funktionsinfrastruktur, som arbejdsbænken benytter.

Runnables og status

Platform-runtime definerer en fælles grænseflade, IProgressMonitor, som bruges til at rapportere status til brugeren, mens langvarige funktioner er i gang. Klienten kan stille overvågning til rådighed som en parameter i mange platform-API-metoder, når det er vigtigt at vise status for brugeren.

JFace definerer mere specifikke grænseflader for objekter, der implementerer brugergrænsefladen til brug for statusovervågning.  

IRunnableWithProgress er grænsefladen til brug langvarige funktioner. Metoden run for denne grænseflade har en IProgressMonitor-parameter, der bruges til at rapportere status og kontrollere for brugerannullering.

IRunnableContext er grænsefladen for de forskellige steder i brugergrænsefladen, hvor status kan rapporteres. Klasser, der implementerer denne grænseflade, kan vælge at bruge forskellige teknikker til visning af status og udførelse af funktionen.  ProgressMonitorDialog f.eks. implementerer denne grænseflade ved at vise en statusdialogboks. IWorkbenchWindow implementerer denne grænseflade ved at vise status i arbejdsbænkvinduets statuslinje. WizardDialog implementerer denne grænseflade for at vise langvarige funktioner i guidens statuslinje.

Bemærk: Arbejdsbænk-UI'et stiller yderligere understøttelse til rådighed for funktioner i WorkspaceModifyOperation. Denne klasse forenkler implementeringen af langvarige funktioner, der ændrer arbejdsområdet. Denne opretter en tilknytning vha. mapping mellem IRunnableWithProgress og IWorkspaceRunnable. Du finder flere oplysninger i javadoc.

Modalfunktioner

ModalContext-klassen stilles til rådighed til brug for udførelse af en funktion, der er modal fra klientkodens perspektiv. Den bruges inde i de forskellige implementeringer af IRunnableContext. Hvis din plugin har brug for at vente på, at en langvarig funktion gøres færdig, inden den fortsætter sin udførelse, kan ModalContext bruges til at opnå dette, samtidig med at brugergrænsefladen forbliver modtagelig.

Når du udfører en funktion i en modal kontekst, kan du vælge at gafle (fork) funktionen, så den udføres i en anden programdel. Hvis fork er falsk, udføres funktionen i den kaldende programdel. Hvis fork er sand, udføres funktionen i en ny programdel, den kaldende programdel blokeres, og UI-aktivitetsløkken udføres, indtil funktionen er færdig.   

I Programdelsproblemer for klienter finder du flere oplysninger om UI-aktivitetsløkken.