private void createNavigationToolBar(Composite parent) {
fNavigationToolBarManager = new ToolBarManager(SWT.FLAT);
/* New Browser Tab */
IAction newBrowserTab = new Action(Messages.BrowserBar_NEW_TAB) {
@Override
public void run() {
BrowserUtils.openLinkInternal(URIUtils.ABOUT_BLANK, null);
}
};
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.BrowserBar_BACK) {
@Override
public void run() {
fBrowser.back();
}
@Override
public boolean isEnabled() {
return 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.BrowserBar_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.BrowserBar_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.BrowserBar_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.BrowserBar_HOME) {
@Override
public void run() {
fFeedView.getNewsBrowserControl().getViewer().home();
}
};
navHome.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/home.gif")); //$NON-NLS-1$
fNavigationToolBarManager.add(navHome);
/* Share */
fNavigationToolBarManager.add(new Separator());
IAction shareLink = new Action(Messages.BrowserBar_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();
final IStructuredSelection selection = getSelectionFromBrowser();
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.BrowserBar_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.BrowserBar_FIND_FEEDS) {
@Override
public void run() {
String url = fBrowser.getControl().getUrl();
if (StringUtils.isSet(url) && !ApplicationServer.getDefault().isNewsServerUrl(url) && !URIUtils.ABOUT_BLANK.equals(url))
new ImportAction().openWizard(fBrowser.getControl().getShell(), url);
else
new ImportAction().openWizard(fBrowser.getControl().getShell(), true);
}
};
fNavigationToolBarManager.add(discoverFeeds);
discoverFeeds.setImageDescriptor(OwlUI.getImageDescriptor("icons/etool16/new_bkmrk.gif")); //$NON-NLS-1$
fNavigationToolBarManager.createControl(parent);
}