2013-06-30 42 views
1

我想调用我的应用程序中的上下文菜单。如何调用swtboot中的上下文菜单

问题是我没有在树中的任何项目。

我活跃我的看法,然后我想打开上下文菜单。

SWTBotView view = bot.viewByTitle("Project Explorer"); 

view.bot.tree().contextMenu("New").click(); 

然后我得到错误信息

能否请你告诉我我怎么能不树中的任何项目打开contextMeny?

回答

0

由于没有直接的方法来做到这一点。我假设你有一个打开你的上下文菜单的快捷方式。

bot.activeShell().pressShortcut(<your shortcut>); 

bot.waitUntil(new ContextMenuAppears(tree, 
       "New")); 
tree.contextMenu("New").click(); 

其中ContextMenuAppears是等待所需上下文菜单出现的ICondition。

public class ContextMenuAppears implements ICondition { 

private SWTBotTree swtBotTree; 
private String mMenuText; 
public TekstContextMenuAppears(SWTBotTree pSwtBotTree, String menuText) { 
    swtBotTree = pSwtBotTree; 
    mMenuText = menuText; 
} 

@Override 
public boolean test() throws Exception { 
    try {   
     return swtBotTree.contextMenu(mMenuText).isVisible(); 
    } catch (WidgetNotFoundException e) { 
     return false; 
    } 

} 

@Override 
public void init(SWTBot bot) { 
    // TODO Auto-generated method stub 

} 

@Override 
public String getFailureMessage() { 
    // TODO Auto-generated method stub 
    return null; 
} 

} 
0

根据您要达到的目标,您可以尝试通过文件菜单而不是上下文菜单。 “新”应该这样工作。

+0

我需要从上下文菜单 – user2444677