[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.platform.swt] Re: ToolBar/CoolBar
|
Hi,
Here is a snippet:
public class WebBrowserView {
private static Shell shell;
private Menu menuBar;
private Composite navigationComposite;
private ToolBar toolBar;
private CoolItem buttonsCoolItem;
private CoolItem navigationItems;
private boolean navigationItemsVisible = true;
private boolean buttonsCoolItemVisible = true;
private CoolBar coolBar = null;
private ToolItem backButton;
private ToolItem forwardButton;
private ToolItem stopButton;
private ToolItem refreshButton;
private ToolItem homeButton;
private ToolItem searchButton;
private Label addressLabel;
private Button navigateButton;
private Text urlEditBox;
private OleFrame browserFrame;
private OleControlSite webControlSite;
private WebBrowser webBrowser;
private Label secondLabel;
private Composite statusBar;
private Label statusLabel;
private ProgressBar progressBar;
public static void main (String[] args) {
Display display = new Display ();
BrowserResources.initResources();
WebBrowserView webBrowserView = new WebBrowserView();
shell = webBrowserView.open (display);
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
public Shell open(Display display){
shell = new Shell (display);
shell.setText(resourceBundle.getString("Title"));
shell.setImage(BrowserResources.images[BrowserResources.shell_image]);
GridLayout shellLayout = new GridLayout();
shellLayout.numColumns = 1;
shellLayout.marginHeight = 0;
shellLayout.marginWidth = 0;
shellLayout.verticalSpacing = 0;
shell.setLayout(shellLayout);
createMenuBar(shell);
Label firstLabel = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
GridData firstLabelGridData = new GridData(GridData.FILL_HORIZONTAL);
firstLabel.setLayoutData(firstLabelGridData);
createToolBar(shell);
secondLabel = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
GridData secondLabelGridData = new GridData(GridData.FILL_HORIZONTAL);
secondLabel.setLayoutData(secondLabelGridData);
createBrowserFrame(shell);
createBrowserControl();
Label thirdLabel = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL |
SWT.SHADOW_NONE);
GridData thirdLabelGridData = new GridData(GridData.FILL_HORIZONTAL);
thirdLabel.setLayoutData(thirdLabelGridData);
createStatusArea(shell);
shell.layout();
shell.open();
return shell;
}
private void createMenuBar(Shell shell){
menuBar = new Menu(shell, SWT.BAR);
shell.setMenuBar(menuBar);
createFileMenu(menuBar);
createViewMenu(menuBar);
createFavoritesMenu(menuBar);
createToolsMenu(menuBar);
createHelpMenu(menuBar);
}
private void createFileMenu(Menu menuBar) {
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resourceBundle.getString("menu.File"));
Menu menu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(menu);
MenuItem subItem = new MenuItem(menu, SWT.PUSH);
subItem.setText(resourceBundle.getString("menu.File.New"));
subItem.setAccelerator(SWT.CTRL + 'N');
subItem.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event){
}
});
subItem = new MenuItem(menu, SWT.PUSH);
subItem.setText(resourceBundle.getString("menu.File.Close"));
subItem.setAccelerator(SWT.CTRL + SWT.F4);
subItem.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
shell.close();
}
});
}
private void createEditMenu(Menu menuBar) {
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resourceBundle.getString("menu.Edit"));
}
private void createViewMenu(Menu menuBar) {
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resourceBundle.getString("menu.View"));
Menu menu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(menu);
MenuItem subItem = new MenuItem(menu, SWT.CASCADE);
subItem.setText(resourceBundle.getString("menu.View.Toolbars"));
Menu subMenu = new Menu(subItem);
subItem.setMenu(subMenu);
MenuItem subMenuItem = new MenuItem(subMenu, SWT.CHECK);
subMenuItem.setText(resourceBundle.getString("menu.View.Toolbars.StandardButtons"));
subMenuItem.setSelection(true);
subMenuItem.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event){
MenuItem menuItem = (MenuItem)event.getSource();
if (menuItem.getSelection()){
buttonsCoolItem = new CoolItem (coolBar, SWT.DROP_DOWN);
buttonsCoolItem.setControl (toolBar);
Point toolBarSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
toolBarSize = buttonsCoolItem.computeSize(toolBarSize.x,
toolBarSize.y);
buttonsCoolItem.setSize(toolBarSize);
buttonsCoolItem.setMinimumSize(toolBarSize.x, toolBarSize.y);
toolBar.setVisible(true);
coolBar.setVisible(true);
buttonsCoolItemVisible = true;
secondLabel.setVisible(true);
}
else{
toolBar.setVisible(false);
coolBar.setVisible(false);
Rectangle coolBarRectangle = coolBar.getBounds();
coolBarRectangle.height = 0;
coolBarRectangle.width = 0;
coolBar.setBounds(coolBarRectangle);
secondLabel.setVisible(false);
buttonsCoolItem.dispose();
buttonsCoolItemVisible = false;
}
}
});
subMenuItem = new MenuItem(subMenu, SWT.CHECK);
subMenuItem.setText(resourceBundle.getString("menu.View.Toolbars.AddressBar"));
subMenuItem.setSelection(true);
subMenuItem = new MenuItem(subMenu, SWT.SEPARATOR);
subMenuItem = new MenuItem(subMenu, SWT.PUSH);
subMenuItem.setText(resourceBundle.getString("menu.View.Toolbars.Customize"));
}
private void createFavoritesMenu(Menu menuBar) {
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resourceBundle.getString("menu.Favorites"));
}
private void createToolsMenu(Menu menuBar) {
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resourceBundle.getString("menu.Tools"));
}
private void createHelpMenu(Menu menuBar) {
MenuItem item = new MenuItem(menuBar, SWT.CASCADE);
item.setText(resourceBundle.getString("menu.Help"));
Menu menu = new Menu(shell, SWT.DROP_DOWN);
item.setMenu(menu);
MenuItem subItem = new MenuItem(menu, SWT.PUSH);
subItem.setText(resourceBundle.getString("menu.Help.About"));
subItem.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event){
MessageBox box = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
box.setText(getResourceString("dialog.About.title"));
box.setMessage(getResourceString("dialog.About.description",
new Object[] { System.getProperty("os.name") }));
box.open();
}
});
}
private void createToolBar(Composite composite) {
coolBar = new CoolBar(composite, SWT.FLAT);
toolBar = new ToolBar(coolBar, SWT.RIGHT | SWT.FLAT);
backButton = new ToolItem (toolBar, SWT.PUSH);
backButton.setEnabled(false);
backButton.setText(resourceBundle.getString("toolBar.Back.text"));
backButton.setToolTipText(resourceBundle.getString("toolBar.Back.tooltip"));
backButton.setImage(BrowserResources.images[BrowserResources.backward_normal]);
backButton.setHotImage(BrowserResources.images[BrowserResources.backward_hot]);
backButton.addListener(SWT.MouseEnter, new Listener(){
public void handleEvent(Event event) {
System.out.println("MouseEnter");
}
});
backButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
// handle back
}
});
forwardButton = new ToolItem (toolBar, SWT.PUSH);
forwardButton.setEnabled(false);
forwardButton.setText(resourceBundle.getString("toolBar.Forward.text"));
forwardButton.setToolTipText
(resourceBundle.getString("toolBar.Forward.tooltip"));
forwardButton.setImage(BrowserResources.images[BrowserResources.forward_normal]);
forwardButton.setHotImage(BrowserResources.images[BrowserResources.forward_hot]);
forwardButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
// handle forward
}
});
stopButton = new ToolItem (toolBar, SWT.PUSH);
stopButton.setText(resourceBundle.getString("toolBar.Stop.text"));
stopButton.setToolTipText
(resourceBundle.getString("toolBar.Stop.tooltip"));
stopButton.setImage(BrowserResources.images[BrowserResources.stop_normal]);
stopButton.setHotImage(BrowserResources.images[BrowserResources.stop_hot]);
stopButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
// handle stop
}
});
refreshButton = new ToolItem (toolBar, SWT.PUSH);
refreshButton.setText(resourceBundle.getString("toolBar.Refresh.text"));
refreshButton.setToolTipText(resourceBundle.getString("toolBar.Refresh.tooltip"));
refreshButton.setImage(BrowserResources.images[BrowserResources.refresh_normal]);
refreshButton.setHotImage(BrowserResources.images[BrowserResources.refresh_hot]);
refreshButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
// handle refresh
}
});
homeButton = new ToolItem (toolBar, SWT.PUSH);
homeButton.setText(resourceBundle.getString("toolBar.Home.text"));
homeButton.setToolTipText(resourceBundle.getString("toolBar.Home.tooltip"));
homeButton.setImage(BrowserResources.images[BrowserResources.home_normal]);
homeButton.setHotImage(BrowserResources.images[BrowserResources.home_hot]);
homeButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
// handle home
}
});
ToolItem item = new ToolItem (toolBar, SWT.SEPARATOR);
searchButton = new ToolItem (toolBar, SWT.PUSH);
searchButton.setText(resourceBundle.getString("toolBar.Search.text"));
searchButton.setToolTipText(resourceBundle.getString("toolBar.Search.tooltip"));
searchButton.setImage(BrowserResources.images[BrowserResources.search_normal]);
searchButton.setHotImage(BrowserResources.images[BrowserResources.search_hot]);
searchButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e){
// handle search
}
});
buttonsCoolItem = new CoolItem (coolBar, SWT.DROP_DOWN);
buttonsCoolItem.setControl (toolBar);
Point toolBarSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
toolBarSize = buttonsCoolItem.computeSize(toolBarSize.x, toolBarSize.y);
buttonsCoolItem.setSize(toolBarSize);
buttonsCoolItem.setMinimumSize(toolBarSize.x, toolBarSize.y);/**/
}
private void createBrowserFrame(Composite composite){
browserFrame = new OleFrame(composite, SWT.NONE);
GridData browserFrameGridData = new GridData(GridData.FILL_BOTH);
browserFrameGridData.horizontalAlignment = GridData.FILL;
browserFrameGridData.verticalAlignment = GridData.FILL;
browserFrame.setLayoutData(browserFrameGridData);
}
private void createBrowserControl(){
// ActiveX plug-in for browser control
}
private void createStatusArea(Composite displayArea){
// create status bar
}
}
> Post a snippet so we can see what you are doing and someone will help.
> "Robert Bacs" <robert_bacs@xxxxxxxxx> wrote in message
> news:b9r2hj$1io$1@xxxxxxxxxxxxxxxx
> > Hi,
> >
> > I'm writing an application in SWT which have a toolbar created on a
> > CoolBar control, same as Internet Explorer, and I need to display/hide
> > whenever a menu item is checked, same as Internet Explorer:
> > "View->ToolBars->Standard Buttons".
> >
> > I'm using the GridLayout, but when I try to hide the toolbar the buttons
> > disapears but remains the toolbar control.
> >
> > Does anyone can help me ?
> >
> > Thanks in advance !
> >
> >
> >
> >