};
newBrowserTab.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/new_browser_tab.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(newBrowserTab);
/* Navigate Backward */
fNavigationToolBarManager.add(new Separator());
IAction navBackward = new Action(Messages.WebBrowserView_BACK) {
@Override
public void run() {
if (fBrowser != null && fBrowser.getControl().isBackEnabled())
fBrowser.back();
else if (fInput.getContext() != null)
openContext(fInput.getContext());
}
@Override
public boolean isEnabled() {
return (fInput.getContext() != null) || (fBrowser != null && fBrowser.getControl().isBackEnabled());
}
};
navBackward.setId(BACK_ACTION);
navBackward.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/backward.gif")); //$NON-NLS-1$
navBackward.setDisabledImageDescriptor(OwlUI.getImageDescriptor("icons/dtool16/backward.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(navBackward);
/* Navigate Forward */
IAction navForward = new Action(Messages.WebBrowserView_FORWARD) {
@Override
public void run() {
fBrowser.forward();
}
@Override
public boolean isEnabled() {
return fBrowser != null && fBrowser.getControl().isForwardEnabled();
}
};
navForward.setId(FORWARD_ACTION);
navForward.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/forward.gif")); //$NON-NLS-1$
navForward.setDisabledImageDescriptor(OwlUI.getImageDescriptor("icons/dtool16/forward.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(navForward);
/* Stop */
IAction stopNav = new Action(Messages.WebBrowserView_STOP) {
@Override
public void run() {
fBrowser.getControl().stop();
setBusy(false);
}
};
stopNav.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/cancel.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(stopNav);
/* Reload */
IAction reload = new Action(Messages.WebBrowserView_RELOAD) {
@Override
public void run() {
fBrowser.refresh();
setBusy(true);
}
};
reload.setImageDescriptor(OwlUI.getImageDescriptor("icons/elcl16/reload.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(reload);
/* Home */
IAction navHome = new Action(Messages.WebBrowserView_HOME) {
@Override
public void run() {
if (fInput.getUrl() != null)
fBrowser.setUrl(fInput.getUrl());
}
};
navHome.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/home.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(navHome);
/* Share */
fNavigationToolBarManager.add(new Separator());
IAction shareLink = new Action(Messages.WebBrowserView_SHARE_LINK, IAction.AS_DROP_DOWN_MENU) {
@Override
public void run() {
OwlUI.positionDropDownMenu(this, fNavigationToolBarManager);
}
@Override
public String getId() {
return SHARE_ACTION;
}
};
fNavigationToolBarManager.add(shareLink);
shareLink.setImageDescriptor(OwlUI.SHARE);
shareLink.setMenuCreator(new ContextMenuCreator() {
@Override
public Menu createMenu(Control parent) {
MenuManager shareMenu = new MenuManager();
String url = fBrowser.getControl().getUrl();
final IStructuredSelection selection = URIUtils.ABOUT_BLANK.equals(url) ? StructuredSelection.EMPTY : new StructuredSelection(url);
List<ShareProvider> providers = Controller.getDefault().getShareProviders();
for (final ShareProvider provider : providers) {
if (provider.isEnabled()) {
shareMenu.add(new Action(provider.getName()) {
@Override
public void run() {
if (SendLinkAction.ID.equals(provider.getId())) {
IActionDelegate action = new SendLinkAction();
action.selectionChanged(null, selection);
action.run(null);
} else {
Object obj = selection.getFirstElement();
if (StringUtils.isSet((String) obj) && !URIUtils.ABOUT_BLANK.equals(obj)) {
String shareLink = provider.toShareUrl((String) obj, null);
new OpenInBrowserAction(new StructuredSelection(shareLink)).run();
}
}
};
@Override
public ImageDescriptor getImageDescriptor() {
if (StringUtils.isSet(provider.getIconPath()))
return OwlUI.getImageDescriptor(provider.getPluginId(), provider.getIconPath());
return super.getImageDescriptor();
};
@Override
public boolean isEnabled() {
return !selection.isEmpty();
}
@Override
public String getActionDefinitionId() {
return SendLinkAction.ID.equals(provider.getId()) ? SendLinkAction.ID : super.getActionDefinitionId();
}
@Override
public String getId() {
return SendLinkAction.ID.equals(provider.getId()) ? SendLinkAction.ID : super.getId();
}
});
}
}
/* Configure Providers */
shareMenu.add(new Separator());
shareMenu.add(new Action(Messages.WebBrowserView_CONFIGURE) {
@Override
public void run() {
PreferencesUtil.createPreferenceDialogOn(fBrowser.getControl().getShell(), SharingPreferencesPage.ID, null, null).open();
};
});
return shareMenu.createContextMenu(parent);
}
});
/* Discover Feeds on Website */
fNavigationToolBarManager.add(new Separator());
IAction discoverFeeds = new Action(Messages.WebBrowserView_FIND_FEEDS) {
@Override
public void run() {
String url = fBrowser.getControl().getUrl();
if (StringUtils.isSet(url) && !URIUtils.ABOUT_BLANK.equals(url))