core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/NavigationBar.java
author dadubrow
Mon, 20 Sep 2010 15:24:33 -0500
changeset 2068 8db6518f7141
parent 2062 4d032dc346bf
child 2099 22d901cba60a
permissions -rw-r--r--
don't handle mouse up if not on widget
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     1
/*
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     3
* All rights reserved.
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     4
* This component and the accompanying materials are made available
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     6
* which accompanies this distribution, and is available
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     8
*
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
     9
* Initial Contributors:
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    11
*
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    12
* Contributors:
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    13
*
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    14
* Description: 
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    15
*
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    16
*/
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    17
package com.nokia.carbide.internal.discovery.ui.editor;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    18
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    19
import java.util.LinkedHashMap;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    20
import java.util.Map;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    21
1618
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
    22
import org.eclipse.jface.resource.FontDescriptor;
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
    23
import org.eclipse.jface.resource.JFaceResources;
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    24
import org.eclipse.swt.SWT;
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    25
import org.eclipse.swt.custom.CLabel;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    26
import org.eclipse.swt.events.MouseAdapter;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    27
import org.eclipse.swt.events.MouseEvent;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    28
import org.eclipse.swt.events.MouseListener;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    29
import org.eclipse.swt.events.MouseTrackAdapter;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    30
import org.eclipse.swt.events.MouseTrackListener;
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    31
import org.eclipse.swt.events.SelectionAdapter;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    32
import org.eclipse.swt.events.SelectionEvent;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    33
import org.eclipse.swt.events.SelectionListener;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    34
import org.eclipse.swt.graphics.Font;
1618
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
    35
import org.eclipse.swt.graphics.FontData;
2068
8db6518f7141 don't handle mouse up if not on widget
dadubrow
parents: 2062
diff changeset
    36
import org.eclipse.swt.graphics.Point;
8db6518f7141 don't handle mouse up if not on widget
dadubrow
parents: 2062
diff changeset
    37
import org.eclipse.swt.graphics.Rectangle;
2035
42a3ddebe583 Some portal tweaks
dadubrow
parents: 2031
diff changeset
    38
import org.eclipse.swt.layout.FillLayout;
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    39
import org.eclipse.swt.widgets.Composite;
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    40
import org.eclipse.swt.widgets.Control;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    41
import org.eclipse.swt.widgets.Event;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    42
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    43
import com.nokia.cpp.internal.api.utils.core.ListenerList;
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    44
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
    45
