summaryrefslogtreecommitdiffstats
path: root/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/ProjectSpecificContributionItem.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/ProjectSpecificContributionItem.java')
-rw-r--r--plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/ProjectSpecificContributionItem.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/ProjectSpecificContributionItem.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/ProjectSpecificContributionItem.java
new file mode 100644
index 0000000..c29d278
--- /dev/null
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/ProjectSpecificContributionItem.java
@@ -0,0 +1,69 @@
1/*******************************************************************************
2 * Copyright (c) 2013 BMW Car IT GmbH.
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 * BMW Car IT - initial implementation
10 *******************************************************************************/
11
12package org.yocto.sdk.ide;
13
14import java.util.ArrayList;
15
16import org.eclipse.core.resources.IProject;
17import org.eclipse.jface.action.IContributionItem;
18import org.eclipse.ui.menus.CommandContributionItem;
19import org.eclipse.ui.menus.CommandContributionItemParameter;
20import org.eclipse.ui.services.IServiceLocator;
21import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckResults;
22import org.yocto.sdk.ide.actions.ProfileSwitchHandler;
23import org.yocto.sdk.ide.utils.ProjectPreferenceUtils;
24
25public class ProjectSpecificContributionItem extends TargetProfileContributionItem {
26 private static final String PROJECT_SPECIFIC_PROFILE =
27 "Preferences.Profile.ProjectSpecific.Profile.Label"; //$NON-NLS-N$
28 private static final String DISABLED_COMMAND_ID = "org.yocto.sdk.ide.command.disabled"; //$NON-NLS-N$
29
30 private IServiceLocator serviceLocator;
31
32 public ProjectSpecificContributionItem() {}
33
34 public ProjectSpecificContributionItem(String id) {
35 super(id);
36 }
37
38 @Override
39 protected IContributionItem[] getContributionItems() {
40 ArrayList<IContributionItem> items = new ArrayList<IContributionItem>();
41
42 IProject project = getSelectedProject(serviceLocator);
43 YoctoUIElement yoctoUIElement = ProjectPreferenceUtils.getElem(project);
44 SDKCheckResults result = YoctoSDKChecker.checkYoctoSDK(yoctoUIElement);
45
46 if ((result != SDKCheckResults.SDK_PASS)) {
47 CommandContributionItemParameter parameter = new CommandContributionItemParameter(serviceLocator,
48 null,
49 DISABLED_COMMAND_ID,
50 CommandContributionItem.STYLE_PUSH);
51
52 parameter.label = YoctoSDKMessages.getString(PROJECT_SPECIFIC_PROFILE);
53
54 items.add(new CommandContributionItem(parameter));
55 } else {
56 items.add(super.createProfileItem(serviceLocator, ProfileSwitchHandler.PROJECT_SPECIFIC_PARAMETER,
57 YoctoSDKMessages.getString(PROJECT_SPECIFIC_PROFILE)));
58 }
59
60 updateSelection(serviceLocator);
61
62 return items.toArray(new IContributionItem[items.size()]);
63 }
64
65 @Override
66 public void initialize(IServiceLocator serviceLocator) {
67 this.serviceLocator = serviceLocator;
68 }
69}