Merged remote changes
authorEd Swartz <ed.swartz@nokia.com>
Mon, 30 Nov 2009 14:30:06 -0600
changeset 595 095227a6f442
parent 594 aa7a8dc8006a (current diff)
parent 586 089181adb8a9 (diff)
child 596 c94d1a58b611
child 604 80b7b738ee27
Merged remote changes
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java	Mon Nov 30 14:30:06 2009 -0600
@@ -46,7 +46,9 @@
 	private static final String S60_INC_MACROS_SF = "#include <platform_paths.hrh>\n#include <data_caging_paths.hrh>\nAPP_LAYER_SYSTEMINCLUDE";
 
 	private static final String BUILD_HELP_PREFIX = "buildHelpPrefix";
+	private static final String BUILD_HELP_SIS_PREFIX = "buildHelpSISPrefix";
 	private static final String DISABLE_HELP_STRING = "//";
+	private static final String DISABLE_HELP_PKG = ";";
 	private static final String HELP_COMPILER = "epoc32/tools/cshlpcmp.bat";
 	private static final String HELP_SUPPORT_MACRO = "helpSupport";
 	private static final String HELP_SUPPORT_STRING = "MACRO _HELP_AVAILABLE_";
@@ -63,14 +65,17 @@
 
 		boolean hasHelp = isHelpCompilerAvailable(template);
 		String enableHelpString = "";
+		String enableHelpSISString = "";
 		String helpSupportString = "";
 		if (hasHelp) {
 			helpSupportString = HELP_SUPPORT_STRING;
 		}
 		else {
 			enableHelpString = DISABLE_HELP_STRING;
+			enableHelpSISString = DISABLE_HELP_PKG;
 		}
 		template.getTemplateValues().put(BUILD_HELP_PREFIX, enableHelpString);
+		template.getTemplateValues().put(BUILD_HELP_SIS_PREFIX, enableHelpSISString);
 		template.getTemplateValues().put(HELP_SUPPORT_MACRO, helpSupportString);
 	}
 
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/LaunchTabHelpIds.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/LaunchTabHelpIds.java	Mon Nov 30 14:30:06 2009 -0600
@@ -56,6 +56,8 @@
 	
 	public static final String STOP_MODE_DEBUGGER = HelpID_Prefix + "stopmode_debugger"; //$NON-NLS-1$
 	
+	public static final String STOP_MODE_EXCEPTIONS = HelpID_Prefix + "stopmode_exceptions"; //$NON-NLS-1$
+	
 	public static final String STOP_MODE_T32_CONNECTION = HelpID_Prefix + "stopmode_t32connection"; //$NON-NLS-1$
 	
 	public static final String STOP_MODE_SOPHIA_CONNECTION = HelpID_Prefix + "stopmode_sophiaconnection"; //$NON-NLS-1$
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/SophiaConfigurationTabGroup.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/SophiaConfigurationTabGroup.java	Mon Nov 30 14:30:06 2009 -0600
@@ -32,6 +32,7 @@
 				new StopModeMainTab(),				
 				new SophiaTargetInterfaceTab(),
 				new StopModeDebuggerTab(),