class NavigationBar extends RoundedCornerComposite {
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    46
	private class Button extends CLabel {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    47
		private ListenerList<SelectionListener> listeners;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    48
		private boolean selection;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    49
		private MouseTrackListener mouseTrackListener;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    50
		private MouseListener mouseListener;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    51
		
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    52
		public Button(Composite parent) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    53
			super(parent, SWT.CENTER);
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    54
			listeners = new ListenerList<SelectionListener>();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    55
			setBackground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    56
			addMouseTrackListener(mouseTrackListener = new MouseTrackAdapter() {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    57
				@Override
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    58
				public void mouseExit(MouseEvent e) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    59
					if (!selection)
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    60
						setBackgroundColor();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    61
					
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    62
				}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    63
				
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    64
				@Override
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    65
				public void mouseEnter(MouseEvent e) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    66
					if (!selection)
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    67
						setBackground(getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    68
				}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    69
			});
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    70
			
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    71
			addMouseListener(mouseListener = new MouseAdapter() {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    72
				@Override
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    73
				public void mouseUp(MouseEvent e) {
2068
8db6518f7141 don't handle mouse up if not on widget
dadubrow
parents: 2062
diff changeset
    74
					Point size = Button.this.getSize();
8db6518f7141 don't handle mouse up if not on widget
dadubrow
parents: 2062
diff changeset
    75
					if (new Rectangle(0, 0, size.x, size.y).contains(e.x, e.y))
8db6518f7141 don't handle mouse up if not on widget
dadubrow
parents: 2062
diff changeset
    76
						setSelection(true);
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    77
				}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    78
			});
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    79
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    80
		
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    81
		@Override
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    82
		protected void checkSubclass() {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    83
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    84
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    85
		public void addSelectionListener(SelectionListener listener) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    86
			listeners.add(listener);
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    87
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    88
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    89
		public void setSelection(boolean selection) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    90
			if (this.selection != selection) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    91
				this.selection = selection;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    92
				setBackgroundColor();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    93
				if (selection) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    94
					for (Control control : getParent().getChildren()) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    95
						if (control instanceof Button) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    96
							if (!control.equals(this)) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    97
								((Button) control).setSelection(false);
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    98
							}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
    99
						}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   100
					}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   101
					fireSelection();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   102
				}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   103
			}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   104
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   105
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   106
		private void fireSelection() {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   107
			Event e = new Event();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   108
			e.widget = this;
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   109
			e.display = getDisplay();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   110
			for (SelectionListener listener : listeners) {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   111
				listener.widgetSelected(new SelectionEvent(e));
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   112
			}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   113
			
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   114
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   115
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   116
		private void setBackgroundColor() {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   117
			setBackground(getDisplay().getSystemColor(selection ? SWT.COLOR_WIDGET_NORMAL_SHADOW : SWT.COLOR_WHITE));
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   118
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   119
		
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   120
		@Override
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   121
		public void dispose() {
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   122
			removeMouseTrackListener(mouseTrackListener);
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   123
			removeMouseListener(mouseListener);
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   124
			super.dispose();
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   125
		}
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   126
	}
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   127
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   128
	private final class ButtonListener extends SelectionAdapter {
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   129
		@Override
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   130
		public void widgetSelected(SelectionEvent e) {
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   131
			Button button = (Button) e.getSource();
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   132
			selectNavButton(button);
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   133
		}
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   134
	}
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   135
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   136
	private static final int BUTTON_SPACING = 0;
2047
c984a53977bd More tweaks - scaling icons will be replaced with actual 32x32 icons
dadubrow
parents: 2035
diff changeset
   137
	private PortalEditor portalEditor;
1684
c2eba6dabd38 refactor to allow better support for multiple layers
dadubrow
parents: 1634
diff changeset
   138
	private Map<Button, PortalPage> buttonToPageMap;
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   139
	private SelectionListener listener;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   140
	private Font buttonFont;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   141
	private Font selectedButtonFont;
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   142
	
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   143
	NavigationBar(PortalEditor portalEditor, Composite parent) {
2047
c984a53977bd More tweaks - scaling icons will be replaced with actual 32x32 icons
dadubrow
parents: 2035
diff changeset
   144
		super(parent, portalEditor.getBackgroundParent(), null, null);
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   145
		this.portalEditor = portalEditor;
1684
c2eba6dabd38 refactor to allow better support for multiple layers
dadubrow
parents: 1634
diff changeset
   146
		buttonToPageMap = new LinkedHashMap<Button, PortalPage>();
2035
42a3ddebe583 Some portal tweaks
dadubrow
parents: 2031
diff changeset
   147
		FillLayout layout = new FillLayout(SWT.HORIZONTAL);
2047
c984a53977bd More tweaks - scaling icons will be replaced with actual 32x32 icons
dadubrow
parents: 2035
diff changeset
   148
		layout.spacing = BUTTON_SPACING;
c984a53977bd More tweaks - scaling icons will be replaced with actual 32x32 icons
dadubrow
parents: 2035
diff changeset
   149
		layout.marginHeight = BUTTON_SPACING;
c984a53977bd More tweaks - scaling icons will be replaced with actual 32x32 icons
dadubrow
parents: 2035
diff changeset
   150
		layout.marginWidth = BUTTON_SPACING;
2035
42a3ddebe583 Some portal tweaks
dadubrow
parents: 2031
diff changeset
   151
		setLayout(layout);
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   152
		listener = new ButtonListener();
1618
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   153
		selectedButtonFont = JFaceResources.getHeaderFont();
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   154
		FontData[] fontData = selectedButtonFont.getFontData();
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   155
		for (FontData fd : fontData) {
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   156
			fd.setStyle(SWT.NORMAL);
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   157
		}
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   158
		FontDescriptor desc = FontDescriptor.createFrom(fontData);
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   159
		buttonFont = portalEditor.createFont(desc);
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   160
	}
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   161
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   162
	public void initUI() {
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   163
		if (buttonToPageMap.isEmpty())
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   164
			return;
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   165
		buttonToPageMap.keySet().iterator().next().setSelection(true);
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   166
	}
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   167
1684
c2eba6dabd38 refactor to allow better support for multiple layers
dadubrow
parents: 1634
diff changeset
   168
	public void addNavButton(NavigationBar bar, PortalPage page) {
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   169
		Button b = new Button(bar);
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   170
		b.setFont(buttonFont);
1705
71a151b1b515 add support for multiple layers per page
dadubrow
parents: 1684
diff changeset
   171
		b.setText(page.getTitle());
2062
4d032dc346bf More portal tweaks - icons, nav l&f + tooltips
dadubrow
parents: 2053
diff changeset
   172
		b.setToolTipText(page.getTooltip());
2047
c984a53977bd More tweaks - scaling icons will be replaced with actual 32x32 icons
dadubrow
parents: 2035
diff changeset
   173
		b.setImage(portalEditor.createImage(page.getImageDescriptor(), 32, 32));
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   174
		b.addSelectionListener(listener);
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   175
		buttonToPageMap.put(b, page);
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   176
	}
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   177
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   178
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   179
	public void selectNavButton(Button button) {
1618
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   180
		portalEditor.showPage(buttonToPageMap.get(button));
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   181
		button.setFont(selectedButtonFont);
1618
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   182
		layout();
712d047abd8b Portal tweaks - use standard fonts, etc.
dadubrow
parents: 1615
diff changeset
   183
	}
1609
085da1889c59 Portal initial commit
dadubrow
parents:
diff changeset
   184
}