diff options
Diffstat (limited to 'core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/ui/refactoring/RefactoringWizardDialog2.java')
-rw-r--r-- | core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/ui/refactoring/RefactoringWizardDialog2.java | 578 |
1 files changed, 0 insertions, 578 deletions
diff --git a/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/ui/refactoring/RefactoringWizardDialog2.java b/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/ui/refactoring/RefactoringWizardDialog2.java deleted file mode 100644 index 87650b5e44a..00000000000 --- a/core/org.eclipse.cdt.ui/refactor/org/eclipse/cdt/internal/ui/refactoring/RefactoringWizardDialog2.java +++ /dev/null @@ -1,578 +0,0 @@ -/********************************************************************** - * Copyright (c) 2004 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ -package org.eclipse.cdt.internal.ui.refactoring; - -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.cdt.internal.ui.CPluginImages; -import org.eclipse.cdt.ui.CUIPlugin; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.jface.dialogs.ControlEnableState; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.DialogSettings; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.dialogs.IMessageProvider; -import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.jface.operation.ModalContext; -import org.eclipse.jface.util.Assert; -import org.eclipse.jface.wizard.IWizardContainer; -import org.eclipse.jface.wizard.IWizardPage; -import org.eclipse.jface.wizard.ProgressMonitorPart; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StackLayout; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Cursor; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -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.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -public class RefactoringWizardDialog2 extends Dialog implements IWizardContainer { - - private RefactoringWizard fWizard; - private IWizardPage fCurrentPage; - private IWizardPage fVisiblePage; - - private PageBook fPageContainer; - private PageBook fStatusContainer; - private MessageBox fMessageBox; - private ProgressMonitorPart fProgressMonitorPart; - private int fActiveRunningOperations; - private Cursor fWaitCursor; - private Cursor fArrowCursor; - - private static final int PREVIEW_ID= IDialogConstants.CLIENT_ID + 1; - - private int fPreviewWidth; - private int fPreviewHeight; - private IDialogSettings fSettings; - private static final String DIALOG_SETTINGS= "RefactoringWizard.preview"; //$NON-NLS-1$ - private static final String WIDTH= "width"; //$NON-NLS-1$ - private static final String HEIGHT= "height"; //$NON-NLS-1$ - - private static final Image INFO= CPluginImages.get(CPluginImages.IMG_OBJS_REFACTORING_INFO); - private static final Image WARNING= CPluginImages.get(CPluginImages.IMG_OBJS_REFACTORING_WARNING); - private static final Image ERROR= CPluginImages.get(CPluginImages.IMG_OBJS_REFACTORING_ERROR); - - private static class MessageBox extends Composite { - private Label fImage; - private Label fText; - public MessageBox(Composite parent, int style) { - super(parent, style); - GridLayout layout= new GridLayout(); - layout.numColumns= 2; - setLayout(layout); - fImage= new Label(this, SWT.NONE); - fImage.setImage(INFO); - Point size= fImage.computeSize(SWT.DEFAULT, SWT.DEFAULT); - GridData gd= new GridData(); - gd.verticalAlignment= SWT.TOP; - gd.widthHint= size.x; - gd.heightHint= size.y; - fImage.setLayoutData(gd); - fImage.setImage(null); - fText= new Label(this, SWT.WRAP); - fText.setText(" \n "); //$NON-NLS-1$ - size= fText.computeSize(SWT.DEFAULT, SWT.DEFAULT); - gd= new GridData(GridData.FILL_HORIZONTAL); - gd.heightHint= size.y; - gd.verticalAlignment= SWT.TOP; - fText.setLayoutData(gd); - } - public void setMessage(IWizardPage page) { - String msg= page.getErrorMessage(); - int type= IMessageProvider.ERROR; - if (msg == null || msg.length() == 0) { - msg= page.getMessage(); - type= IMessageProvider.NONE; - if (msg != null && page instanceof IMessageProvider) - type = ((IMessageProvider)page).getMessageType(); - } - Image image= null; - switch (type) { - case IMessageProvider.INFORMATION: - image= INFO; - break; - case IMessageProvider.WARNING: - image= WARNING; - break; - case IMessageProvider.ERROR: - image= ERROR; - break; - } - if (msg == null) - msg= ""; //$NON-NLS-1$ - fText.setText(msg); - if (image == null && msg.length() > 0) - image= INFO; - fImage.setImage(image); - } - } - - private static class PageBook extends Composite { - private StackLayout fLayout; - public PageBook(Composite parent, int style) { - super(parent, style); - fLayout= new StackLayout(); - setLayout(fLayout); - fLayout.marginWidth= 5; fLayout.marginHeight= 5; - } - public void showPage(Control page) { - fLayout.topControl= page; - layout(); - } - public Control getTopPage() { - return fLayout.topControl; - } - } - - public RefactoringWizardDialog2(Shell shell, RefactoringWizard wizard) { - super(shell); - Assert.isNotNull(wizard); - setShellStyle(getShellStyle() | SWT.RESIZE); - wizard.setDialogSettings(CUIPlugin.getDefault().getDialogSettings()); - fWizard= wizard; - fWizard.setContainer(this); - fWizard.addPages(); - initSize(); - } - - private void initSize() { - IDialogSettings settings= CUIPlugin.getDefault().getDialogSettings(); - fSettings= settings.getSection(DIALOG_SETTINGS); - if (fSettings == null) { - fSettings= new DialogSettings(DIALOG_SETTINGS); - settings.addSection(fSettings); - fSettings.put(WIDTH, 600); - fSettings.put(HEIGHT, 100); - } - fPreviewWidth= 600; - fPreviewHeight= 100; - try { - fPreviewWidth= fSettings.getInt(WIDTH); - fPreviewHeight= fSettings.getInt(HEIGHT); - } catch (NumberFormatException e) { - } - } - - private void saveSize() { - if (fCurrentPage instanceof PreviewWizardPage) { - Control control= fCurrentPage.getControl().getParent(); - Point size = control.getSize(); - fSettings.put(WIDTH, size.x); - fSettings.put(HEIGHT, size.y); - } - } - - //---- IWizardContainer -------------------------------------------- - - /* (non-Javadoc) - * Method declared on IWizardContainer. - */ - public void showPage(IWizardPage page) { - fCurrentPage= page; - } - - /* (non-Javadoc) - * Method declared on IWizardContainer. - */ - public void updateButtons() { - boolean previewPage= isPreviewPageActive(); - boolean ok= fWizard.canFinish(); - boolean canFlip= fCurrentPage.canFlipToNextPage(); - Button previewButton= getButton(PREVIEW_ID); - Button defaultButton= null; - if (previewButton != null && !previewButton.isDisposed()) { - previewButton.setEnabled(!previewPage); - if (!previewPage) - previewButton.setEnabled(canFlip); - if (previewButton.isEnabled()) - defaultButton= previewButton; - } - Button okButton= getButton(IDialogConstants.OK_ID); - if (okButton != null && !okButton.isDisposed()) { - okButton.setEnabled(ok); - if (ok) - defaultButton= okButton; - } - if (defaultButton != null) { - defaultButton.getShell().setDefaultButton(defaultButton); - } - } - - /* (non-Javadoc) - * Method declared on IWizardContainer. - */ - public void updateMessage() { - if (fStatusContainer == null || fStatusContainer.isDisposed()) - return; - fStatusContainer.showPage(fMessageBox); - fMessageBox.setMessage(fCurrentPage); - } - - /* (non-Javadoc) - * Method declared on IWizardContainer. - */ - public void updateTitleBar() { - // we don't have a title bar. - } - - /* (non-Javadoc) - * Method declared on IWizardContainer. - */ - public void updateWindowTitle() { - getShell().setText(fWizard.getWindowTitle()); - } - - /* (non-Javadoc) - * Method declared on IWizardContainer. - */ - public IWizardPage getCurrentPage() { - return fCurrentPage; - } - - //---- IRunnableContext -------------------------------------------- - - /* (non-Javadoc) - * Method declared on IRunnableContext - */ - public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException { - if (fProgressMonitorPart == null) { - ModalContext.run(runnable, false, new NullProgressMonitor(), getShell().getDisplay()); - } else { - Object state = null; - if(fActiveRunningOperations == 0) - state = aboutToStart(fork && cancelable); - - fActiveRunningOperations++; - try { - ModalContext.run(runnable, fork, fProgressMonitorPart, getShell().getDisplay()); - } finally { - fActiveRunningOperations--; - //Stop if this is the last one - if(state!= null) - stopped(state); - } - } - } - - private Object aboutToStart(boolean cancelable) { - Map savedState = null; - Shell shell= getShell(); - if (shell != null) { - // Save focus control - Control focusControl = getShell().getDisplay().getFocusControl(); - if (focusControl != null && focusControl.getShell() != getShell()) - focusControl = null; - - Button cancelButton= getButton(IDialogConstants.CANCEL_ID); - // Set the busy cursor to all shells. - Display d = getShell().getDisplay(); - fWaitCursor = new Cursor(d, SWT.CURSOR_WAIT); - setDisplayCursor(d, fWaitCursor); - - // Set the arrow cursor to the cancel component. - fArrowCursor= new Cursor(d, SWT.CURSOR_ARROW); - cancelButton.setCursor(fArrowCursor); - - boolean hasProgressMonitor= fProgressMonitorPart != null; - - // Deactivate shell - savedState= saveUIState(hasProgressMonitor && cancelable); - if (focusControl != null) - savedState.put("focus", focusControl); //$NON-NLS-1$ - - if (hasProgressMonitor) { - fProgressMonitorPart.attachToCancelComponent(cancelButton); - fStatusContainer.showPage(fProgressMonitorPart); - } - // Update the status container since we are blocking the event loop right now. - fStatusContainer.update(); - } - return savedState; - } - - private Map saveUIState(boolean keepCancelEnabled) { - Map savedState= new HashMap(10); - saveEnableStateAndSet(getButton(PREVIEW_ID), savedState, "preview", false); //$NON-NLS-1$ - saveEnableStateAndSet(getButton(IDialogConstants.OK_ID), savedState, "ok", false); //$NON-NLS-1$ - saveEnableStateAndSet(getButton(IDialogConstants.CANCEL_ID), savedState, "cancel", keepCancelEnabled); //$NON-NLS-1$ - savedState.put("page", ControlEnableState.disable(fVisiblePage.getControl())); //$NON-NLS-1$ - return savedState; - } - - private void saveEnableStateAndSet(Control w, Map h, String key, boolean enabled) { - if (w != null) { - h.put(key, new Boolean(w.getEnabled())); - w.setEnabled(enabled); - } - } - - private void setDisplayCursor(Display d, Cursor c) { - Shell[] shells= d.getShells(); - for (int i= 0; i < shells.length; i++) - shells[i].setCursor(c); - } - - private void stopped(Object savedState) { - Shell shell= getShell(); - if (shell != null) { - Button cancelButton= getButton(IDialogConstants.CANCEL_ID); - - if (fProgressMonitorPart != null) - fProgressMonitorPart.removeFromCancelComponent(cancelButton); - - fStatusContainer.showPage(fMessageBox); - Map state = (Map)savedState; - restoreUIState(state); - - setDisplayCursor(shell.getDisplay(), null); - cancelButton.setCursor(null); - fWaitCursor.dispose(); - fWaitCursor = null; - fArrowCursor.dispose(); - fArrowCursor = null; - Control focusControl = (Control)state.get("focus"); //$NON-NLS-1$ - if (focusControl != null) - focusControl.setFocus(); - } - } - - private void restoreUIState(Map state) { - restoreEnableState(getButton(PREVIEW_ID), state, "preview");//$NON-NLS-1$ - restoreEnableState(getButton(IDialogConstants.OK_ID), state, "ok");//$NON-NLS-1$ - restoreEnableState(getButton(IDialogConstants.CANCEL_ID), state, "cancel");//$NON-NLS-1$ - ControlEnableState pageState = (ControlEnableState) state.get("page");//$NON-NLS-1$ - pageState.restore(); - } - - private void restoreEnableState(Control w, Map h, String key) { - if (w != null) { - Boolean b = (Boolean) h.get(key); - if (b != null) - w.setEnabled(b.booleanValue()); - } - } - - //---- Dialog ----------------------------------------------------------- - - public boolean close() { - fWizard.dispose(); - return super.close(); - } - - protected void cancelPressed() { - if (fActiveRunningOperations == 0) { - if (fWizard.performCancel()) - super.cancelPressed(); - } - } - - protected void okPressed() { - IWizardPage current= fCurrentPage; - if (fWizard.performFinish()) { - saveSize(); - super.okPressed(); - return; - } - if (fCurrentPage == current) - return; - Assert.isTrue(ErrorWizardPage.PAGE_NAME.equals(fCurrentPage.getName())); - if (showErrorDialog((ErrorWizardPage)fCurrentPage)) { - if (fWizard.performFinish()) { - super.okPressed(); - return; - } - } - fCurrentPage= current; - } - - private boolean isPreviewPageActive() { - return IPreviewWizardPage.PAGE_NAME.equals(fCurrentPage.getName()); - } - - private void previewPressed() { - IWizardPage current= fCurrentPage; - fCurrentPage= fCurrentPage.getNextPage(); - if (current == fCurrentPage) - return; - String pageName= fCurrentPage.getName(); - if (ErrorWizardPage.PAGE_NAME.equals(pageName)) { - if (showErrorDialog((ErrorWizardPage)fCurrentPage)) { - fCurrentPage= fCurrentPage.getNextPage(); - pageName= fCurrentPage.getName(); - } else { - return; - } - } - if (IPreviewWizardPage.PAGE_NAME.equals(pageName)) { - fCurrentPage.createControl(fPageContainer); - makeVisible(fCurrentPage); - updateButtons(); - if (((PreviewWizardPage)fCurrentPage).hasChanges()) - resize(); - else - getButton(IDialogConstants.OK_ID).setEnabled(false); - } else { - fCurrentPage= current; - } - } - - private boolean showErrorDialog(ErrorWizardPage page) { - RefactoringStatusDialog dialog= new RefactoringStatusDialog(getShell(), page, true); - switch (dialog.open()) { - case IDialogConstants.OK_ID: - return true; - case IDialogConstants.BACK_ID: - fCurrentPage= fCurrentPage.getPreviousPage(); - break; - case IDialogConstants.CANCEL_ID: - super.cancelPressed(); - } - return false; - } - - private void resize() { - Control control= fPageContainer.getTopPage(); - Point size= control.getSize(); - int dw= Math.max(0, fPreviewWidth - size.x); - int dh= Math.max(0, fPreviewHeight - size.y); - int dx = dw / 2; - int dy= dh / 2; - Shell shell= getShell(); - Rectangle rect= shell.getBounds(); - Rectangle display= shell.getDisplay().getClientArea(); - rect.x= Math.max(0, rect.x - dx); - rect.y= Math.max(0, rect.y - dy); - rect.width= Math.min(rect.width + dw, display.width); - rect.height= Math.min(rect.height + dh, display.height); - int xe= rect.x + rect.width; - if (xe > display.width) { - rect.x-= xe - display.width; - } - int ye= rect.y + rect.height; - if (ye > display.height) { - rect.y-= ye - display.height; - } - shell.setBounds(rect); - } - - //---- UI construction --------------------------------------------------- - - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - newShell.setText(fWizard.getDefaultPageTitle()); - } - - protected Control createContents(Composite parent) { - Composite result= new Composite(parent, SWT.NONE); - GridLayout layout= new GridLayout(); - layout.marginHeight= 0; layout.marginWidth= 0; - layout.verticalSpacing= 0; layout.horizontalSpacing= 0; - result.setLayout(layout); - result.setLayoutData(new GridData(GridData.FILL_BOTH)); - - // initialize the dialog units - initializeDialogUnits(result); - - fPageContainer= new PageBook(result, SWT.NONE); - GridData gd= new GridData(GridData.FILL_BOTH); - fPageContainer.setLayoutData(gd); - fCurrentPage= fWizard.getStartingPage(); - dialogArea= fPageContainer; - if (fCurrentPage instanceof PreviewWizardPage) { - gd.widthHint= fPreviewWidth; - gd.heightHint= fPreviewHeight; - } - - fStatusContainer= new PageBook(result, SWT.NONE); - gd= new GridData(GridData.FILL_HORIZONTAL); - gd.widthHint= convertWidthInCharsToPixels(fWizard.getMessageLineWidthInChars()); - fStatusContainer.setLayoutData(gd); - if (fWizard.needsProgressMonitor()) - createProgressMonitorPart(); - createMessageBox(); - fStatusContainer.showPage(fMessageBox); - - buttonBar= createButtonBar(result); - - fCurrentPage.createControl(fPageContainer); - makeVisible(fCurrentPage); - - updateMessage(); - updateButtons(); - applyDialogFont(result); - return result; - } - - private void createProgressMonitorPart() { - // Insert a progress monitor - GridLayout pmlayout= new GridLayout(); - pmlayout.numColumns= 1; - pmlayout.marginHeight= 0; - fProgressMonitorPart= new ProgressMonitorPart(fStatusContainer, pmlayout); - } - - private void createMessageBox() { - fMessageBox= new MessageBox(fStatusContainer, SWT.NONE); - } - - protected void createButtonsForButtonBar(Composite parent) { - if (! (fCurrentPage instanceof PreviewWizardPage) && fWizard.hasPreviewPage()) { - Button preview= createButton(parent, PREVIEW_ID, RefactoringMessages.getString("RefactoringWizardDialog2.buttons.preview.label"), false); //$NON-NLS-1$ - preview.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - previewPressed(); - } - }); - } - - String OK_LABEL= IDialogConstants.OK_LABEL; - String CANCEL_LABEL= IDialogConstants.CANCEL_LABEL; - if (fWizard.yesNoStyle()) { - OK_LABEL= IDialogConstants.YES_LABEL; - CANCEL_LABEL= IDialogConstants.NO_LABEL; - } - createButton( - parent, - IDialogConstants.OK_ID, - OK_LABEL, - true); - createButton( - parent, - IDialogConstants.CANCEL_ID, - CANCEL_LABEL, - false); - Button okButton= getButton(IDialogConstants.OK_ID); - okButton.setFocus(); - } - - private void makeVisible(IWizardPage page) { - if (fVisiblePage == page) - return; - if (fVisiblePage != null) - fVisiblePage.setVisible(false); - fVisiblePage= page; - fPageContainer.showPage(page.getControl()); - fVisiblePage.setVisible(true); - } -} |