Advertisement
Here are the code I used to add listeners in response to IE events:
// Listener to page loading progress event:
webControlSite.addEventListener(108, new OleListener() {
public void handleEvent(OleEvent event)
{
Variant progress = event.arguments[0];
Variant maxProgress = event.arguments[1];
if(progress == null || maxProgress == null)
{
return;
} else
{
progbar.setMaximum(maxProgress.getInt());
progbar.setSelection(progress.getInt());
return;
}
}
});
// Listener to READYSTATE change event:
webControlSite.addPropertyListener(-525, new OleListener() {
public void handleEvent(OleEvent event)
{
if(event.detail == 0)
return;
int state = getReadyState();
switch(state)
{
case 0:
webBackward.setEnabled(false);
webForward.setEnabled(false);
webHome.setEnabled(false);
webRefresh.setEnabled(false);
webStop.setEnabled(false);
break;
case 1:
webHome.setEnabled(true);
webRefresh.setEnabled(true);
webStop.setEnabled(true);
break;
case 2:
webStop.setEnabled(true);
break;
case 3:
webStop.setEnabled(true);
break;
case 4:
webStop.setEnabled(false);
break;
}
}
});
// Listener to status text:
webControlSite.addEventListener(102, new OleListener() {
public void handleEvent(OleEvent event)
{
Variant statusText = event.arguments[0];
if(statusText == null)
return;
String text = statusText.getString();
if(text != null)
status1.setText(" "+text);
}
});
// Listener to browser history (back and forward buttons):
webControlSite.addEventListener(105, new OleListener() {
public void handleEvent(OleEvent event)
{
if(event.type != 105)
return;
int commandID = event.arguments[0] == null ? 0 : event.arguments[0].getInt();
boolean commandEnabled = event.arguments[1] == null ? false : event.arguments[1].getBoolean();
switch(commandID)
{
case 2:
webBackward.setEnabled(commandEnabled);
break;
case 1:
webForward.setEnabled(commandEnabled);
break;
}
}
});
Read: Adding event listeners to IE OLE control in SWT