crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/ui/editors/RegistersPage.java
author Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
Tue, 20 Apr 2010 14:41:43 +0300
changeset 4 615035072f7e
permissions -rw-r--r--
Crash Analyser Carbide extension v1.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     1
/*
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     8
*
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    11
*
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    12
* Contributors:
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    13
*
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    14
* Description:
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    15
*
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    16
*/
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    17
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    18
package com.nokia.s60tools.crashanalyser.ui.editors;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    19
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    20
import java.util.HashMap;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    21
import java.util.List;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    22
import java.util.Map;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    23
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    24
import org.eclipse.jface.resource.FontRegistry;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    25
import org.eclipse.swt.SWT;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    26
import org.eclipse.swt.custom.SashForm;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    27
import org.eclipse.swt.events.SelectionEvent;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    28
import org.eclipse.swt.events.SelectionListener;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    29
import org.eclipse.swt.graphics.FontData;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    30
import org.eclipse.swt.layout.FormAttachment;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    31
import org.eclipse.swt.layout.FormData;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    32
import org.eclipse.swt.layout.FormLayout;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    33
import org.eclipse.swt.layout.GridData;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    34
import org.eclipse.swt.layout.GridLayout;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    35
import org.eclipse.swt.widgets.Combo;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    36
import org.eclipse.swt.widgets.Composite;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    37
import org.eclipse.swt.widgets.Display;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    38
import org.eclipse.swt.widgets.Group;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    39
import org.eclipse.swt.widgets.Table;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    40
import org.eclipse.swt.widgets.TableColumn;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    41
import org.eclipse.swt.widgets.TableItem;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    42
import org.eclipse.swt.widgets.Text;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    43
import org.eclipse.ui.PlatformUI;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    44
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    45
import com.nokia.s60tools.crashanalyser.containers.Process;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    46
import com.nokia.s60tools.crashanalyser.containers.Register;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    47
import com.nokia.s60tools.crashanalyser.containers.RegisterBit;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    48
import com.nokia.s60tools.crashanalyser.containers.RegisterDetails;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    49
import com.nokia.s60tools.crashanalyser.containers.RegisterSet;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    50
import com.nokia.s60tools.crashanalyser.containers.Thread;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    51
import com.nokia.s60tools.crashanalyser.files.CrashFile;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    52
import com.nokia.s60tools.crashanalyser.files.SummaryFile;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    53
import com.nokia.s60tools.crashanalyser.resources.HelpContextIDs;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    54
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    55
public class RegistersPage implements SelectionListener {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    56
	// registers group UI items
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    57
	Combo comboRegisters;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    58
	Table tableRegisters;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    59
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    60
	// CPSR details group UI items
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    61
	Group groupCpsrEmpty;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    62
	Combo comboCpsrDetails;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    63
	Table tableCpsrDetails;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    64
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    65
	FontRegistry fontRegistry;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    66
	SummaryFile crashFile;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    67
	Process selectedProcess = null;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    68
	Thread selectedThread = null;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    69
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    70
	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    71
	/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    72
	 * Creates the page
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    73
	 * @param parent composite
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    74
	 * @param file summary file
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    75
	 * @return composite
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    76
	 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    77
	public Composite createPage(Composite parent, SummaryFile file) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    78
		crashFile = file;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    79
		return doCreatePage(parent);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    80
	}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    81
	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    82
	/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    83
	 * Creates the page
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    84
	 * @param parent composite
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    85
	 * @return composite
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    86
	 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    87
	public Composite createPage(Composite parent) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    88
		return doCreatePage(parent);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    89
	}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    90
	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    91
	/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    92
	 * Loads data from given file into UI elements.
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    93
	 * @param file crash file
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    94
	 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    95
	public void setFile(CrashFile file) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    96
		if (file != null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    97
			crashFile = file;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    98
			initialUserRegistersTableLoad();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
    99
			initialCpsrDetailsTableLoad();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   100
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   101
	}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   102
	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   103
	/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   104
	 * Creates all UI elements to the page
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   105
	 * @param parent
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   106
	 * @return composite
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   107
	 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   108
	Composite doCreatePage(Composite parent) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   109
		GridLayout layout = new GridLayout();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   110
		layout.numColumns = 1;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   111
		parent.setLayout(layout);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   112
		parent.setLayoutData(new GridData(GridData.FILL_BOTH));
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   113
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   114
		fontRegistry = new FontRegistry(Display.getCurrent());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   115
		fontRegistry.put("monospace", new FontData[]{new FontData("Courier", 8, SWT.NORMAL)});
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   116
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   117
		SashForm sashFormMain = new SashForm(parent, SWT.VERTICAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   118
		sashFormMain.setLayoutData(new GridData(GridData.FILL_BOTH));
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   119
//		SashForm sashFormTop = new SashForm(sashFormMain, SWT.HORIZONTAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   120
		createRegistersGroup(sashFormMain);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   121
//		createCodeSegmentsGroup(sashFormTop);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   122
//		SashForm sashFormBottom = new SashForm(sashFormMain, SWT.HORIZONTAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   123
//		createEventLogGroup(sashFormBottom);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   124
		createCpsrDetailsGroup(sashFormMain);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   125
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   126
//		sashFormTop.setWeights(new int[]{3,2});
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   127
//		sashFormBottom.setWeights(new int[]{3,7});
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   128
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   129
		setHelps();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   130
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   131
		return parent;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   132
	}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   133
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   134
	/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   135
	 * Creates registers group
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   136
	 * @param parent
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   137
	 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   138
	void createRegistersGroup(Composite parent) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   139
		Group groupRegisters = new Group(parent, SWT.NONE);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   140
		GridLayout layout = new GridLayout();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   141
		layout.numColumns = 2;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   142
		groupRegisters.setLayout(layout);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   143
		groupRegisters.setText("Registers");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   144
		GridData groupGD = new GridData(GridData.FILL_HORIZONTAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   145
		groupRegisters.setLayoutData(groupGD);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   146
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   147
		comboRegisters = new Combo(groupRegisters, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   148
		GridData comboGD = new GridData();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   149
		comboGD.horizontalSpan = 2;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   150
		comboRegisters.setLayoutData(comboGD);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   151
		comboRegisters.addSelectionListener(this);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   152
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   153
		tableRegisters = new Table(groupRegisters, SWT.BORDER);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   154
		tableRegisters.setHeaderVisible(true);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   155
		tableRegisters.setLinesVisible(true);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   156
		TableColumn col = new TableColumn(tableRegisters, SWT.LEFT);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   157
		col.setWidth(100);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   158
		col.setText("Register");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   159
		col = new TableColumn(tableRegisters, SWT.LEFT);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   160
		col.setWidth(100);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   161
		col.setText("Value");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   162
		col = new TableColumn(tableRegisters, SWT.LEFT);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   163
		col.setWidth(100);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   164
		col.setText("Symbol");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   165
		col = new TableColumn(tableRegisters, SWT.LEFT);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   166
		col.setWidth(100);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   167
		col.setText("Comment");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   168
		tableRegisters.setFont(fontRegistry.get("monospace"));
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   169
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   170
		GridData tableGd = new GridData(GridData.FILL_BOTH);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   171
		tableGd.horizontalSpan = 2;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   172
		tableRegisters.setLayoutData(tableGd);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   173
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   174
		initialUserRegistersTableLoad();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   175
	}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   176
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   177
		 * Creates cpsr details group
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   178
		 * @param parent
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   179
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   180
		void createCpsrDetailsGroup(Composite parent) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   181
			Group groupCpsrDetails = new Group(parent, SWT.NONE);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   182
			GridLayout layout = new GridLayout();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   183
			layout.numColumns = 1;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   184
			groupCpsrDetails.setLayout(layout);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   185
			groupCpsrDetails.setText("CPSR Details");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   186
			GridData groupGD = new GridData(GridData.FILL_VERTICAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   187
			groupCpsrDetails.setLayoutData(groupGD);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   188
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   189
			comboCpsrDetails = new Combo(groupCpsrDetails, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   190
			comboCpsrDetails.addSelectionListener(this);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   191
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   192
			// Empty group
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   193
			groupCpsrEmpty = new Group(groupCpsrDetails, SWT.NONE);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   194
			FormLayout fl = new FormLayout();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   195
			fl.marginRight = 5;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   196
			fl.marginLeft = 5;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   197
			fl.marginBottom = 5;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   198
			groupCpsrEmpty.setLayout(fl);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   199
			GridData groupCpsrEmptyGd = new GridData(GridData.FILL_HORIZONTAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   200
			groupCpsrEmptyGd.horizontalAlignment = SWT.FILL;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   201
			groupCpsrEmptyGd.grabExcessHorizontalSpace = true;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   202
			groupCpsrEmpty.setLayoutData(groupCpsrEmptyGd);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   203
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   204
			// create 32 empty text boxes
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   205
			for (int i = 0; i < 32; i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   206
				Text text = new Text(groupCpsrEmpty, SWT.READ_ONLY | SWT.BORDER | SWT.NO_FOCUS | SWT.CENTER);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   207
				text.setFont(fontRegistry.get("monospace"));
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   208
				FormData textFd = new FormData();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   209
				textFd.left = new FormAttachment(0,i*20);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   210
				textFd.top = new FormAttachment(8, 15);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   211
				textFd.width = 8;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   212
				text.setLayoutData(textFd); 			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   213
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   214
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   215
			tableCpsrDetails = new Table(groupCpsrDetails, SWT.BORDER);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   216
			tableCpsrDetails.setLinesVisible(true);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   217
			tableCpsrDetails.setHeaderVisible(true);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   218
			TableColumn col = new TableColumn(tableCpsrDetails, SWT.LEFT);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   219
			col.setWidth(380);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   220
			col.setText("Name");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   221
			col = new TableColumn(tableCpsrDetails, SWT.LEFT);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   222
			col.setWidth(220);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   223
			col.setText("Value");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   224
			GridData tableGd = new GridData(GridData.FILL_VERTICAL | GridData.FILL_HORIZONTAL);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   225
			tableGd.horizontalAlignment = SWT.FILL;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   226
			tableGd.grabExcessHorizontalSpace = true;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   227
			tableCpsrDetails.setLayoutData(tableGd);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   228
			tableCpsrDetails.setFont(fontRegistry.get("monospace"));
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   229
			initialCpsrDetailsTableLoad();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   230
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   231
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   232
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   233
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   234
		 * Loads register sets to combo, selects the correct set as
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   235
		 * default set and then loads set's registers to table.
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   236
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   237
		void initialUserRegistersTableLoad() {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   238
			if (crashFile == null)
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   239
				return;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   240
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   241
			int defaultSelectionIndex = 0;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   242
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   243
			// show the data of crashed process
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   244
			if (crashFile.getThread() != null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   245
				selectedProcess = crashFile.getProcessByThread(crashFile.getThread().getId());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   246
			} else {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   247
				selectedProcess = crashFile.getCrashedProcess();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   248
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   249
				
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   250
			if (selectedProcess != null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   251
				// current UI support only one thread, so show the first thread of first process
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   252
				if(crashFile.getThread() != null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   253
					selectedThread = crashFile.getThread();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   254
				} else {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   255
					selectedThread = crashFile.getCrashedThread();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   256
				}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   257
				
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   258
				if (selectedThread != null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   259
					List<RegisterSet> registerSets = selectedThread.getRegisters();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   260
					if (registerSets != null && !registerSets.isEmpty()) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   261
						// load all register sets to combo
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   262
						for (int i = 0; i < registerSets.size(); i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   263
							RegisterSet registerSet = registerSets.get(i);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   264
							// default register to show is the one that contains CPSR register
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   265
							if (registerSet.containsCPSR()) 
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   266
								defaultSelectionIndex = i;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   267
							comboRegisters.add(registerSet.getName());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   268
							comboRegisters.setData(registerSet.getName(), registerSet);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   269
						}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   270
					}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   271
				}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   272
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   273
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   274
			List<RegisterSet> standAloneRegisters = crashFile.getStandAloneRegisterSets();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   275
			if (standAloneRegisters != null && !standAloneRegisters.isEmpty()) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   276
				for (int i = 0; i < standAloneRegisters.size(); i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   277
					RegisterSet regSet = standAloneRegisters.get(i);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   278
					if (regSet.containsCPSR())
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   279
						defaultSelectionIndex = comboRegisters.getItemCount() + i;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   280
					comboRegisters.add(regSet.getName());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   281
					comboRegisters.setData(regSet.getName(), regSet);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   282
				}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   283
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   284
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   285
			if (comboRegisters.getItemCount() > 0) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   286
				comboRegisters.select(defaultSelectionIndex);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   287
				loadRegistersTable();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   288
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   289
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   290
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   291
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   292
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   293
		 * Loads user registers table according to which registers set is
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   294
		 * selected in combo. 
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   295
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   296
		void loadRegistersTable() {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   297
			tableRegisters.removeAll();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   298
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   299
			if (comboRegisters.getItemCount() < 1)
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   300
				return;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   301
			
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   302
			try {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   303
				RegisterSet registerSet = (RegisterSet)comboRegisters.getData(comboRegisters.getText());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   304
				List<Register> registers = registerSet.getRegisters();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   305
				if (registers != null && !registers.isEmpty()) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   306
					// show all register values in selected register set
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   307
					for (int i = 0; i < registers.size(); i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   308
						Register register = registers.get(i);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   309
						newRegistersTableItem(register);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   310
					}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   311
					AutoSizeTableCells(tableRegisters);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   312
				}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   313
			} catch (Exception e) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   314
				e.printStackTrace();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   315
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   316
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   317
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   318
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   319
		 * Loads cprs types to combo, selects first type and then loads it's
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   320
		 * data to table.
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   321
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   322
		void initialCpsrDetailsTableLoad() {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   323
			if (crashFile == null)
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   324
				return;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   325
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   326
			List<RegisterDetails> registerDetails = crashFile.getRegisterDetails();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   327
			if (registerDetails != null && !registerDetails.isEmpty()) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   328
				for (int i = 0; i < registerDetails.size(); i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   329
					RegisterDetails regDetails = registerDetails.get(i);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   330
					if (regDetails.getDescription().contains("CPSR")) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   331
						comboCpsrDetails.add(regDetails.getDescription());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   332
						comboCpsrDetails.setData(regDetails.getDescription(), regDetails);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   333
					}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   334
				}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   335
				comboCpsrDetails.select(0);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   336
				loadCpsrDetailsTable();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   337
			}		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   338
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   339
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   340
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   341
		 * Loads currently selected cprs's details into table.
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   342
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   343
		void loadCpsrDetailsTable() {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   344
			try {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   345
				tableCpsrDetails.removeAll();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   346
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   347
				RegisterDetails registerDetails = null;
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   348
				if (comboRegisters.getSelectionIndex() >= 0)
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   349
					registerDetails = (RegisterDetails)comboCpsrDetails.getData(comboCpsrDetails.getText());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   350
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   351
				if (registerDetails != null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   352
					boolean bitStartFromRight = registerDetails.bitsStartFromRight();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   353
					Map<String, String> categories = new HashMap<String, String>();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   354
					// go through all 32 text boxes, and see if there is a bit for each box
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   355
					for (int i = 0, j = 31; i < 32; i++, j--) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   356
						Text box = (Text)groupCpsrEmpty.getChildren().clone()[j];
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   357
						// bits can start from the right or left (endianess)
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   358
						if (!bitStartFromRight)
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   359
							box = (Text)groupCpsrEmpty.getChildren().clone()[i];
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   360
						RegisterBit bit = registerDetails.getBit(i);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   361
						// there's no bit for this box
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   362
						if (bit == null) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   363
							box.setText("");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   364
							box.setToolTipText("");
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   365
							// there is a bit for this box
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   366
						} else {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   367
							String regChar = bit.getRegisterChar();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   368
							String category = bit.getCategory();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   369
							String interpretation = bit.getInterpretation();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   370
							// if this bit contains a longer description, it should be shown in the table also
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   371
							if (!"".equals(interpretation) && !categories.containsKey(category)) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   372
								categories.put(category, interpretation);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   373
							}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   374
							box.setText(regChar);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   375
							box.setToolTipText(category);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   376
						}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   377
					}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   378
				
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   379
					// load table
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   380
					for (int i = 0; i < categories.size(); i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   381
						newCpsrDetailsTableItem(categories.keySet().toArray()[i].toString(),
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   382
											categories.values().toArray()[i].toString());
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   383
					}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   384
				}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   385
			} catch (Exception e) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   386
				e.printStackTrace();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   387
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   388
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   389
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   390
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   391
		 * Adds a new table row for registers table
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   392
		 * @param register row data
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   393
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   394
		void newRegistersTableItem(Register register) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   395
			TableItem item = new TableItem(tableRegisters, SWT.NONE);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   396
			item.setText(new String[] {register.getName(),
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   397
										register.getValue(),
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   398
										register.getSymbol(),
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   399
										register.getComments()});
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   400
		}	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   401
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   402
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   403
		 * Adds a new table row for cpsr details table
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   404
		 * @param header header text
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   405
		 * @param value value text
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   406
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   407
		void newCpsrDetailsTableItem(String header, String value) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   408
			TableItem item = new TableItem(tableCpsrDetails, SWT.NONE);
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   409
			item.setText(new String[] {header, value});
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   410
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   411
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   412
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   413
		 * Packs all columns for given table
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   414
		 * @param table table which columns are to be packed
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   415
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   416
		void AutoSizeTableCells(Table table) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   417
			for (int i = 0; i < table.getColumnCount(); i++) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   418
				table.getColumn(i).pack();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   419
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   420
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   421
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   422
		public void widgetDefaultSelected(SelectionEvent arg0) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   423
			// No implementation needed
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   424
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   425
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   426
		public void widgetSelected(SelectionEvent event) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   427
			// cpsr was changed in combo
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   428
			if (event.widget == comboCpsrDetails) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   429
				loadCpsrDetailsTable();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   430
			// register set was changed in combo
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   431
			} else if (event.widget == comboRegisters) {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   432
				loadRegistersTable();
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   433
			}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   434
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   435
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   436
		/**
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   437
		 * Sets context sensitive help ids to UI elements
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   438
		 */
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   439
		void setHelps() {
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   440
			PlatformUI.getWorkbench().getHelpSystem().setHelp(tableCpsrDetails,
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   441
					HelpContextIDs.CRASH_ANALYSER_HELP_CRASH_VISUALISER);	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   442
			PlatformUI.getWorkbench().getHelpSystem().setHelp(tableRegisters,
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   443
					HelpContextIDs.CRASH_ANALYSER_HELP_CRASH_VISUALISER);	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   444
			PlatformUI.getWorkbench().getHelpSystem().setHelp(tableRegisters,
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   445
					HelpContextIDs.CRASH_ANALYSER_HELP_CRASH_VISUALISER);	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   446
			PlatformUI.getWorkbench().getHelpSystem().setHelp(comboCpsrDetails,
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   447
					HelpContextIDs.CRASH_ANALYSER_HELP_CRASH_VISUALISER);	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   448
			PlatformUI.getWorkbench().getHelpSystem().setHelp(comboRegisters,
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   449
					HelpContextIDs.CRASH_ANALYSER_HELP_CRASH_VISUALISER);	
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   450
		}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   451
		
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   452
	}
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   453
615035072f7e Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff changeset
   454