+				new SymbianExceptionsTab(),
 				new RomImageTab(),
 				new ExecutablesTab(false),
 				new SourceLookupTab(),
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/SymbianExceptionsTab.java	Mon Nov 30 14:30:06 2009 -0600
@@ -0,0 +1,157 @@
+package com.nokia.cdt.internal.debug.launch.ui;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.PlatformUI;
+
+import com.nokia.cdt.internal.debug.launch.LaunchPlugin;
+
+import cwdbg.PreferenceConstants;
+
+public class SymbianExceptionsTab extends AbstractLaunchConfigurationTab {
+
+	private Button panicCheckbox;
+	private Combo panicCombo;
+	private Button swExcCheckbox;
+	private Combo swExcCombo;
+	private Button hwExcCheckbox;
+	private Combo hwExcCombo;
+	
+	public void createControl(Composite parent) {
+		Composite comp = new Composite(parent, SWT.NONE);
+		setControl(comp);
+		
+		GridLayout layout = new GridLayout(2, true);
+		comp.setLayout(layout);
+		
+		panicCheckbox = new Button(comp, SWT.CHECK);
+		panicCheckbox.setText(Messages.getString("SymbianExceptionsTab.Panic")); //$NON-NLS-1$
+		panicCheckbox.setToolTipText(Messages.getString("SymbianExceptionsTab.PanicToolTip")); //$NON-NLS-1$
+		panicCheckbox.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				if (panicCombo != null) {
+					panicCombo.setEnabled(panicCheckbox.getSelection());
+					updateLaunchConfigurationDialog();
+				}
+			}
+		});
+
+		panicCombo = new Combo(comp, SWT.DROP_DOWN | SWT.READ_ONLY);
+		panicCombo.add(Messages.getString("SymbianExceptionsTab.DebugThreads")); //$NON-NLS-1$
+		panicCombo.add(Messages.getString("SymbianExceptionsTab.AnyThread")); //$NON-NLS-1$
+		panicCombo.select(0);
+		panicCombo.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event e) {
+				updateLaunchConfigurationDialog();
+			}
+		});
+		
+		swExcCheckbox = new Button(comp, SWT.CHECK);
+		swExcCheckbox.setText(Messages.getString("SymbianExceptionsTab.SwExc")); //$NON-NLS-1$
+		swExcCheckbox.setToolTipText(Messages.getString("SymbianExceptionsTab.SwExcToolTip")); //$NON-NLS-1$
+		swExcCheckbox.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				if (swExcCombo != null) {
+					swExcCombo.setEnabled(swExcCheckbox.getSelection());
+					updateLaunchConfigurationDialog();
+				}
+			}
+		});
+
+		swExcCombo = new Combo(comp, SWT.DROP_DOWN | SWT.READ_ONLY);
+		swExcCombo.add(Messages.getString("SymbianExceptionsTab.DebugThreads")); //$NON-NLS-1$
+		swExcCombo.add(Messages.getString("SymbianExceptionsTab.AnyThread")); //$NON-NLS-1$
+		swExcCombo.select(0);
+		swExcCombo.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event e) {
+				updateLaunchConfigurationDialog();
+			}
+		});
+
+		hwExcCheckbox = new Button(comp, SWT.CHECK);
+		hwExcCheckbox.setText(Messages.getString("SymbianExceptionsTab.HwExc")); //$NON-NLS-1$
+		hwExcCheckbox.setToolTipText(Messages.getString("SymbianExceptionsTab.HwExcToolTip")); //$NON-NLS-1$
+		hwExcCheckbox.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				if (hwExcCombo != null) {
+					hwExcCombo.setEnabled(hwExcCheckbox.getSelection());
+					updateLaunchConfigurationDialog();
+				}
+			}
+		});
+
+		hwExcCombo = new Combo(comp, SWT.DROP_DOWN | SWT.READ_ONLY);
+		hwExcCombo.add(Messages.getString("SymbianExceptionsTab.DebugThreads")); //$NON-NLS-1$
+		hwExcCombo.add(Messages.getString("SymbianExceptionsTab.AnyThread")); //$NON-NLS-1$
+		hwExcCombo.select(0);
+		hwExcCombo.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event e) {
+				updateLaunchConfigurationDialog();
+			}
+		});
+
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), LaunchTabHelpIds.STOP_MODE_EXCEPTIONS);
+		Dialog.applyDialogFont(parent);
+	}
+
+	public void initializeFrom(ILaunchConfiguration configuration) {
+		try {
+			panicCheckbox.setSelection(configuration.getAttribute(PreferenceConstants.J_PN_StopModeEnablePanics, true));
+			panicCombo.select(configuration.getAttribute(PreferenceConstants.J_PN_StopModeEnablePanicsForDebugThreadsOnly, true) ? 0 : 1);
+			panicCombo.setEnabled(panicCheckbox.getSelection());
+
+			swExcCheckbox.setSelection(configuration.getAttribute(PreferenceConstants.J_PN_StopModeEnableSwExcs, true));
+			swExcCombo.select(configuration.getAttribute(PreferenceConstants.J_PN_StopModeEnableSwExcsForDebugThreadsOnly, true) ? 0 : 1);
+			swExcCombo.setEnabled(swExcCheckbox.getSelection());
+
+			hwExcCheckbox.setSelection(configuration.getAttribute(PreferenceConstants.J_PN_StopModeEnableHwExcs, true));
+			hwExcCombo.select(configuration.getAttribute(PreferenceConstants.J_PN_StopModeEnableHwExcsForDebugThreadsOnly, true) ? 0 : 1);
+			hwExcCombo.setEnabled(hwExcCheckbox.getSelection());
+		} catch (CoreException e) {
+			LaunchPlugin.log(e);
+		}
+	}
+
+	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
+		configuration.setAttribute(PreferenceConstants.J_PN_StopModeEnablePanics, panicCheckbox.getSelection());
+		configuration.setAttribute(PreferenceConstants.J_PN_StopModeEnablePanicsForDebugThreadsOnly, panicCombo.getSelectionIndex() == 0);
+
+		configuration.setAttribute(PreferenceConstants.J_PN_StopModeEnableSwExcs, swExcCheckbox.getSelection());
+		configuration.setAttribute(PreferenceConstants.J_PN_StopModeEnableSwExcsForDebugThreadsOnly, swExcCombo.getSelectionIndex() == 0);
+
+		configuration.setAttribute(PreferenceConstants.J_PN_StopModeEnableHwExcs, hwExcCheckbox.getSelection());
+		configuration.setAttribute(PreferenceConstants.J_PN_StopModeEnableHwExcsForDebugThreadsOnly, hwExcCombo.getSelectionIndex() == 0);
+	}
+
+	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
+	}
+
+	public String getName() {
+		return Messages.getString("SymbianExceptionsTab.name"); //$NON-NLS-1$
+	}
+
+	public Image getImage() {
+		return LaunchImages.get(LaunchImages.IMG_VIEW_EXCEPTIONS_TAB);
+	}
+
+	@Override
+	public void activated(ILaunchConfigurationWorkingCopy workingCopy) {
+		super.activated(workingCopy);
+		
+		// forces page to get focus so that help works without having to select some control first.
+		getControl().setFocus();
+	}
+}
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/T32StopModeConfigurationTabGroup.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/T32StopModeConfigurationTabGroup.java	Mon Nov 30 14:30:06 2009 -0600
@@ -32,6 +32,7 @@
 				new StopModeMainTab(),				
 				new Trace32ConnectionTab(),
 				new StopModeDebuggerTab(),
