45 import org.eclipse.ui.PartInitException; |
45 import org.eclipse.ui.PartInitException; |
46 import org.eclipse.ui.PlatformUI; |
46 import org.eclipse.ui.PlatformUI; |
47 import org.eclipse.ui.part.EditorPart; |
47 import org.eclipse.ui.part.EditorPart; |
48 |
48 |
49 import com.nokia.carbide.discovery.ui.Activator; |
49 import com.nokia.carbide.discovery.ui.Activator; |
|
50 import com.nokia.carbide.discovery.ui.Messages; |
50 import com.nokia.carbide.internal.discovery.ui.extension.IPortalPage; |
51 import com.nokia.carbide.internal.discovery.ui.extension.IPortalPage; |
51 import com.nokia.carbide.internal.discovery.ui.extension.IPortalPage.IActionBar; |
52 import com.nokia.carbide.internal.discovery.ui.extension.IPortalPage.IActionBar; |
52 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils; |
53 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils; |
53 |
54 |
54 public class PortalEditor extends EditorPart { |
55 public class PortalEditor extends EditorPart { |
72 } |
73 } |
73 |
74 |
74 private void getPortalPages() { |
75 private void getPortalPages() { |
75 uninitializedPages = new ArrayList<IPortalPage>(); |
76 uninitializedPages = new ArrayList<IPortalPage>(); |
76 IConfigurationElement[] elements = |
77 IConfigurationElement[] elements = |
77 Platform.getExtensionRegistry().getConfigurationElementsFor(Activator.PLUGIN_ID + ".portalPage"); |
78 Platform.getExtensionRegistry().getConfigurationElementsFor(Activator.PLUGIN_ID + ".portalPage"); //$NON-NLS-1$ |
78 for (IConfigurationElement element : elements) { |
79 for (IConfigurationElement element : elements) { |
79 try { |
80 try { |
80 uninitializedPages.add((IPortalPage) element.createExecutableExtension("class")); //$NON-NLS-1$ |
81 uninitializedPages.add((IPortalPage) element.createExecutableExtension("class")); //$NON-NLS-1$ |
81 } |
82 } |
82 catch (CoreException e) { |
83 catch (CoreException e) { |
83 Activator.logError("Could not load portal page", e); |
84 Activator.logError(Messages.PortalEditor_PageLoadError, e); |
84 } |
85 } |
85 } |
86 } |
86 } |
87 } |
87 |
88 |
88 @Override |
89 @Override |
119 |
120 |
120 private Composite createBody(final Composite parent) { |
121 private Composite createBody(final Composite parent) { |
121 // create background |
122 // create background |
122 backgroundParent = new Composite(parent, SWT.NONE); |
123 backgroundParent = new Composite(parent, SWT.NONE); |
123 applyBG(backgroundParent); |
124 applyBG(backgroundParent); |
124 backgroundParent.setLayout(GridLayoutFactory.fillDefaults().create()); |
125 GridLayoutFactory.fillDefaults().applyTo(backgroundParent); |
125 // create top naviation bar |
126 // create top naviation bar |
126 navigationBar = createNavigationBar(backgroundParent); |
127 navigationBar = createNavigationBar(backgroundParent); |
127 // create stack composite |
128 // create stack composite |
128 createStackComposite(backgroundParent, navigationBar); |
129 createStackComposite(backgroundParent, navigationBar); |
129 return backgroundParent; |
130 return backgroundParent; |
133 stackComposite = new StackComposite(parent, backgroundParent); |
134 stackComposite = new StackComposite(parent, backgroundParent); |
134 for (IPortalPage page : uninitializedPages) { |
135 for (IPortalPage page : uninitializedPages) { |
135 Control control = createPage(page); |
136 Control control = createPage(page); |
136 pageToControlMap.put(page, control); |
137 pageToControlMap.put(page, control); |
137 } |
138 } |
138 stackComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); |
139 GridDataFactory.fillDefaults().grab(true, true).applyTo(stackComposite); |
139 } |
140 } |
140 |
141 |
141 private Control createPage(IPortalPage page) { |
142 private Control createPage(IPortalPage page) { |
142 Composite pageComposite = new SharedBackgroundComposite(stackComposite, backgroundParent); |
143 Composite pageComposite = new SharedBackgroundComposite(stackComposite, backgroundParent); |
143 pageComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).spacing(20, 0) |
144 GridLayoutFactory.fillDefaults().numColumns(2).spacing(20, 0).extendedMargins(20, 20, 20, 0).applyTo(pageComposite); |
144 .extendedMargins(20, 20, 20, 0).create()); |
|
145 ActionUIUpdater updater = new ActionUIUpdater(); |
145 ActionUIUpdater updater = new ActionUIUpdater(); |
146 IActionBar[] commandBars = page.createCommandBars(this, updater); |
146 IActionBar[] commandBars = page.createCommandBars(this, updater); |
147 if (commandBars.length > 0) { |
147 if (commandBars.length > 0) { |
148 Composite taskComposite = new SharedBackgroundComposite(pageComposite, backgroundParent); |
148 Composite taskComposite = new SharedBackgroundComposite(pageComposite, backgroundParent); |
149 taskComposite.setLayout(GridLayoutFactory.fillDefaults().create()); |
149 GridLayoutFactory.fillDefaults().applyTo(taskComposite); |
150 taskComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create()); |
150 GridDataFactory.fillDefaults().grab(false, true).applyTo(taskComposite); |
151 for (IActionBar actionBar : commandBars) { |
151 for (IActionBar actionBar : commandBars) { |
152 Control control = createTaskBarControl(taskComposite, actionBar, updater); |
152 Control control = createTaskBarControl(taskComposite, actionBar, updater); |
153 control.setLayoutData(GridDataFactory.fillDefaults().indent(0, 0).create()); |
153 GridDataFactory.fillDefaults().indent(0, 0).applyTo(control); |
154 } |
154 } |
155 } |
155 } |
156 Composite pageControl = new RoundedCornerComposite(pageComposite, backgroundParent, |
156 Composite pageControl = new RoundedCornerComposite(pageComposite, backgroundParent, |
157 null, pageComposite.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); |
157 null, pageComposite.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); |
158 pageControl.setLayout(GridLayoutFactory.fillDefaults().margins(2, 2).create()); |
158 GridLayoutFactory.fillDefaults().margins(2, 2).applyTo(pageControl); |
159 pageControl.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); |
159 GridDataFactory.fillDefaults().grab(true, true).applyTo(pageControl); |
160 Control control = page.createControl(pageControl, this); |
160 Control control = page.createControl(pageControl, this); |
161 control.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); |
161 GridDataFactory.fillDefaults().grab(true, true).applyTo(control); |
162 return pageComposite; |
162 return pageComposite; |
163 } |
163 } |
164 |
164 |
165 private Control createTaskBarControl(Composite clientArea, IActionBar actionBar, ActionUIUpdater updater) { |
165 private Control createTaskBarControl(Composite clientArea, IActionBar actionBar, ActionUIUpdater updater) { |
166 TaskBar taskBar = new TaskBar(clientArea, this, actionBar); |
166 TaskBar taskBar = new TaskBar(clientArea, this, actionBar); |
167 updater.setTaskBar(taskBar); |
167 updater.addTaskBar(taskBar); |
168 return taskBar; |
168 return taskBar; |
169 } |
169 } |
170 |
170 |
171 private NavigationBar createNavigationBar(Composite parent) { |
171 private NavigationBar createNavigationBar(Composite parent) { |
172 NavigationBar bar = new NavigationBar(this, parent); |
172 NavigationBar bar = new NavigationBar(this, parent); |