, поэтому в настоящее время мы работаем над приложением RCP, в которое встроен браузер SWT.Мы хотели бы реализовать какую-то связь между браузером и приложением RCP.В основном мы хотим, чтобы, если пользователь нажимает кнопку в веб-интерфейсе, запускалось событие, чтобы приложение RCP могло его прослушивать и обрабатывать соответствующим образом (например, было бы открытие определенного представления внутри приложения RCP).
Как бы вы решили эту проблему?Я уже пытался добавитьMouseListener () в браузере.Но события мыши мало помогают, так как они не несут никакой информации о том, какой элемент внутри веб-интерфейса был нажат ...
Я надеюсь, что вы могли бы помочь мне / вдохновить меня на возможные решения!
РЕДАКТИРОВАТЬ: Вот несколько примеров того, как создается экземпляр браузера:
public class BrowserView extends ViewPart {
Browser browser;
private static final Log LOG = LogFactory.getLog(BrowserView.class);
@Override
public void createPartControl(Composite parent) {
this.browser = new Browser(parent, SWT.NONE);
browser.addMouseListener(new MouseListener() {
@Override
public void mouseUp(MouseEvent e) {
}
@Override
public void mouseDown(MouseEvent e) {
// do something with the event
}
@Override
public void mouseDoubleClick(MouseEvent e) {
}
});
}
@Override
public void setFocus() {
// Do nothing
}
public void setUrl(String url) {
this.browser.setUrl(url);
}
}
Таким образом, в основном мы создаем браузер в определенном сочетании.Мы попытались добавить обработчик к событию mouseDown, но это не очень помогает, поскольку событие не содержит никакой информации о том, какая кнопка была запущена в браузере.Как мы можем получить расширенную информацию о событиях, касающихся браузера?Допустим, содержимое внутри браузера имеет Button1, Button2 и Button3.Мы хотим иметь что-то вроде
public void mouseDown(MouseEvent e) {
switch (e.getType.getName()) {
case "Button1": handleButton1();
break;
case "Button2": handleButton2();
break;
case "Button3": handleButton3();
break;
}
}
Я хорошо знаю, что здесь есть и другие возможные решения.Это был только мой наивный подход