/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.motorola.studio.android.wizards.mat; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.PlatformUI; import com.motorola.studio.android.AndroidPlugin; import com.motorola.studio.android.i18n.AndroidNLS; import com.motorola.studio.android.wizards.elements.sorting.TableItemSortStringSetActionListener; public class DumpHPROFWizardPage extends WizardPage { /** * Page name */ private static final String PAGE_NAME = "Dump HPROF page"; //$NON-NLS-1$ /** * SWT table control */ private DumpHPROFTable appsTable; /** * Serial Number */ private final String serialNumber; /** * Help Id */ private static final String helpContextId = AndroidPlugin.PLUGIN_ID + ".dump_hprof"; //$NON-NLS-1$ /** * Constructor * * @param serialNumber Serial Number. */ public DumpHPROFWizardPage(String serialNumber) { super(PAGE_NAME); this.serialNumber = serialNumber; setTitle(AndroidNLS.DumpHprofPage_PageTitle); setDescription(AndroidNLS.DumpHprofPage_PageDescription); } public void createControl(Composite parent) { this.initializeDialogUnits(parent); Composite mainComposite = new Composite(parent, SWT.FILL); mainComposite.setLayout(new GridLayout()); // Running apps table appsTable = new DumpHPROFTable(mainComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION, AndroidNLS.DumpHPROFWizardPage__Message_LoadingRunningApplications, this); appsTable.setTableHeaderVisible(true); GridData layoutData = new GridData(GridData.FILL, GridData.FILL, true, true); appsTable.setLayoutData(layoutData); TableColumn appNameColumn = appsTable.addTableColumn(SWT.CENTER); appNameColumn.setText(AndroidNLS.DumpHprofPage_ColumnAppName); appNameColumn.setWidth(this.convertWidthInCharsToPixels(70)); appNameColumn.addSelectionListener(new TableItemSortStringSetActionListener()); appsTable.setTableLinesVisible(false); appsTable.addTableSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { validatePage(); } public void widgetDefaultSelected(SelectionEvent e) { //do nothing } }); appsTable.populateTableAsynchronously(serialNumber); PlatformUI.getWorkbench().getHelpSystem().setHelp(mainComposite, helpContextId); validatePage(); setControl(mainComposite); } /** * Validates the page */ private void validatePage() { setPageComplete(appsTable.getTable().getSelection().length > 0); } /** * Get the selected application. This will be used to generate the HPROF file * @return */ public String getSelectedApp() { String selectedApp = null; if (appsTable.getTableSelectionCont() == 1) { selectedApp = appsTable.getTableSelection()[0].getText(0); } return selectedApp; } }