private void updateHeaderLabel() { TaskRepository outgoingNewRepository = TasksUiUtil.getOutgoingNewTaskRepository(task); final TaskRepository taskRepository = (outgoingNewRepository != null) ? outgoingNewRepository : taskEditorInput.getTaskRepository(); // if (taskRepository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND)) { // getHeaderForm().getForm().setText(Messages.TaskEditor_Task_ + task.getSummary()); // } else { AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind()); String kindLabel = Messages.TaskEditor_Task; if (connectorUi != null) { kindLabel = connectorUi.getTaskKindLabel(task); } String idLabel = task.getTaskKey(); if (idLabel != null) { kindLabel += " " + idLabel; // $NON-NLS-1$ } if (hasLeftToolBar() && titleLabel != null) { titleLabel.setText(kindLabel); getHeaderForm().getForm().setText(null); setHeaderImage(null); } else { getHeaderForm().getForm().setText(kindLabel); } }
@Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { if (!(input instanceof TaskEditorInput)) { throw new PartInitException( "Invalid editor input \"" + input.getClass() + "\""); // $NON-NLS-1$ //$NON-NLS-2$ } super.init(site, input); this.taskEditorInput = (TaskEditorInput) input; this.task = taskEditorInput.getTask(); // initialize selection site.getSelectionProvider().setSelection(new StructuredSelection(task)); setPartName(input.getName()); // activate context IContextService contextSupport = (IContextService) site.getService(IContextService.class); if (contextSupport != null) { contextSupport.activateContext(ID_EDITOR); } }
/** @since 3.0 */ public void updateHeaderToolBar() { if (isHeaderFormDisposed()) { return; } final Form form = getHeaderForm().getForm().getForm(); toolBarManager = form.getToolBarManager(); toolBarManager.removeAll(); // toolBarManager.update(true); TaskRepository outgoingNewRepository = TasksUiUtil.getOutgoingNewTaskRepository(task); final TaskRepository taskRepository = (outgoingNewRepository != null) ? outgoingNewRepository : taskEditorInput.getTaskRepository(); ControlContribution repositoryLabelControl = new ControlContribution(Messages.AbstractTaskEditorPage_Title) { @Override protected Control createControl(Composite parent) { FormToolkit toolkit = getHeaderForm().getToolkit(); Composite composite = toolkit.createComposite(parent); RowLayout layout = new RowLayout(); if (PlatformUiUtil.hasNarrowToolBar()) { layout.marginTop = 0; layout.marginBottom = 0; layout.center = true; } composite.setLayout(layout); composite.setBackground(null); String label = taskRepository.getRepositoryLabel(); if (label.indexOf("//") != -1) { // $NON-NLS-1$ label = label.substring( (taskRepository.getRepositoryUrl().indexOf("//") + 2)); // $NON-NLS-1$ } ImageHyperlink link = new ImageHyperlink(composite, SWT.NONE); link.setText(label); link.setFont(JFaceResources.getBannerFont()); link.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); link.setToolTipText(Messages.TaskEditor_Edit_Task_Repository_ToolTip); link.addHyperlinkListener( new HyperlinkAdapter() { @Override public void linkActivated(HyperlinkEvent e) { TasksUiUtil.openEditRepositoryWizard(taskRepository); } }); return composite; } }; toolBarManager.add(repositoryLabelControl); toolBarManager.add(new GroupMarker("repository")); // $NON-NLS-1$ toolBarManager.add(new GroupMarker("new")); // $NON-NLS-1$ toolBarManager.add(new GroupMarker("open")); // $NON-NLS-1$ toolBarManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); openWithBrowserAction = new OpenWithBrowserAction(); openWithBrowserAction.selectionChanged(new StructuredSelection(task)); if (openWithBrowserAction.isEnabled()) { // ImageDescriptor overlay = // TasksUiPlugin.getDefault().getOverlayIcon(taskRepository.getConnectorKind()); // ImageDescriptor compositeDescriptor = new // TaskListImageDescriptor(TasksUiImages.REPOSITORY_SMALL_TOP, // overlay, false, true); openWithBrowserAction.setImageDescriptor(CommonImages.WEB); // openWithBrowserAction.setImageDescriptor(CommonImages.BROWSER_OPEN_TASK); openWithBrowserAction.setToolTipText(Messages.AbstractTaskEditorPage_Open_with_Web_Browser); toolBarManager.appendToGroup("open", openWithBrowserAction); // $NON-NLS-1$ } else { openWithBrowserAction = null; } if (activateAction == null) { activateAction = new ToggleTaskActivationAction(task) { @Override public void run() { TaskList taskList = TasksUiPlugin.getTaskList(); if (taskList.getTask(task.getRepositoryUrl(), task.getTaskId()) == null) { setMessage( Messages.TaskEditor_Task_added_to_the_Uncategorized_container, IMessageProvider.INFORMATION); } super.run(); } }; } toolBarManager.add(new Separator("planning")); // $NON-NLS-1$ disposeScheduleAction(); scheduleAction = new TaskEditorScheduleAction(task); toolBarManager.add(scheduleAction); toolBarManager.add(new GroupMarker("page")); // $NON-NLS-1$ for (IFormPage page : getPages()) { if (page instanceof TaskFormPage) { TaskFormPage taskEditorPage = (TaskFormPage) page; taskEditorPage.fillToolBar(toolBarManager); } } toolBarManager.add(new Separator("activation")); // $NON-NLS-1$ // ContributionItem spacer = new ContributionItem() { // @Override // public void fill(ToolBar toolbar, int index) { // ToolItem item = new ToolItem(toolbar, SWT.NONE); // int scaleHeight = 42; // if (PlatformUtil.needsCarbonToolBarFix()) { // scaleHeight = 32; // } // final Image image = new Image(toolbar.getDisplay(), // CommonImages.getImage(CommonImages.BLANK) // .getImageData() // .scaledTo(1, scaleHeight)); // item.setImage(image); // item.addDisposeListener(new DisposeListener() { // public void widgetDisposed(DisposeEvent e) { // image.dispose(); // } // }); // item.setWidth(5); // item.setEnabled(false); // } // }; // toolBarManager.add(spacer); // for (IFormPage page : getPages()) { // if (page instanceof AbstractTaskEditorPage) { // AbstractTaskEditorPage taskEditorPage = (AbstractTaskEditorPage) page; // taskEditorPage.fillLeftHeaderToolBar(toolBarManager); // } else if (page instanceof TaskPlanningEditor) { // TaskPlanningEditor taskEditorPage = (TaskPlanningEditor) page; // taskEditorPage.fillLeftHeaderToolBar(toolBarManager); // } // } // add external contributions menuService = (IMenuService) getSite().getService(IMenuService.class); if (menuService != null && toolBarManager instanceof ContributionManager) { menuService.populateContributionManager( (ContributionManager) toolBarManager, "toolbar:" //$NON-NLS-1$ + ID_TOOLBAR_HEADER + "." + taskRepository.getConnectorKind()); // $NON-NLS-1$ menuService.populateContributionManager( (ContributionManager) toolBarManager, "toolbar:" //$NON-NLS-1$ + ID_TOOLBAR_HEADER); } toolBarManager.update(true); // XXX move this call updateLeftHeaderToolBar(); updateHeader(); }
private void updateLeftHeaderToolBar() { leftToolBarManager.removeAll(); leftToolBarManager.add(new Separator("activation")); // $NON-NLS-1$ leftToolBarManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); // initialLeftToolbarSize = leftToolBarManager.getSize(); leftToolBarManager.add(activateAction); // for (IFormPage page : getPages()) { // if (page instanceof AbstractTaskEditorPage) { // AbstractTaskEditorPage taskEditorPage = (AbstractTaskEditorPage) page; // taskEditorPage.fillLeftHeaderToolBar(leftToolBarManager); // } else if (page instanceof TaskPlanningEditor) { // TaskPlanningEditor taskEditorPage = (TaskPlanningEditor) page; // taskEditorPage.fillLeftHeaderToolBar(leftToolBarManager); // } // } // add external contributions menuService = (IMenuService) getSite().getService(IMenuService.class); if (menuService != null && leftToolBarManager instanceof ContributionManager) { TaskRepository outgoingNewRepository = TasksUiUtil.getOutgoingNewTaskRepository(task); TaskRepository taskRepository = (outgoingNewRepository != null) ? outgoingNewRepository : taskEditorInput.getTaskRepository(); menuService.populateContributionManager( leftToolBarManager, "toolbar:" + ID_LEFT_TOOLBAR_HEADER + "." //$NON-NLS-1$ //$NON-NLS-2$ + taskRepository.getConnectorKind()); } leftToolBarManager.update(true); if (hasLeftToolBar()) { // XXX work around a bug in Gtk that causes the toolbar size to be incorrect if no // tool bar buttons are contributed // if (leftToolBar != null) { // Point size = leftToolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT, false); // boolean changed = false; // for (Control control : leftToolBar.getChildren()) { // final Point childSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT, false); // if (childSize.y > size.y) { // size.y = childSize.y; // changed = true; // } // } // if (changed) { // leftToolBar.setSize(size); // } // } // // if (PlatformUtil.isToolBarHeightBroken(leftToolBar)) { // ToolItem item = new ToolItem(leftToolBar, SWT.NONE); // item.setEnabled(false); // item.setImage(CommonImages.getImage(CommonImages.BLANK)); // item.setWidth(1); // noExtraPadding = true; // } else if (PlatformUtil.needsToolItemToForceToolBarHeight()) { // ToolItem item = new ToolItem(leftToolBar, SWT.NONE); // item.setEnabled(false); // int scaleHeight = 22; // if (PlatformUtil.needsCarbonToolBarFix()) { // scaleHeight = 32; // } // final Image image = new Image(item.getDisplay(), // CommonImages.getImage(CommonImages.BLANK) // .getImageData() // .scaledTo(1, scaleHeight)); // item.setImage(image); // item.addDisposeListener(new DisposeListener() { // public void widgetDisposed(DisposeEvent e) { // image.dispose(); // } // }); // item.setWidth(1); // noExtraPadding = true; // } // fix size of toolbar on Gtk with Eclipse 3.3 Point size = leftToolBar.getSize(); if (size.x == 0 && size.y == 0) { size = leftToolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT, true); leftToolBar.setSize(size); } } }