+				new SymbianExceptionsTab(),
 				new RomImageTab(),	
 				new ExecutablesTab(false),
 				new SourceLookupTab(),
--- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/messages.properties	Mon Nov 16 11:11:50 2009 -0600
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/messages.properties	Mon Nov 30 14:30:06 2009 -0600
@@ -277,3 +277,14 @@
 ChooseProcessDialog.NameFilterInitialText=type filter text
 ChooseProcessDialog.NameFilterToolTip=Filter the visible items by name, using prefix, ? = any character, * = any string, or camel case initials
 ChooseProcessDialog.ClearToolTip=Clear
+SymbianExceptionsTab.name=Exceptions
+SymbianExceptionsTab.Panic=Stop thread on panic
+SymbianExceptionsTab.PanicToolTip=Enable to halt thread in debugger when the thread panics
+SymbianExceptionsTab.SwExc=Stop thread on software exception
+SymbianExceptionsTab.SwExcToolTip=Enable to halt thread in debugger when the thread encounters a software exception
+SymbianExceptionsTab.HwExc=Stop thread on hardware exception
+SymbianExceptionsTab.HwExcToolTip=Enable to halt thread in debugger when the thread encounters a hardware exception
+SymbianExceptionsTab.DebugThreads=Only threads being debugged
+SymbianExceptionsTab.AnyThread=Any thread
+
+
--- a/project/com.nokia.carbide.cpp.epoc.engine/META-INF/MANIFEST.MF	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.epoc.engine/META-INF/MANIFEST.MF	Mon Nov 30 14:30:06 2009 -0600
@@ -20,10 +20,10 @@
  com.nokia.carbide.cpp.epoc.engine.model,
  com.nokia.carbide.cpp.epoc.engine.model.bldinf,
  com.nokia.carbide.cpp.epoc.engine.model.bsf,
-  com.nokia.carbide.cpp.epoc.engine.model.sbv,
  com.nokia.carbide.cpp.epoc.engine.model.makefile,
  com.nokia.carbide.cpp.epoc.engine.model.makefile.image,
  com.nokia.carbide.cpp.epoc.engine.model.mmp,
