[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 !
> >
> >
> >
> >