blob: 7d4ee4b629e8c6dca9e2d7ca01df4a3f8494cdd8 [file] [log] [blame]
amywuecebb042007-04-10 20:07:35 +00001/*******************************************************************************
2 * Copyright (c) 2004, 2006 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
david_williams45687132005-04-13 14:38:17 +000011package org.eclipse.wst.xml.ui.internal.tabletree;
david_williams96213482004-11-11 09:07:12 +000012
13
14
15import org.eclipse.ui.IActionBars;
16import org.eclipse.ui.IEditorPart;
pavery2f6b6fb2005-03-29 21:09:57 +000017import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
david_williams96213482004-11-11 09:07:12 +000018
19
20public class XMLMultiPageEditorActionBarContributor extends SourceEditorActionBarContributor {
21
22 private boolean needsMultiInit = true;
23
24 public XMLMultiPageEditorActionBarContributor() {
25 super();
26 }
27
28 protected void initDesignViewerActionBarContributor(IActionBars actionBars) {
29 super.initDesignViewerActionBarContributor(actionBars);
30
david_williamsef7420b2006-11-23 04:30:09 +000031 if (designViewerActionBarContributor != null) {
32 if (designViewerActionBarContributor instanceof IDesignViewerActionBarContributor) {
david_williams96213482004-11-11 09:07:12 +000033 ((IDesignViewerActionBarContributor) designViewerActionBarContributor).initViewerSpecificContributions(actionBars);
david_williamsef7420b2006-11-23 04:30:09 +000034 }
35 }
david_williams96213482004-11-11 09:07:12 +000036 }
37
38 protected void activateDesignPage(IEditorPart activeEditor) {
david_williamsef7420b2006-11-23 04:30:09 +000039 if ((sourceViewerActionContributor != null) && (sourceViewerActionContributor instanceof ISourceViewerActionBarContributor)) {
david_williams96213482004-11-11 09:07:12 +000040 // if design page is not really an IEditorPart, activeEditor ==
41 // null, so pass in multiPageEditor instead (d282414)
42 if (activeEditor == null) {
43 sourceViewerActionContributor.setActiveEditor(multiPageEditor);
david_williamsef7420b2006-11-23 04:30:09 +000044 }
45 else {
david_williams96213482004-11-11 09:07:12 +000046 sourceViewerActionContributor.setActiveEditor(activeEditor);
47 }
48 ((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(false);
49 }
50
david_williamsef7420b2006-11-23 04:30:09 +000051 if ((designViewerActionBarContributor != null) && (designViewerActionBarContributor instanceof IDesignViewerActionBarContributor)) {
david_williams96213482004-11-11 09:07:12 +000052 designViewerActionBarContributor.setActiveEditor(multiPageEditor);
53 ((IDesignViewerActionBarContributor) designViewerActionBarContributor).setViewerSpecificContributionsEnabled(true);
54 }
55 }
56
57 protected void activateSourcePage(IEditorPart activeEditor) {
david_williamsef7420b2006-11-23 04:30:09 +000058 if ((designViewerActionBarContributor != null) && (designViewerActionBarContributor instanceof IDesignViewerActionBarContributor)) {
david_williams96213482004-11-11 09:07:12 +000059 designViewerActionBarContributor.setActiveEditor(multiPageEditor);
60 ((IDesignViewerActionBarContributor) designViewerActionBarContributor).setViewerSpecificContributionsEnabled(false);
61 }
62
david_williamsef7420b2006-11-23 04:30:09 +000063 if ((sourceViewerActionContributor != null) && (sourceViewerActionContributor instanceof ISourceViewerActionBarContributor)) {
david_williams96213482004-11-11 09:07:12 +000064 sourceViewerActionContributor.setActiveEditor(activeEditor);
65 ((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(true);
66 }
67 }
68
69 /*
70 * (non-Javadoc)
71 *
72 * @see org.eclipse.ui.part.EditorActionBarContributor#init(org.eclipse.ui.IActionBars)
73 */
74 public void init(IActionBars actionBars) {
75 super.init(actionBars);
76 needsMultiInit = true;
77 }
78
79 /*
80 * (non-Javadoc)
81 *
82 * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(org.eclipse.ui.IEditorPart)
83 */
84 public void setActiveEditor(IEditorPart targetEditor) {
85 if (needsMultiInit) {
86 designViewerActionBarContributor = new XMLTableTreeActionBarContributor();
87 initDesignViewerActionBarContributor(getActionBars());
88 needsMultiInit = false;
89 }
90 super.setActiveEditor(targetEditor);
91 }
92
amywuecebb042007-04-10 20:07:35 +000093}