+ com.nokia.carbide.cpp.epoc.engine.model.sbv,
  com.nokia.carbide.cpp.epoc.engine.preprocessor,
  com.nokia.carbide.internal.api.cpp.epoc.engine.dom,
  com.nokia.carbide.internal.api.cpp.epoc.engine.dom.bldinf,
@@ -40,6 +40,7 @@
  com.nokia.carbide.internal.cpp.epoc.engine.image;x-friends:="com.nokia.carbide.cpp.epoc.engine.tests",
  com.nokia.carbide.internal.cpp.epoc.engine.model;x-friends:="com.nokia.carbide.cpp.epoc.engine.tests",
  com.nokia.carbide.internal.cpp.epoc.engine.model.bsf;x-friends:="com.nokia.carbide.cpp.epoc.engine.tests",
+ com.nokia.carbide.internal.cpp.epoc.engine.model.mmp,
  com.nokia.carbide.internal.cpp.epoc.engine.model.pkg;x-friends:="com.nokia.carbide.cpp.epoc.engine.tests",
  com.nokia.carbide.internal.cpp.epoc.engine.parser;x-friends:="com.nokia.carbide.cpp.epoc.engine.tests,com.nokia.sdt.sourcegen",
  com.nokia.carbide.internal.cpp.epoc.engine.parser.bldinf;x-friends:="com.nokia.carbide.cpp.epoc.engine.tests",
--- a/project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.ui/META-INF/MANIFEST.MF	Mon Nov 30 14:30:06 2009 -0600
@@ -40,6 +40,8 @@
  com.nokia.carbide.cpp.internal.project.ui.images,
  com.nokia.carbide.cpp.internal.project.ui.images.providers,
  com.nokia.carbide.cpp.internal.project.ui.importWizards,
+ com.nokia.carbide.cpp.internal.project.ui.mmpEditor,
+ com.nokia.carbide.cpp.internal.project.ui.mmpEditor.dialogs,
  com.nokia.carbide.cpp.internal.project.ui.mmpEditor.testapi;x-friends:="com.nokia.carbide.automation.utils",
  com.nokia.carbide.cpp.internal.project.ui.sharedui,
  com.nokia.carbide.cpp.internal.project.ui.views,
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/images/AIFEditorDialog.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/images/AIFEditorDialog.java	Mon Nov 30 14:30:06 2009 -0600
@@ -129,4 +129,12 @@
 		super.create();
 		updateValidationMessage();
 	}
+
+	public AIFEditorContext getContext() {
+		return context;
+	}
+
+	public AIFEditorListPage getPage() {
+		return page;
+	}
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/images/MultiImageEditorDialog.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/editors/images/MultiImageEditorDialog.java	Mon Nov 30 14:30:06 2009 -0600
@@ -130,4 +130,12 @@
 		super.create();
 		updateValidationMessage();
 	}
+
+	public MultiImageEditorContext getContext() {
+		return context;
+	}
+
+	public MultiImageListPage getPage() {
+		return page;
+	}
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcePresentationModel.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcePresentationModel.java	Mon Nov 30 14:30:06 2009 -0600
@@ -92,6 +92,7 @@
 			ResourceBlockDialog dialog = new ResourceBlockDialog(getViewer().getControl().getShell(),
 					editorContext.project, resourceBlock, editorContext.pathHelper,
 					editorContext.activeBuildConfig, editorContext.getSecureID());
+			setDialog(dialog);
 			if (dialog.open() == Dialog.OK) {
 				List<IMMPResource> items = new ArrayList<IMMPResource>();
 				items.add(resourceBlock);
@@ -143,6 +144,7 @@
 						editorContext.project, newValue, editorContext.pathHelper,
 						editorContext.activeBuildConfig,
 						editorContext.getSecureID());
+				setDialog(dialog);
 				if (dialog.open() == Dialog.OK) {
 					Map<Integer, Object> replaceMap = new HashMap<Integer, Object>();
 					replaceMap.put(index, newValue);
@@ -272,6 +274,7 @@
 					null, EMMPPathContext.START_RESOURCE, editorContext.pathHelper,
 					editorContext.activeBuildConfig,
 					getRSSFiles(), new String[] {"*.rss"}); //$NON-NLS-1$
