lttng-rcp: create separate RCP branding feature
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tracing.rcp.ui / src / org / eclipse / linuxtools / internal / tracing / rcp / ui / ApplicationWorkbenchAdvisor.java
1 /**********************************************************************
2 * Copyright (c) 2013 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
12 package org.eclipse.linuxtools.internal.tracing.rcp.ui;
13
14 import java.net.URL;
15
16 import org.eclipse.core.resources.IWorkspace;
17 import org.eclipse.core.resources.ResourcesPlugin;
18 import org.eclipse.core.runtime.FileLocator;
19 import org.eclipse.core.runtime.IAdaptable;
20 import org.eclipse.core.runtime.Path;
21 import org.eclipse.core.runtime.Platform;
22 import org.eclipse.jface.resource.ImageDescriptor;
23 import org.eclipse.ui.application.IWorkbenchConfigurer;
24 import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
25 import org.eclipse.ui.application.WorkbenchAdvisor;
26 import org.eclipse.ui.application.WorkbenchWindowAdvisor;
27 import org.eclipse.ui.ide.IDE;
28 import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
29 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
30 import org.osgi.framework.Bundle;
31
32
33 /**
34 * WorkbenchAdvisor implementation of the LTTng RCP.
35 *
36 * @author Bernd Hufmann
37 */
38 @SuppressWarnings("restriction")
39 public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
40
41 // ------------------------------------------------------------------------
42 // Constants
43 // ------------------------------------------------------------------------
44 // The default perspective
45 private static final String PERSPECTIVE_ID = "org.eclipse.linuxtools.tmf.ui.perspective"; //$NON-NLS-1$
46
47 private final static String ICONS_PATH = "$nl$/icons/full/"; //$NON-NLS-1$
48 private final static String PATH_ELOCALTOOL = ICONS_PATH + "elcl16/"; //$NON-NLS-1$
49 private final static String PATH_DLOCALTOOL = ICONS_PATH + "dlcl16/"; //$NON-NLS-1$
50 private final static String PATH_ETOOL = ICONS_PATH + "etool16/"; //$NON-NLS-1$
51 private final static String PATH_DTOOL = ICONS_PATH + "dtool16/"; //$NON-NLS-1$
52 private final static String PATH_OBJECT = ICONS_PATH + "obj16/"; //$NON-NLS-1$
53 private final static String PATH_WIZBAN = ICONS_PATH + "wizban/";//$NON-NLS-1$
54
55 // ------------------------------------------------------------------------
56 // Operations
57 // ------------------------------------------------------------------------
58 @Override
59 public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
60 return new ApplicationWorkbenchWindowAdvisor(configurer);
61 }
62
63 @Override
64 public void initialize(IWorkbenchConfigurer configurer) {
65 configurer.setSaveAndRestore(true);
66 declareWorkbenchImages();
67 }
68
69 @Override
70 public String getInitialWindowPerspectiveId() {
71 return PERSPECTIVE_ID;
72 }
73
74 @Override
75 public IAdaptable getDefaultPageInput() {
76 IWorkspace workspace = ResourcesPlugin.getWorkspace();
77 return workspace.getRoot();
78 }
79
80 @Override
81 public void preStartup() {
82 IDE.registerAdapters();
83 }
84
85 // ------------------------------------------------------------------------
86 // Helper methods
87 // ------------------------------------------------------------------------
88 private void declareWorkbenchImages() {
89
90 Bundle ideBundle = Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);
91
92 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC,
93 PATH_ETOOL + "build_exec.gif", false); //$NON-NLS-1$
94 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_HOVER,
95 PATH_ETOOL + "build_exec.gif", false); //$NON-NLS-1$
96 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_DISABLED,
97 PATH_DTOOL + "build_exec.gif", false); //$NON-NLS-1$
98
99 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC,
100 PATH_ETOOL + "search_src.gif", false); //$NON-NLS-1$
101 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_HOVER,
102 PATH_ETOOL + "search_src.gif", false); //$NON-NLS-1$
103 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_DISABLED,
104 PATH_DTOOL + "search_src.gif", false); //$NON-NLS-1$
105
106 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV, PATH_ETOOL
107 + "next_nav.gif", false); //$NON-NLS-1$
108
109 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV,
110 PATH_ETOOL + "prev_nav.gif", false); //$NON-NLS-1$
111
112 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_NEWPRJ_WIZ,
113 PATH_WIZBAN + "newprj_wiz.png", false); //$NON-NLS-1$
114 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFOLDER_WIZ,
115 PATH_WIZBAN + "newfolder_wiz.png", false); //$NON-NLS-1$
116 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFILE_WIZ,
117 PATH_WIZBAN + "newfile_wiz.png", false); //$NON-NLS-1$
118
119 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTDIR_WIZ,
120 PATH_WIZBAN + "importdir_wiz.png", false); //$NON-NLS-1$
121 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTZIP_WIZ,
122 PATH_WIZBAN + "importzip_wiz.png", false); //$NON-NLS-1$
123
124 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTDIR_WIZ,
125 PATH_WIZBAN + "exportdir_wiz.png", false); //$NON-NLS-1$
126 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTZIP_WIZ,
127 PATH_WIZBAN + "exportzip_wiz.png", false); //$NON-NLS-1$
128
129 declareWorkbenchImage(ideBundle,
130 IDEInternalWorkbenchImages.IMG_WIZBAN_RESOURCEWORKINGSET_WIZ, PATH_WIZBAN
131 + "workset_wiz.png", false); //$NON-NLS-1$
132
133 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_DLGBAN_SAVEAS_DLG,
134 PATH_WIZBAN + "saveas_wiz.png", false); //$NON-NLS-1$
135
136 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_DLGBAN_QUICKFIX_DLG,
137 PATH_WIZBAN + "quick_fix.png", false); //$NON-NLS-1$
138
139 declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT, PATH_OBJECT
140 + "prj_obj.gif", true); //$NON-NLS-1$
141 declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, PATH_OBJECT
142 + "cprj_obj.gif", true); //$NON-NLS-1$
143 declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OPEN_MARKER, PATH_ELOCALTOOL
144 + "gotoobj_tsk.gif", true); //$NON-NLS-1$
145
146 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ELCL_QUICK_FIX_ENABLED,
147 PATH_ELOCALTOOL + "smartmode_co.gif", true); //$NON-NLS-1$
148
149 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_DLCL_QUICK_FIX_DISABLED,
150 PATH_DLOCALTOOL + "smartmode_co.gif", true); //$NON-NLS-1$
151
152 declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_TASK_TSK, PATH_OBJECT
153 + "taskmrk_tsk.gif", true); //$NON-NLS-1$
154 declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_BKMRK_TSK, PATH_OBJECT
155 + "bkmrk_tsk.gif", true); //$NON-NLS-1$
156
157 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_COMPLETE_TSK,
158 PATH_OBJECT + "complete_tsk.gif", true); //$NON-NLS-1$
159 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_INCOMPLETE_TSK,
160 PATH_OBJECT + "incomplete_tsk.gif", true); //$NON-NLS-1$
161 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_ITEM,
162 PATH_OBJECT + "welcome_item.gif", true); //$NON-NLS-1$
163 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_BANNER,
164 PATH_OBJECT + "welcome_banner.gif", true); //$NON-NLS-1$
165 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_ERROR_PATH,
166 PATH_OBJECT + "error_tsk.gif", true); //$NON-NLS-1$
167 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_WARNING_PATH,
168 PATH_OBJECT + "warn_tsk.gif", true); //$NON-NLS-1$
169 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_OBJS_INFO_PATH, PATH_OBJECT
170 + "info_tsk.gif", true); //$NON-NLS-1$
171
172 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_LCL_FLAT_LAYOUT,
173 PATH_ELOCALTOOL + "flatLayout.gif", true); //$NON-NLS-1$
174 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_LCL_HIERARCHICAL_LAYOUT,
175 PATH_ELOCALTOOL + "hierarchicalLayout.gif", true); //$NON-NLS-1$
176 declareWorkbenchImage(ideBundle, IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEM_CATEGORY,
177 PATH_ETOOL + "problem_category.gif", true); //$NON-NLS-1$
178 }
179
180 /**
181 * Declares an IDE-specific workbench image.
182 *
183 * Declares all IDE-specific workbench images. This includes both "shared"
184 * images (named in ( @link IDE.SharedImages} ) and internal images (named in
185 * {@link org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages}).
186 *
187 * @param symbolicName
188 * the symbolic name of the image
189 * @param path
190 * the path of the image file; this path is relative to the base
191 * of the IDE plug-in
192 * @param shared
193 * <code>true</code> if this is a shared image, and
194 * <code>false</code> if this is not a shared image
195 */
196 private void declareWorkbenchImage(Bundle ideBundle, String symbolicName, String path, boolean shared) {
197 URL url = FileLocator.find(ideBundle, new Path(path), null);
198 ImageDescriptor desc = ImageDescriptor.createFromURL(url);
199 getWorkbenchConfigurer().declareImage(symbolicName, desc, shared);
200 }
201 }
This page took 0.03953 seconds and 6 git commands to generate.