sysperfana/memspyext/com.nokia.s60tools.memspy/src/com/nokia/s60tools/memspy/ui/wizards/ExportFileNamePage.java
changeset 7 8e12a575a9b5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysperfana/memspyext/com.nokia.s60tools.memspy/src/com/nokia/s60tools/memspy/ui/wizards/ExportFileNamePage.java	Wed Apr 21 20:01:08 2010 +0300
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+package com.nokia.s60tools.memspy.ui.wizards;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+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.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.PlatformUI;
+
+import com.nokia.s60tools.memspy.model.UserEnteredData;
+import com.nokia.s60tools.memspy.model.UserEnteredData.ValueTypes;
+import com.nokia.s60tools.memspy.resources.HelpContextIDs;
+import com.nokia.s60tools.ui.wizards.S60ToolsWizardPage;
+
+public class ExportFileNamePage extends S60ToolsWizardPage implements ModifyListener, SelectionListener{
+	
+	// UI-components
+	private Combo fileCombo;
+	private Button buttonBrowseFile;
+
+	// Strings
+	private final static String  REPORT_LOCATION_TEXT 		= "File Location";
+	private final static String  BROWSE_TEXT		 		= "Browse...";
+	private final static String  FILE_SELECTION_DIALOG_TEXT = "Define location for exported file.";
+	private final static String  OUTPUT_FILE_TEXT 			= "Output file";
+	private final static String  DESCRIPTION_TEXT 			= "Define file name for exported comparison report file(xls-file).";
+	
+	/*
+	 * (non-Javadoc)
+	 * @see com.nokia.s60tools.ui.wizards.S60ToolsWizardPage#setInitialFocus()
+	 */
+    public void setInitialFocus() {
+    	fileCombo.setFocus();
+	}
+
+    
+    
+    /*
+     * (non-Javadoc)
+     * @see com.nokia.s60tools.ui.wizards.S60ToolsWizardPage#recalculateButtonStates()
+     */
+    public void recalculateButtonStates() {
+	}
+    
+    /**
+     * ExportFileNamePage
+     * constructor
+     * @param pageName name of the page
+     */
+    protected ExportFileNamePage(String pageName) {
+              super(pageName);
+              setTitle(OUTPUT_FILE_TEXT);
+              setDescription(DESCRIPTION_TEXT);
+    }
+    
+    public void createControl(Composite parent) {
+ 		// Radio button group
+    	Composite composite = new Composite(parent, SWT.NULL);
+
+ 		// create the desired layout for this wizard page
+ 		GridLayout gl = new GridLayout();
+ 		gl.numColumns = 1;
+ 		composite.setLayout(gl);
+    	
+ 		// file location group
+		Group fileLocationGroup = new Group(composite, SWT.NONE);
+		fileLocationGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+		GridLayout fileLocationLayout = new GridLayout();
+		fileLocationLayout.numColumns = 2;
+		fileLocationGroup.setLayout( fileLocationLayout );
+		fileLocationGroup.setText( REPORT_LOCATION_TEXT );
+		
+		// file combo
+		fileCombo = new Combo(fileLocationGroup, SWT.BORDER);
+		GridData fileDataGrid = new GridData(GridData.FILL_HORIZONTAL);
+		fileCombo.setLayoutData(fileDataGrid);
+		fileCombo.addModifyListener(this);
+		
+		// browse button
+		buttonBrowseFile = new Button(fileLocationGroup, SWT.PUSH);
+		buttonBrowseFile.setText(BROWSE_TEXT);
+		buttonBrowseFile.addSelectionListener(this);
+		
+		// load previous value
+		this.loadUserEnteredData();
+
+		setHelps();
+		setInitialFocus();
+		setControl(composite);
+     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
+     */
+	public void modifyText(ModifyEvent event) {
+		
+		if (event.widget.equals(fileCombo)) {
+			try {
+				getWizard().getContainer().updateButtons();
+			} catch (Exception e) {
+			}
+		}		
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+	 */
+	public void widgetDefaultSelected(SelectionEvent arg0) {
+		
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+	 */
+	public void widgetSelected(SelectionEvent e) {
+		if (e.widget == buttonBrowseFile) {
+			// open file dialog for selecting a crash file
+			FileDialog dialog = new FileDialog(this.getShell(), SWT.SAVE );
+			dialog.setText(FILE_SELECTION_DIALOG_TEXT);
+			String[] filterExt = { "*.xls" };
+			dialog.setFilterExtensions(filterExt);
+		
+			dialog.setFilterPath(fileCombo.getText());
+			String result = dialog.open();
+			
+			// add xls-end if needed
+			if( !result.endsWith( ".xls" ) ){
+				result += ".xls";
+			}
+			
+			
+
+			fileCombo.setText(result);
+
+		}
+		
+	}
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
+	 */
+	public boolean canFlipToNextPage() {
+ 		if( fileCombo.getText() != "" ){
+ 			return true;
+ 		}
+ 		else {
+ 			return false;
+ 			
+ 		}
+ 		
+	}
+	
+	/**
+	 * loadUserEnteredData
+	 * loads previous values into UI components
+	 */
+	private void loadUserEnteredData(){
+		UserEnteredData data = new UserEnteredData();
+	
+ 		// Restore previous values to file combobox
+		String[] lastUsedFiles = data.getPreviousValues(ValueTypes.OUTPUT_FILE);
+		if (lastUsedFiles != null) {
+			fileCombo.setItems(lastUsedFiles);
+			fileCombo.select(0);
+		}
+		
+
+		
+ 	}
+	
+	/**
+	 * saveUserEnteredData
+	 * Saves current user entered data from UI components
+	 */
+	public void saveUserEnteredData(){
+		UserEnteredData data = new UserEnteredData();
+		
+		// Save file combo box
+		String item = fileCombo.getText();
+		data.saveValue(ValueTypes.OUTPUT_FILE, item);
+	}
+	
+	/**
+	 * getOutputFileName
+	 * @return output file name
+	 */
+	public String getOutputFileName(){
+		return fileCombo.getText();
+	}
+	
+	/**
+	 * Sets this page's context sensitive helps
+	 *
+	 */
+	protected void setHelps() {
+		PlatformUI.getWorkbench().getHelpSystem().setHelp( fileCombo, HelpContextIDs.MEMSPY_IMPORT_COMPARE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp( buttonBrowseFile, HelpContextIDs.MEMSPY_IMPORT_COMPARE);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp( buttonBrowseFile, HelpContextIDs.MEMSPY_IMPORT_COMPARE);
+
+	}
+	
+	
+}
+