+			setDialog(dialog);
 			if (dialog.open() == Dialog.OK) {
 				List<IPath> items = new ArrayList<IPath>();
 				items.add(dialog.getResultPath());
@@ -291,6 +294,7 @@
 						value, EMMPPathContext.START_RESOURCE, editorContext.pathHelper,
 						editorContext.activeBuildConfig,
 						getRSSFiles(), new String[] {"*.rss"}); //$NON-NLS-1$
+				setDialog(dialog);
 				if (dialog.open() == Dialog.OK) {
 					int index = listProvider.fetchList(editorContext.mmpView).indexOf(value);
 					Check.checkState(index >= 0);
@@ -356,6 +360,7 @@
 					editorContext.mmpView.getAifs(),
 					editorContext.pathHelper, getRSSFiles());
 			AIFEditorDialog dialog = new AIFEditorDialog(getViewer().getControl().getShell(), context);
+			setDialog(dialog);
 			if (dialog.open() == Dialog.OK && context.isDirty()) {
 				context.doSave();
 				List<IMMPAIFInfo> items = new ArrayList<IMMPAIFInfo>();
@@ -380,6 +385,7 @@
 						editorContext.mmpView.getAifs(),
 						editorContext.pathHelper, getRSSFiles());
 				AIFEditorDialog dialog = new AIFEditorDialog(getViewer().getControl().getShell(), context);
+				setDialog(dialog);
 				if (dialog.open() == Dialog.OK && context.isDirty()) {
 					IMMPAIFInfo newInfo = context.getMMPAIFInfo();
 					int index = editorContext.mmpView.getAifs().indexOf(info);
@@ -451,7 +457,7 @@
 			
 			MultiImageEditorContext context = createEditorContext(bitmap);
 			MultiImageEditorDialog dialog = new MultiImageEditorDialog(editorContext.editor.getSite().getShell(), context);
-			
+			setDialog(dialog);
 			if (dialog.open() == IDialogConstants.OK_ID) {
 				// initialize the contents of the bitmap beforehand (non-undoable)
 				// since we need to access this entry by its target file path,
@@ -494,6 +500,7 @@
 				IMMPBitmap bitmap = lookupBitmap((IPath) element);
 				MultiImageEditorContext context = createEditorContext(bitmap);
 				MultiImageEditorDialog dialog = new MultiImageEditorDialog((Shell) editorContext.editor.getAdapter(Shell.class), context);
+				setDialog(dialog);
 				if (dialog.open() == Dialog.OK && context.isDirty()) {
 					IUndoableOperation operation = context.getEditingOperation();
 					WrappedUndoableOperation editingOperation = new WrappedUndoableOperation(
@@ -597,6 +604,7 @@
 					EMMPLanguage.values(),
 					new ArrayContentProvider(), new LabelProvider(), 
 					Messages.ResourceModel_editLanguagesDialogPrompt);
+			setDialog(dialog);
 			dialog.setInitialElementSelections(listProvider.fetchList(editorContext.mmpView));
 			if (dialog.open() == Dialog.OK) {
 				Object[] selectedLanguages = dialog.getResult();
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcesSectionPart.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/ResourcesSectionPart.java	Mon Nov 30 14:30:06 2009 -0600
@@ -20,6 +20,7 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.*;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyAdapter;
@@ -56,6 +57,7 @@
 	private Button removeButton;
 	private Button editButton;
 	private Button addButton;
+	private Dialog resourceDialog;
 	
 	class TreeLabelProvider extends LabelProvider {
 		
@@ -307,6 +309,7 @@
 		TreePresentationModel.ITreeNode container = getSelectedContainer();
 		if (container != null) {
 			container.doAdd();
+			resourceDialog = container.getDialog();
 		}
 	}
 
@@ -316,6 +319,7 @@
 			ITreeNode container = getSelectedContainer();
 			if (container != null) {
 				container.doEdit(selection.object);
+				resourceDialog = container.getDialog();
 			}
 		}
 	}
@@ -380,4 +384,11 @@
 		return removeButton;
 	}
 
+	public TreePresentationModel getResourcePresentationModel() {
+		return model;
+	}
+
+	public Dialog getResourceDialog() {
+		return resourceDialog;
+	}
 }
