2015-02-03 11 views
0

SWTBot 테스트를 실행하는 동안 클립 보드에 액세스하는 방법은 무엇입니까?SWTBot의 클립 보드 액세스

다음 코드가 throw됩니다. 잘못된 스레드 액세스입니다.

Clipboard clipBoard = new Clipboard(SWTUtils.display()); 
Object object = clipBoard.getContents(TextTransfer.getInstance()); 

위의 코드는 UI 스레드에서 실행할 때 작동합니다. 이것이 유일한 방법입니까?

SwtBot 스레드에서 클립 보드에 액세스하는 방법은 무엇입니까?

+0

SWTBot 스레드가 사용자 스레드이고 사용자 동작을 시뮬레이션하는 데 사용된다는 것을 알았 기 때문에 SWTBot 스레드의 클립 보드에 액세스 할 수있는 방법은 없습니다. 따라서 SWTBot 스레드를 UI 스레드와 동기화하고 클립 보드에 액세스해야합니다. Rüdiger Herrmann의 솔루션이 도움이되었습니다. –

답변

0

SWTBot의 다른 UI 요소 액세스와 마찬가지로 클립 보드 액세스를 UI 스레드에 위임해야합니다. 이미 SWTBot에 ClipboardBot이없는 경우

, 당신과 같이이 직접 수행 할 수 있습니다

final Object[] object = { null } 
display.syncExec(new Runnable() { 
    public void run() { 
    Clipboard clipBoard = new Clipboard(display); 
    object[ 0 ] = clipBoard.getContents(TextTransfer.getInstance()); 
    clipboard.dispose(); 
    } 
}); 

당신이 이러한 목표를 달성하기 위해 SWTBot 인프라의 일부를 사용하려는 경우, 또한 게시물이 있습니다 약 how to extend SWTBot.