// Copyright (c) 2005 by Leif Frenzel. All rights reserved. // See http://leiffrenzel.de package net.sourceforge.phpdt.ltk.ui.wizards; import net.sourceforge.phpdt.ltk.core.RenameIdentifierInfo; import net.sourceforge.phpdt.ltk.ui.UITexts; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.ltk.ui.refactoring.UserInputWizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; 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.Label; import org.eclipse.swt.widgets.Text; /**

the input page for the Rename Property refactoring, where users can * control the effects of the refactoring; to be shown in the wizard.

* *

We let the user enter the new name for the property, and we let her * decide whether other property files in the bundle should be affected, and * whether the operation is supposed to span the entire workspace or only * the current project.

* */ public class RenameLocalVariablePage extends UserInputWizardPage { private static final String DS_KEY = RenameLocalVariablePage.class.getName(); private static final String DS_UPDATE_BUNDLE = "UPDATE_BUNDLE"; //$NON-NLS-1$ private static final String DS_ALL_PROJECTS = "ALL_PROJECTS"; //$NON-NLS-1$ private final RenameIdentifierInfo info; private IDialogSettings dialogSettings; private Text txtNewName; public RenameLocalVariablePage( final RenameIdentifierInfo info ) { super( RenameLocalVariablePage.class.getName() ); this.info = info; initDialogSettings(); } // interface methods of UserInputWizardPage /////////////////////////////////////////// public void createControl( final Composite parent ) { Composite composite = createRootComposite( parent ); setControl( composite ); createLblNewName( composite ); createTxtNewName( composite ); createCbUpdateBundle( composite ); createCbAllProjects( composite ); validate(); } // UI creation methods ////////////////////// private Composite createRootComposite( final Composite parent ) { Composite result = new Composite( parent, SWT.NONE ); GridLayout gridLayout = new GridLayout( 2, false ); gridLayout.marginWidth = 10; gridLayout.marginHeight = 10; result.setLayout( gridLayout ); initializeDialogUnits( result ); Dialog.applyDialogFont( result ); return result; } private void createLblNewName( final Composite composite ) { Label lblNewName = new Label( composite, SWT.NONE ); lblNewName.setText( UITexts.renamePropertyInputPage_lblNewName ); } private void createTxtNewName(Composite composite) { txtNewName = new Text( composite, SWT.BORDER ); txtNewName.setText( info.getOldName() ); txtNewName.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) ); txtNewName.selectAll(); txtNewName.addKeyListener( new KeyAdapter() { public void keyReleased( final KeyEvent e ) { info.setNewName( txtNewName.getText() ); validate(); } } ); } private void createCbUpdateBundle( final Composite composite ) { String texts = UITexts.renamePropertyInputPage_cbUpdateBundle; initUpdateBundleOption(); } private void createCbAllProjects( final Composite composite ) { String text = UITexts.renamePropertyInputPage_cbAllProjects; initAllProjectsOption(); } private Button createCheckbox( final Composite composite, final String text ) { Button result = new Button( composite, SWT.CHECK ); result.setText( text ); GridData gridData = new GridData( GridData.FILL_HORIZONTAL ); gridData.horizontalSpan = 2; result.setLayoutData( gridData ); return result; } // helping methods ////////////////// private void initDialogSettings() { IDialogSettings ds = PHPeclipsePlugin.getDefault().getDialogSettings(); dialogSettings = ds.getSection( DS_KEY ); if( dialogSettings == null ) { dialogSettings = ds.addNewSection( DS_KEY ); // init default values dialogSettings.put( DS_UPDATE_BUNDLE, true ); dialogSettings.put( DS_ALL_PROJECTS, false ); } } private void validate() { String txt = txtNewName.getText(); setPageComplete( txt.length() > 0 && !txt.equals( info.getOldName() ) ); } private void initUpdateBundleOption() { // boolean updateRefs = dialogSettings.getBoolean( DS_UPDATE_BUNDLE ); // cbUpdateBundle.setSelection( updateRefs ); // info.setUpdateProject( updateRefs ); } private void initAllProjectsOption() { // boolean allProjects = dialogSettings.getBoolean( DS_ALL_PROJECTS ); // cbAllProjects.setSelection( allProjects ); // info.setAllProjects( allProjects ); } }