--- a/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/TreePresentationModel.java	Mon Nov 16 11:11:50 2009 -0600
+++ b/project/com.nokia.carbide.cpp.project.ui/src/com/nokia/carbide/cpp/internal/project/ui/mmpEditor/TreePresentationModel.java	Mon Nov 30 14:30:06 2009 -0600
@@ -18,6 +18,7 @@
 
 import java.util.*;
 
+import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.*;
 
 import com.nokia.carbide.cpp.internal.project.ui.editors.common.ControlHandler;
@@ -50,7 +51,9 @@
 		void doAdd();
 		void doEdit(Object element);
 		void doRemove(Object element);
-		
+		Dialog getDialog();
+		void setDialog(Dialog dialog);
+
 		/**
 		 * Refresh from the model. If there's no caching or mapping of
 		 * model to presentation objects then this can be a no-op.
@@ -60,6 +63,7 @@
 	
 	static abstract class BaseTreeNode implements ITreeNode {
 		String displayText;
+		Dialog dialog;
 		protected BaseTreeNode(String displayText) {
 			this.displayText = displayText;
 		}
@@ -99,11 +103,20 @@
 			return displayText;
 		}
 		
+		public Dialog getDialog() {
+			return dialog;
+		}
+
+		public void setDialog(Dialog dialog) {
+			this.dialog = dialog;
+		}
+
 		public void refreshFromModel() {
 		}
 	}
 	
 	public class Root implements ITreeNode {
+		Dialog dialog;
 		public boolean canAdd() {
 			return false;
 		}
@@ -137,6 +150,12 @@
 		public boolean isChild(Object element) {
 			return ObjectUtils.findEqualObject(nodes, element) >= 0;
 		}
+		public Dialog getDialog() {
+			return dialog;
+		}
+		public void setDialog(Dialog dialog) {
+			this.dialog = dialog;
+		}
 		public void refreshFromModel() {
 		}
 	}
--- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/sis/baseName.pkg	Mon Nov 16 11:11:50 2009 -0600
+++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/sis/baseName.pkg	Mon Nov 30 14:30:06 2009 -0600
@@ -28,7 +28,7 @@
 "$(EPOCROOT)Epoc32\data\z\resource\apps\$(baseName)_$(uid3).rsc"		-"!:\resource\apps\$(baseName)_$(uid3).rsc"
 "$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\$(baseName)_$(uid3)_reg.rsc"	-"!:\private\10003a3f\import\apps\$(baseName)_$(uid3)_reg.rsc"
 "$(EPOCROOT)Epoc32\data\z\resource\apps\$(baseName)_$(uid3).mif" -"!:\resource\apps\$(baseName)_$(uid3).mif"
-"..\$(helpDir)\$(baseName)_$(uid3).hlp"							 -"!:\resource\help\$(baseName)_$(uid3).hlp"
+$(buildHelpSISPrefix)"..\$(helpDir)\$(baseName)_$(uid3).hlp"							 -"!:\resource\help\$(baseName)_$(uid3).hlp"
 
 ; Add any installation notes if applicable
 ;"$(baseName).txt"		-"!:\private\$(uid3-WITHOUT_0X)\$(baseName).txt"
--- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/sis/baseName.pkg	Mon Nov 16 11:11:50 2009 -0600
+++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/sis/baseName.pkg	Mon Nov 30 14:30:06 2009 -0600
@@ -28,7 +28,7 @@
 "$(EPOCROOT)Epoc32\data\z\resource\apps\$(baseName)_$(uid3).rsc"		-"!:\resource\apps\$(baseName)_$(uid3).rsc"
 "$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\$(baseName)_$(uid3)_reg.rsc"	-"!:\private\10003a3f\import\apps\$(baseName)_$(uid3)_reg.rsc"
 "$(EPOCROOT)Epoc32\data\z\resource\apps\$(baseName)_$(uid3).mif" -"!:\resource\apps\$(baseName)_$(uid3).mif"
-"..\$(helpDir)\$(baseName)_$(uid3).hlp"							 -"!:\resource\help\$(baseName)_$(uid3).hlp"
+$(buildHelpSISPrefix)"..\$(helpDir)\$(baseName)_$(uid3).hlp"							 -"!:\resource\help\$(baseName)_$(uid3).hlp"
 
 ; Add any installation notes if applicable
 ;"$(baseName).txt"		-"!:\private\$(uid3-WITHOUT_0X)\$(baseName).txt"