core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/PortalEditor.java
changeset 1615 d5f384bf1e88
parent 1609 085da1889c59
child 1616 1828ccdd6878
equal deleted inserted replaced
1614:b1456c010578 1615:d5f384bf1e88
    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);
   211 	
   211 	
   212 	public static void openPortal() {
   212 	public static void openPortal() {
   213 		try {
   213 		try {
   214 			WorkbenchUtils.openEditor(getInput(), ID);
   214 			WorkbenchUtils.openEditor(getInput(), ID);
   215 		} catch (PartInitException e) {
   215 		} catch (PartInitException e) {
   216 			Activator.logError("Could not open portal", e);
   216 			Activator.logError(Messages.PortalEditor_PageOpenError, e);
   217 		}
   217 		}
   218 	}
   218 	}
   219 
   219 
   220 	private static IEditorInput getInput() {
   220 	private static IEditorInput getInput() {
   221 		if (input == null) {
   221 		if (input == null) {
   236 					return null;
   236 					return null;
   237 				}
   237 				}
   238 				
   238 				
   239 				@Override
   239 				@Override
   240 				public String getName() {
   240 				public String getName() {
   241 					return "Carbide.c++ Portal";
   241 					return Messages.PortalEditor_Name;
   242 				}
   242 				}
   243 				
   243 				
   244 				@Override
   244 				@Override
   245 				public ImageDescriptor getImageDescriptor() {
   245 				public ImageDescriptor getImageDescriptor() {
   246 					return null;
   246 					return null;
   263 		return image;
   263 		return image;
   264 	}
   264 	}
   265 	
   265 	
   266 	Font createFont(String name, int height, int style) {
   266 	Font createFont(String name, int height, int style) {
   267 		Font font = new Font(Display.getCurrent(), name, height, style);
   267 		Font font = new Font(Display.getCurrent(), name, height, style);
   268 		
       
   269 		resources.add(font);
   268 		resources.add(font);
   270 		return font;
   269 		return font;
   271 	}
   270 	}
   272 	
   271 	
   273 	@Override
   272 	@Override