/* * Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved. * * This program and the accompanying materials are made available * under the terms of the Eclipse Public License, Version 1.0, * which accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html * */ package net.rim.ejde.internal.ui.preferences; import net.rim.ejde.internal.model.preferences.RootPreferences; import net.rim.ejde.internal.util.Messages; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; public class RootPrefsPage extends BasicPrefsPage { public static final String ID = "net.rim.ejde.internal.ui.preferences"; //$NON-NLS-1$ private Text _versionText; private Text _vendorText; private Button _openAppDescriptorCheckbox; private Button _openStartupCheckbox; private Button _checkForNewVersion; private Button _appendLogToFile; private Text _logFile; private Button _downloadDebugFiles; private Button _notDownloadDebugFiles; private Button _promptDownloadDebugFiles; /** * Creates and returns the SWT control for the customized body of this property page under the given parent composite. * * @param parent * the parent composite * @return the new control */ @Override protected Control createContents( Composite parent ) { Composite main = new Composite( parent, SWT.NONE ); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayout.marginWidth = 0; gridLayout.marginHeight = 0; main.setLayout( gridLayout ); main.setLayoutData( new GridData( GridData.FILL_BOTH ) ); Label versionLabel = new Label( main, SWT.NONE ); versionLabel.setText( Messages.WorkspacePrefsPage_ProjectVersion ); GridData gridData = new GridData( SWT.FILL, SWT.CENTER, false, false ); gridData.widthHint = 100; _versionText = new Text( main, SWT.LEFT | SWT.SINGLE | SWT.BORDER | SWT.WRAP ); _versionText.setLayoutData( gridData ); gridData = new GridData( SWT.FILL, SWT.CENTER, true, false ); Label vendorLabel = new Label( main, SWT.NONE ); vendorLabel.setText( Messages.WorkspacePrefsPage_ProjectVendor ); _vendorText = new Text( main, SWT.LEFT | SWT.SINGLE | SWT.BORDER | SWT.WRAP ); _vendorText.setLayoutData( gridData ); gridData = new GridData( SWT.FILL, SWT.CENTER, false, false ); gridData.verticalIndent = 15; _openAppDescriptorCheckbox = new Button( main, SWT.CHECK ); _openAppDescriptorCheckbox.setText( Messages.WorkspacePrefsPage_OpenAppDescriptorOnNew ); _openAppDescriptorCheckbox.setLayoutData( gridData ); _openStartupCheckbox = new Button( main, SWT.CHECK ); _openStartupCheckbox.setText( Messages.WorkspacePrefsPage_OpenStartupOnNew ); _openStartupCheckbox.setLayoutData( gridData ); _checkForNewVersion = new Button( main, SWT.CHECK ); _checkForNewVersion.setText( Messages.WorkspacePrefsPage_CheckForNewVersion ); _checkForNewVersion.setLayoutData( gridData ); _appendLogToFile = new Button( main, SWT.CHECK ); _appendLogToFile.setText( Messages.WorkspacePrefsPage_AppendLogToFile ); _appendLogToFile.setLayoutData( gridData ); gridData = new GridData( SWT.FILL, SWT.CENTER, true, false ); _logFile = new Text( main, SWT.LEFT | SWT.SINGLE | SWT.BORDER | SWT.WRAP ); _logFile.setLayoutData( gridData ); Group group = new Group( main, SWT.NONE ); group.setText("Download debug files"); gridLayout = new GridLayout(); gridLayout.numColumns = 3; group.setLayout( gridLayout ); group.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) ); _promptDownloadDebugFiles = new Button( group, SWT.RADIO ); _promptDownloadDebugFiles.setText( "Prompt" ); _downloadDebugFiles = new Button( group, SWT.RADIO ); _downloadDebugFiles.setText( "Yes" ); _notDownloadDebugFiles = new Button( group, SWT.RADIO ); _notDownloadDebugFiles.setText( "No" ); initValues(); return parent; } @Override public boolean performOk() { storePrefValues(); return true; } @Override protected void performDefaults() { initializeDefaults(); super.performDefaults(); } private void initValues() { _versionText.setText( RootPreferences.getProjectVersion() ); _vendorText.setText( RootPreferences.getProjectVendor() ); _openAppDescriptorCheckbox.setSelection( RootPreferences.getOpenAppDescriptorOnNew() ); _openStartupCheckbox.setSelection( RootPreferences.getOpenStartupOnNew() ); _checkForNewVersion.setSelection( RootPreferences.getUpdateNotify() ); _appendLogToFile.setSelection( RootPreferences.getAppendConsoleLogToFile() ); _logFile.setText( RootPreferences.getConsoleLogFile() ); int option = RootPreferences.getDownloadDebugFilesOption(); _promptDownloadDebugFiles.setSelection( option == PreferenceConstants.DOWNLOAD_DEBUG_FILES_PROMPT ); _downloadDebugFiles.setSelection( option == PreferenceConstants.DOWNLOAD_DEBUG_FILES_YES ); _notDownloadDebugFiles.setSelection( option == PreferenceConstants.DOWNLOAD_DEBUG_FILES_NO ); } private void initializeDefaults() { _versionText.setText( RootPreferences.getDefaultProjectVersion() ); _vendorText.setText( RootPreferences.getDefaultProjectVendor() ); _openAppDescriptorCheckbox.setSelection( RootPreferences.getDefaultOpenAppDescriptorOnNew() ); _openStartupCheckbox.setSelection( RootPreferences.getDefaultOpenStartupOnNew() ); _checkForNewVersion.setSelection( RootPreferences.getDefaultUpdateNotify() ); _appendLogToFile.setSelection( RootPreferences.getDefaultAppendConsoleLogToFile() ); _logFile.setText( RootPreferences.getDefaultConsoleLogFile() ); int option = RootPreferences.getDefaultDownloadDebugFilesOption(); _promptDownloadDebugFiles.setSelection( option == PreferenceConstants.DOWNLOAD_DEBUG_FILES_PROMPT ); _downloadDebugFiles.setSelection( option == PreferenceConstants.DOWNLOAD_DEBUG_FILES_YES ); _notDownloadDebugFiles.setSelection( option == PreferenceConstants.DOWNLOAD_DEBUG_FILES_NO ); } private void storePrefValues() { RootPreferences.setProjectVersion( _versionText.getText() ); RootPreferences.setProjectVendor( _vendorText.getText() ); RootPreferences.setOpenAppDescriptorOnNew( _openAppDescriptorCheckbox.getSelection() ); RootPreferences.setOpenStartupOnNew( _openStartupCheckbox.getSelection() ); RootPreferences.setUpdateNotify( _checkForNewVersion.getSelection() ); RootPreferences.setAppendConsoleLogToFile( _appendLogToFile.getSelection() ); RootPreferences.setConsoleLogFile( _logFile.getText() ); if( _promptDownloadDebugFiles.getSelection() ) { RootPreferences.setDownloadDebugFilesOption( PreferenceConstants.DOWNLOAD_DEBUG_FILES_PROMPT ); } else if( _downloadDebugFiles.getSelection() ) { RootPreferences.setDownloadDebugFilesOption( PreferenceConstants.DOWNLOAD_DEBUG_FILES_YES ); } else { RootPreferences.setDownloadDebugFilesOption( PreferenceConstants.DOWNLOAD_DEBUG_FILES_NO ); } } }