31 import org.eclipse.swt.widgets.Button; |
31 import org.eclipse.swt.widgets.Button; |
32 import org.eclipse.swt.widgets.Composite; |
32 import org.eclipse.swt.widgets.Composite; |
33 |
33 |
34 class NavigationBar extends RoundedCornerComposite { |
34 class NavigationBar extends RoundedCornerComposite { |
35 |
35 |
36 private PortalEditor portalEditor; |
|
37 |
|
38 |
|
39 private final class ButtonListener extends SelectionAdapter { |
36 private final class ButtonListener extends SelectionAdapter { |
40 @Override |
37 @Override |
41 public void widgetSelected(SelectionEvent e) { |
38 public void widgetSelected(SelectionEvent e) { |
42 Button button = (Button) e.getSource(); |
39 Button button = (Button) e.getSource(); |
43 selectNavButton(button); |
40 selectNavButton(button); |
44 } |
41 } |
45 } |
42 } |
46 |
43 |
|
44 private static final int BUTTON_SPACING = -2; |
|
45 private PortalEditor portalEditor; |
47 private Map<Button, PortalPage> buttonToPageMap; |
46 private Map<Button, PortalPage> buttonToPageMap; |
48 private SelectionListener listener; |
47 private SelectionListener listener; |
49 private Font buttonFont; |
48 private Font buttonFont; |
50 private Font selectedButtonFont; |
49 private Font selectedButtonFont; |
51 |
50 |
52 NavigationBar(PortalEditor portalEditor, Composite parent) { |
51 NavigationBar(PortalEditor portalEditor, Composite parent) { |
53 super(parent, portalEditor.getBackgroundParent(), |
52 super(parent, portalEditor.getBackgroundParent(), null, null); |
54 parent.getDisplay().getSystemColor(SWT.COLOR_BLACK), |
|
55 parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); |
|
56 this.portalEditor = portalEditor; |
53 this.portalEditor = portalEditor; |
57 buttonToPageMap = new LinkedHashMap<Button, PortalPage>(); |
54 buttonToPageMap = new LinkedHashMap<Button, PortalPage>(); |
58 FillLayout layout = new FillLayout(SWT.HORIZONTAL); |
55 FillLayout layout = new FillLayout(SWT.HORIZONTAL); |
59 layout.spacing = 5; |
56 layout.spacing = BUTTON_SPACING; |
60 layout.marginHeight = 5; |
57 layout.marginHeight = BUTTON_SPACING; |
61 layout.marginWidth = 5; |
58 layout.marginWidth = BUTTON_SPACING; |
62 setLayout(layout); |
59 setLayout(layout); |
63 listener = new ButtonListener(); |
60 listener = new ButtonListener(); |
64 selectedButtonFont = JFaceResources.getHeaderFont(); |
61 selectedButtonFont = JFaceResources.getHeaderFont(); |
65 FontData[] fontData = selectedButtonFont.getFontData(); |
62 FontData[] fontData = selectedButtonFont.getFontData(); |
66 for (FontData fd : fontData) { |
63 for (FontData fd : fontData) { |
75 return; |
72 return; |
76 selectNavButton(buttonToPageMap.keySet().iterator().next()); |
73 selectNavButton(buttonToPageMap.keySet().iterator().next()); |
77 } |
74 } |
78 |
75 |
79 public void addNavButton(NavigationBar bar, PortalPage page) { |
76 public void addNavButton(NavigationBar bar, PortalPage page) { |
80 Button b = new Button(bar, SWT.TOGGLE | SWT.FLAT); |
77 Button b = new Button(bar, SWT.LEFT | SWT.TOGGLE); |
81 b.setFont(buttonFont); |
78 b.setFont(buttonFont); |
82 b.setText(page.getTitle()); |
79 b.setText(page.getTitle()); |
83 b.setImage(portalEditor.createImage(page.getImageDescriptor(), 16, 16)); |
80 b.setImage(portalEditor.createImage(page.getImageDescriptor(), 32, 32)); |
84 b.addSelectionListener(listener); |
81 b.addSelectionListener(listener); |
85 buttonToPageMap.put(b, page); |
82 buttonToPageMap.put(b, page); |
86 } |
83 } |
87 |
84 |
88 |
85 |