PathChooser chooser, int depth, boolean pressMouse) {
try {
oper.waitComponentVisible(true);
oper.waitComponentEnabled();
} catch(InterruptedException e) {
throw(new JemmyException("Interrupted!", e));
}
if(depth > chooser.getDepth() - 1) {
if(oper instanceof JMenuOperator) {
if(((JMenuOperator)oper).isPopupMenuVisible()) {
((JMenuOperator)oper).setPopupMenuVisible(false);
}
((JMenuOperator)oper).setPopupMenuVisible(true);
waitPopupMenu(oper);
}
((AbstractButtonOperator)oper).doClick();
return(oper.getSource());
} else {
if(((JMenuOperator)oper).isPopupMenuVisible()) {
((JMenuOperator)oper).setPopupMenuVisible(false);
}
((JMenuOperator)oper).setPopupMenuVisible(true);
waitPopupMenu(oper);
}
oper.getTimeouts().sleep("JMenuOperator.WaitBeforePopupTimeout");
JMenuItem item = waitItem(oper, waitPopupMenu(oper), chooser, depth);
if(item instanceof JMenu) {
JMenuOperator mo = new JMenuOperator((JMenu)item);
mo.copyEnvironment(oper);
Object result = push(mo, null, chooser, depth + 1, false);
if(result instanceof JMenu) {
org.netbeans.jemmy.JemmyProperties.getCurrentOutput().printLine("IN HERE" + ((JMenu)result).getText());
org.netbeans.jemmy.JemmyProperties.getCurrentOutput().printLine("IN HERE" + Boolean.toString(((JMenu)result).isPopupMenuVisible()));
if(!((JMenu)result).isPopupMenuVisible()) {
((JMenuOperator)oper).setPopupMenuVisible(false);
}
} else {
((JMenuOperator)oper).setPopupMenuVisible(false);
waitNoPopupMenu(oper);
}
return(result);
} else {
JMenuItemOperator mio = new JMenuItemOperator(item);
mio.copyEnvironment(oper);
try {
mio.waitComponentEnabled();
} catch(InterruptedException e) {
throw(new JemmyException("Interrupted!", e));
}
((AbstractButtonOperator)mio).doClick();
((JMenuOperator)oper).setPopupMenuVisible(false);
waitNoPopupMenu(oper);
return(item);