Hosszútávú műveletek

Az org.eclipse.jface.operations csomag megadja a felületeket a hosszútávú műveletekhez, amelyek folyamatjelzőt igényelnek, vagy lehetővé teszik, hogy a felhasználó törölje a műveletet. Ezen felületek a munkaterület folyamatjelző párbeszédablakainak és nézeteinek megvalósításában kerülnek felhasználásra.

Általában a bedolgozóknak az IProgressService felületben biztosított munkaterület-támogatást kell használniuk hosszú műveletek esetén, így az összes bedolgozó összefüggő folyamatjelzéssel fog rendelkezni. A folyamatjelző párbeszédablakokhoz és nézetekhez rendelkezésre álló támogatás teljeskörű leírása a Párhuzamos munkaterület-használat támogatása témakörben található. Ezen leírás további része a munkaterület által használt JFace műveletek infrastruktúrájának részleteit emeli ki.

Futtathatóság és előrehaladás

A platform futási környezet megad egy általános felület, az IProgressMonitor, amely jelentést készít az előmenetelről a felhasználó számára, amíg a hosszútávú műveletek folyamatban vannak. Az ügyfél egy megfigyelőt tud biztosítani paraméterként számos platform API metódusokon, ha fontos a felhasználó számára megjeleníteni az előremenetelt.

A JFace speciálisabb felületek ad meg az objektumokhoz, amelyek megvalósítják a felhasználói felületet az előrehaladás-figyelőhöz. 

IRunnableWithProgress a felület a hosszútávú művelethez.  A felület run metódusa rendelkezik egy IProgressMonitor paraméterrel, amely jelentést ad az előrehaladásról, és ellenőrzi a felhasználói törlést.

IRunnableContext a felület a különböző helyekhez az UI-ban, amelyben az előrehaladásról jelentés készíthető.  A felületet megvalósító osztályok használhatnak másik módszert az előrehaladás megjelenítéséhez és a művelet futtatásához.  A ProgressMonitorDialog ezt a felületet például az előrehaladási párbeszédablak megjelenítésével valósítja meg. Az IWorkbenchWindow ezt felületet az előrehaladás munkaterület-ablak állapotsorán megjelenítésével valósítja meg. A WizardDialog ezt a felületet úgy valósítja meg, hogy a hosszútávú műveleteket a varázsló állapotsorán jeleníti meg.

Megjegyzés:  A munkaterület UI további támogatást biztosít a WorkspaceModifyOperation műveleteihez. Ez az osztály leegyszerűsíti a munkaterületet módosító hosszútávú műveletek megvalósítását. Leképezést hoz létre az IRunnableWithProgress és IWorkspaceRunnable között.  Részletes információkért tekintse meg a javadoc dokumentációt.

Modális műveletek

A ModalContext osztály futtatja az ügyfél kód perspektívájából modális műveletet. Ezt az IRunnableContext különböző megvalósításain belül használják.  Ha a bedolgozónak várnia kell a hosszútávú művelet végrehajtásával a végrehajtás folytatása előtt, akkor a ModalContext végrehajtható, miközben a felhasználói felület továbbra válaszképes marad.

Ha a műveletet egy modális kontextusban futtatja, akkor ágaztassa el a műveletet egy másik szálban. Ha az elágazás hamis, akkor a művelet a meghívó szálban fog futni. Ha az elágazás igaz,  akkor a művelet egy új szálban fog futni, a meghívó szál blokkolódik, és az UI eseményciklus addig fut, amíg a művelet be nem fejeződik.  

Az UI eseményciklussal kapcsolatos információkért tekintse meg az Ügyfelek szálkezelési problémái részt.