diff -r 7903a1588fd4 -r 536cdcdc768b core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/SDKPreferencePage.java --- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/SDKPreferencePage.java Thu Jun 03 09:58:29 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/SDKPreferencePage.java Thu Jun 03 17:43:59 2010 -0500 @@ -32,6 +32,9 @@ import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ColumnViewer; +import org.eclipse.jface.viewers.ColumnViewerEditor; +import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent; +import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy; import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; @@ -40,6 +43,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewerColumn; +import org.eclipse.jface.viewers.TableViewerEditor; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -124,8 +128,16 @@ @Override protected void setValue(Object element, Object value) { + String sdkID = value.toString(); + + // check for spaces in ID + if (sdkID.contains(" ")){ //$NON-NLS-1$ + MessageDialog.openError(getShell(), Messages.getString("AddSDKDialog.Invalid_SDK_ID"), Messages.getString("AddSDKDialog.SDK_ID_No_Spaces")); //$NON-NLS-1$ //$NON-NLS-2$ + return; + } + ISymbianSDK sdk = (ISymbianSDK) element; - sdk.setUniqueID(value.toString()); + sdk.setUniqueID(sdkID); SDKCorePlugin.getSDKManager().updateSDK(sdk); getViewer().refresh(); } @@ -197,6 +209,17 @@ } } + private class SDKViewerStrategy extends ColumnViewerEditorActivationStrategy { + public SDKViewerStrategy(ColumnViewer viewer) { + super(viewer); + } + + @Override + protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { + return (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION); + } + } + private class ScanJobListener implements IJobChangeListener { public void done(IJobChangeEvent event) { Display.getDefault().asyncExec(new Runnable() { @@ -331,11 +354,11 @@ // Buttons composite Composite composite1 = new Composite(content, SWT.NONE); - composite1.setLayoutData(new GridData()); gridLayout = new GridLayout(); gridLayout.makeColumnsEqualWidth = true; composite1.setLayout(gridLayout); GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false); + composite1.setLayoutData(gridData); // Add button addButton = new Button(composite1, SWT.NONE); @@ -456,11 +479,14 @@ final Table table = sdkListTableViewer.getTable(); GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); gridData.widthHint = 350; - gridData.heightHint = table.getItemHeight() * 6; + gridData.heightHint = table.getItemHeight() * 10; table.setLayoutData(gridData); table.setHeaderVisible(true); table.setLinesVisible(false); + SDKViewerStrategy strategy = new SDKViewerStrategy(sdkListTableViewer); + TableViewerEditor.create(sdkListTableViewer, strategy, ColumnViewerEditor.DEFAULT); + TableViewerColumn enabledCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT); enabledCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Enabled_Column_Label")); //$NON-NLS-1$ enabledCol.getColumn().setWidth(50); @@ -506,15 +532,11 @@ private void handlePropertiesButton() { ISymbianSDK sdk = (ISymbianSDK)((IStructuredSelection)sdkListTableViewer.getSelection()).getFirstElement(); + int index = sdkListTableViewer.getTable().getSelectionIndex(); if (sdk != null){ SDKPropertiesDialog sdkPropDlg = new SDKPropertiesDialog(getShell(), sdk); - if (sdkPropDlg.open() == SDKPropertiesDialog.OK){ - sdkListTableViewer.refresh(); - updateSDKStatus(sdk); - // forcible rescan; dump cache - SymbianBuildContextDataCache.refreshForSDKs(new ISymbianSDK[] { sdk }); - sdkMgr.scanSDKs(); - } + sdkPropDlg.open(); + selectSDKEntry(index); } else { MessageDialog.openError(getShell(), Messages.getString("SDKPreferencePage.No_SDK_Selected"), Messages.getString("SDKPreferencePage.No_selected_SDK_detected")); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -614,7 +636,7 @@ // Check SDK OS Version if ((sdk.getOSVersion().getMajor() < 9 || - (sdk.getOSVersion().getMajor() == 9 && sdk.getOSVersion().getMinor() < 5))) { + (sdk.getOSVersion().getMajor() == 9 && sdk.getOSVersion().getMinor() < 4))) { statusError(MessageFormat.format( Messages.getString("SDKPreferencePage.Invalid_SDK_Message"), //$NON-NLS-1$ sdk.getOSVersion().toString())); //$NON-NLS-1$