core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/SBSv1PlatformFilterComposite.java
changeset 0 fb279309251b
child 266 c7ecdd0b9f52
equal deleted inserted replaced
-1:000000000000 0:fb279309251b
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 package com.nokia.carbide.cpp.internal.api.sdk.ui;
       
    18 
       
    19 import java.util.ArrayList;
       
    20 import java.util.List;
       
    21 
       
    22 import org.eclipse.jface.preference.IPreferenceStore;
       
    23 import org.eclipse.swt.SWT;
       
    24 import org.eclipse.swt.layout.GridData;
       
    25 import org.eclipse.swt.layout.GridLayout;
       
    26 import org.eclipse.swt.widgets.Button;
       
    27 import org.eclipse.swt.widgets.Composite;
       
    28 import org.eclipse.swt.widgets.Group;
       
    29 import org.eclipse.swt.widgets.Label;
       
    30 
       
    31 import com.nokia.carbide.cpp.internal.api.sdk.BuildPlat;
       
    32 import com.nokia.carbide.cpp.internal.sdk.ui.Messages;
       
    33 import com.nokia.carbide.cpp.internal.sdk.ui.SDKUIPreferenceConstants;
       
    34 import com.nokia.carbide.cpp.sdk.core.ISDKManager;
       
    35 import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
       
    36 import com.nokia.carbide.cpp.sdk.ui.SDKUIPlugin;
       
    37 
       
    38 /**
       
    39  * @since 1.4
       
    40  */
       
    41 public class SBSv1PlatformFilterComposite extends Composite {
       
    42 
       
    43 	private Button platEKA2_WINSCW;
       
    44 	private Button platEKA2_GCCE;
       
    45 	private Button platEKA2_ARMV5;
       
    46 	private Button platEKA2_ARMV5_ABIV2;
       
    47 	private Button platEKA2_ARMV5_ABIV1;
       
    48 	
       
    49 	private Button platEKA1_WINSCW;
       
    50 	private Button platEKA1_ARMI;
       
    51 	private Button platEKA1_ARM4;
       
    52 	private Button platEKA1_THUMB;
       
    53 	
       
    54 	private Button enableBSFScanner;
       
    55 
       
    56 	
       
    57 	SBSv1PlatformFilterComposite(Composite parent) {
       
    58 		super(parent, SWT.NONE);
       
    59 	}
       
    60 
       
    61 	public void createControls() {
       
    62 		GridLayout gridLayout = new GridLayout();
       
    63 		setLayout(gridLayout);
       
    64 		
       
    65 		Label selectWhichPlatformsLabel = new Label(this, SWT.NONE);
       
    66 		selectWhichPlatformsLabel.setLayoutData(new GridData());
       
    67 		selectWhichPlatformsLabel.setText(Messages.getString("BuildPlatformFilterPage.Select_Platforms_Help")); //$NON-NLS-1$
       
    68 
       
    69 		Group eka2PlatformsGroup = new Group(this, SWT.NONE);
       
    70 		eka2PlatformsGroup.setToolTipText(Messages.getString("BuildPlatformFilterPage.Specify_Platforms_Help")); //$NON-NLS-1$
       
    71 		eka2PlatformsGroup.setText(Messages.getString("BuildPlatformFilterPage.EKA2_Platforms")); //$NON-NLS-1$
       
    72 		eka2PlatformsGroup.setLayoutData(new GridData(254, SWT.DEFAULT));
       
    73 		eka2PlatformsGroup.setLayout(new GridLayout());
       
    74 		
       
    75 		platEKA2_WINSCW = new Button(eka2PlatformsGroup, SWT.CHECK);
       
    76 		platEKA2_WINSCW.setLayoutData(new GridData(220, SWT.DEFAULT));
       
    77 		platEKA2_WINSCW.setText("Emulation (WINSCW)"); //$NON-NLS-1$
       
    78 		platEKA2_WINSCW.setToolTipText(""); //$NON-NLS-1$
       
    79 
       
    80 		platEKA2_GCCE = new Button(eka2PlatformsGroup, SWT.CHECK);
       
    81 		platEKA2_GCCE.setText("GCCE"); //$NON-NLS-1$
       
    82 
       
    83 		platEKA2_ARMV5 = new Button(eka2PlatformsGroup, SWT.CHECK);
       
    84 		platEKA2_ARMV5.setText("ARMV5"); //$NON-NLS-1$
       
    85 
       
    86 		platEKA2_ARMV5_ABIV2 = new Button(eka2PlatformsGroup, SWT.CHECK);
       
    87 		platEKA2_ARMV5_ABIV2.setText("ARMV5_ABIV2 (OS 9.1-9.3)"); //$NON-NLS-1$
       
    88 		
       
    89 		platEKA2_ARMV5_ABIV1 = new Button(eka2PlatformsGroup, SWT.CHECK);
       
    90 		platEKA2_ARMV5_ABIV1.setText("ARMV5_ABIV1 (OS 9.4+)"); //$NON-NLS-1$
       
    91 
       
    92 		Group eka1PlatformsGroup = new Group(this, SWT.NONE);
       
    93 		eka1PlatformsGroup.setToolTipText(Messages.getString("BuildPlatformFilterPage.Specify_Platforms_Help2")); //$NON-NLS-1$
       
    94 		eka1PlatformsGroup.setLayoutData(new GridData(258, SWT.DEFAULT));
       
    95 		eka1PlatformsGroup.setText(Messages.getString("BuildPlatformFilterPage.EKA1_Platforms_Label")); //$NON-NLS-1$
       
    96 		eka1PlatformsGroup.setLayout(new GridLayout());
       
    97 
       
    98 		platEKA1_WINSCW = new Button(eka1PlatformsGroup, SWT.CHECK);
       
    99 		platEKA1_WINSCW.setText("Emulation (WINSCW)"); //$NON-NLS-1$
       
   100 
       
   101 		platEKA1_ARMI = new Button(eka1PlatformsGroup, SWT.CHECK);
       
   102 		platEKA1_ARMI.setText("ARMI"); //$NON-NLS-1$
       
   103 
       
   104 		platEKA1_ARM4 = new Button(eka1PlatformsGroup, SWT.CHECK);
       
   105 		platEKA1_ARM4.setText("ARM4"); //$NON-NLS-1$
       
   106 
       
   107 		platEKA1_THUMB = new Button(eka1PlatformsGroup, SWT.CHECK);
       
   108 		platEKA1_THUMB.setText("THUMB"); //$NON-NLS-1$
       
   109 
       
   110 		enableBSFScanner = new Button(this, SWT.CHECK);
       
   111 		enableBSFScanner.setToolTipText(Messages.getString("BuildPlatformFilterPage.BSF_Help")); //$NON-NLS-1$
       
   112 		enableBSFScanner.setText(Messages.getString("BuildPlatformFilterPage.BSF_Label")); //$NON-NLS-1$
       
   113 				
       
   114 		setCheckBoxSettings();
       
   115 	}
       
   116 
       
   117 	private void setCheckBoxSettings() {
       
   118 		List<BuildPlat> bldPlatList = new ArrayList<BuildPlat>();
       
   119 		bldPlatList = getPlatFilterPrefsStore();
       
   120 		
       
   121 		ISDKManager sdkMgr = SDKCorePlugin.getSDKManager();
       
   122 		enableBSFScanner.setSelection(sdkMgr.getBSFScannerEnabled());
       
   123 		
       
   124 		for (BuildPlat currBldPlat : bldPlatList) {
       
   125 			if (currBldPlat.getPlatName().equals("WINSCW")){ //$NON-NLS-1$
       
   126 				if (currBldPlat.getOsIdentifier().equals(BuildPlat.EKA1_IDENTIFIER)){
       
   127 					platEKA1_WINSCW.setSelection(currBldPlat.isEnabled());
       
   128 				} else {
       
   129 					platEKA2_WINSCW.setSelection(currBldPlat.isEnabled());
       
   130 				}
       
   131 			} else if (currBldPlat.getPlatName().equals("THUMB")){ //$NON-NLS-1$
       
   132 				platEKA1_THUMB.setSelection(currBldPlat.isEnabled());
       
   133 			} else if (currBldPlat.getPlatName().equals("ARMI")){ //$NON-NLS-1$
       
   134 				platEKA1_ARMI.setSelection(currBldPlat.isEnabled());
       
   135 			} else if (currBldPlat.getPlatName().equals("ARM4")){ //$NON-NLS-1$
       
   136 				platEKA1_ARM4.setSelection(currBldPlat.isEnabled());
       
   137 			} else if (currBldPlat.getPlatName().equals("GCCE")){ //$NON-NLS-1$
       
   138 				platEKA2_GCCE.setSelection(currBldPlat.isEnabled());
       
   139 			} else if (currBldPlat.getPlatName().equals("ARMV5")){ //$NON-NLS-1$
       
   140 				platEKA2_ARMV5.setSelection(currBldPlat.isEnabled());
       
   141 			} else if (currBldPlat.getPlatName().equals("ARMV5_ABIV2")){ //$NON-NLS-1$
       
   142 				platEKA2_ARMV5_ABIV2.setSelection(currBldPlat.isEnabled());
       
   143 			} else if (currBldPlat.getPlatName().equals("ARMV5_ABIV1")){ //$NON-NLS-1$
       
   144 				platEKA2_ARMV5_ABIV1.setSelection(currBldPlat.isEnabled());
       
   145 			}
       
   146 		}
       
   147 	}
       
   148 
       
   149 	public static List<BuildPlat> getPlatFilterPrefsStore() {
       
   150 		
       
   151 		List<BuildPlat> buildPlatList = new ArrayList<BuildPlat>();
       
   152 		
       
   153 		IPreferenceStore prefsStore = SDKUIPlugin.getDefault().getPreferenceStore();
       
   154 		
       
   155 		ISDKManager sdkMgr = SDKCorePlugin.getSDKManager();
       
   156 		sdkMgr.enableBSFScanner(prefsStore.getBoolean(SDKUIPreferenceConstants.ENABLE_BSF_SCANNER));
       
   157 		
       
   158 		BuildPlat bldPlat = new BuildPlat("WINSCW", BuildPlat.EKA1_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA1_WINSCW));
       
   159 		buildPlatList.add(bldPlat);
       
   160 		buildPlatList.add(new BuildPlat("ARM4", BuildPlat.EKA1_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA1_ARM4)));
       
   161 		buildPlatList.add(new BuildPlat("ARMI", BuildPlat.EKA1_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA1_ARMI)));
       
   162 		buildPlatList.add(new BuildPlat("THUMB", BuildPlat.EKA1_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA1_THUMB)));
       
   163 		
       
   164 		buildPlatList.add(new BuildPlat("WINSCW", BuildPlat.EKA2_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA2_WINSCW)));
       
   165 		buildPlatList.add(new BuildPlat("ARMV5",  BuildPlat.EKA2_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5)));
       
   166 		buildPlatList.add(new BuildPlat("ARMV5_ABIV2", BuildPlat.EKA2_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV2)));
       
   167 		buildPlatList.add(new BuildPlat("ARMV5_ABIV1", BuildPlat.EKA2_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV1)));
       
   168 
       
   169 		buildPlatList.add(new BuildPlat("GCCE", BuildPlat.EKA2_IDENTIFIER, prefsStore.getBoolean(SDKUIPreferenceConstants.PLAT_EKA2_GCCE)));
       
   170 		
       
   171 		sdkMgr.setPlatformList(buildPlatList);
       
   172 		
       
   173 		return buildPlatList;
       
   174 	}
       
   175 
       
   176 	public void performOk() {
       
   177 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.ENABLE_BSF_SCANNER, enableBSFScanner.getSelection());
       
   178 		
       
   179 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA2_WINSCW, platEKA2_WINSCW.getSelection());
       
   180 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA2_GCCE, platEKA2_GCCE.getSelection());
       
   181 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5, platEKA2_ARMV5.getSelection());
       
   182 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV2, platEKA2_ARMV5_ABIV2.getSelection());
       
   183 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV1, platEKA2_ARMV5_ABIV1.getSelection());
       
   184 		
       
   185 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA1_WINSCW, platEKA1_WINSCW.getSelection());
       
   186 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA1_THUMB, platEKA1_THUMB.getSelection());
       
   187 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA1_ARMI, platEKA1_ARMI.getSelection());
       
   188 		writePlatFilterOptionSetting(SDKUIPreferenceConstants.PLAT_EKA1_ARM4, platEKA1_ARM4.getSelection());
       
   189 		
       
   190 		// update data structures that are passed back to the sdk.core
       
   191 		getPlatFilterPrefsStore();
       
   192 	}
       
   193 	
       
   194 	private void writePlatFilterOptionSetting(String platFilterIdName, boolean value){
       
   195 		IPreferenceStore prefsStore = SDKUIPlugin.getDefault().getPreferenceStore();
       
   196 		
       
   197 		if (platFilterIdName.equals(SDKUIPreferenceConstants.ENABLE_BSF_SCANNER)){
       
   198 			prefsStore.setValue(SDKUIPreferenceConstants.ENABLE_BSF_SCANNER, value);
       
   199 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA1_ARM4)){
       
   200 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA1_ARM4, value);
       
   201 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA1_ARMI)){
       
   202 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA1_ARMI, value);
       
   203 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA1_THUMB)){
       
   204 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA1_THUMB, value);
       
   205 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA1_WINSCW)){
       
   206 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA1_WINSCW, value);
       
   207 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5)){
       
   208 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5, value);
       
   209 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV2)){
       
   210 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV2, value);
       
   211 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV1)){
       
   212 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA2_ARMV5_ABIV1, value);
       
   213 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA2_GCCE)){
       
   214 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA2_GCCE, value);
       
   215 		} else if (platFilterIdName.equals(SDKUIPreferenceConstants.PLAT_EKA2_WINSCW)){
       
   216 			prefsStore.setValue(SDKUIPreferenceConstants.PLAT_EKA2_WINSCW, value);
       
   217 		}
       
   218 		
       
   219 	}
       
   220 }