/*
* Copyright (c) 2012, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html
*
* 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.google.dart.tools.ui.internal.refactoring;
import com.google.dart.engine.services.refactoring.InlineMethodRefactoring;
import com.google.dart.tools.internal.corext.refactoring.util.Messages;
import com.google.dart.tools.ui.DartPluginImages;
import com.google.dart.tools.ui.internal.text.DartHelpContextIds;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
import org.eclipse.swt.SWT;
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.ui.PlatformUI;
/**
* @coverage dart.editor.ui.refactoring.ui
*/
public class InlineMethodInputPage_OLD extends UserInputWizardPage {
public static final String PAGE_NAME = "InlineMethodInputPage";//$NON-NLS-1$
private static final String DESCRIPTION = RefactoringMessages.InlineMethodInputPage_description;
private ServiceInlineMethodRefactoring fRefactoring;
private Button fRemove;
public InlineMethodInputPage_OLD() {
super(PAGE_NAME);
setImageDescriptor(DartPluginImages.DESC_WIZBAN_REFACTOR_CU);
setDescription(DESCRIPTION);
}
@Override
public void createControl(Composite parent) {
initializeDialogUnits(parent);
fRefactoring = (ServiceInlineMethodRefactoring) getRefactoring();
Composite result = new Composite(parent, SWT.NONE);
setControl(result);
GridLayout layout = new GridLayout();
result.setLayout(layout);
GridData gd = null;
boolean all = fRefactoring.getInitialMode() == InlineMethodRefactoring.Mode.INLINE_ALL;
Label label = new Label(result, SWT.NONE);
String methodLabel = fRefactoring.getMethodLabel();
label.setText(Messages.format(
RefactoringMessages.InlineMethodInputPage_inline_method,
methodLabel));
label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Composite separator = new Composite(result, SWT.NONE);
separator.setLayoutData(new GridData(0, 0));
Button radioAll = new Button(result, SWT.RADIO);
radioAll.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
radioAll.setText(RefactoringMessages.InlineMethodInputPage_all_invocations);
radioAll.setSelection(all);
radioAll.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
fRemove.setEnabled(fRefactoring.canEnableDeleteSource());
if (((Button) event.widget).getSelection()) {
changeRefactoring(InlineMethodRefactoring.Mode.INLINE_ALL);
}
}
});
fRemove = new Button(result, SWT.CHECK);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalIndent = convertWidthInCharsToPixels(3);
fRemove.setLayoutData(gd);
fRemove.setText(RefactoringMessages.InlineMethodInputPage_delete_declaration);
fRemove.setEnabled(all && fRefactoring.canEnableDeleteSource());
fRemove.setSelection(fRefactoring.canEnableDeleteSource());
fRefactoring.setDeleteSource(fRefactoring.canEnableDeleteSource());
fRemove.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
fRefactoring.setDeleteSource(((Button) e.widget).getSelection());
}
});
Button radioSelected = new Button(result, SWT.RADIO);
radioSelected.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
radioSelected.setText(RefactoringMessages.InlineMethodInputPage_only_selected);
radioSelected.setSelection(!all);
if (all) {
radioSelected.setEnabled(false);
radioAll.setFocus();
} else {
radioSelected.setFocus();
}
radioSelected.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
fRemove.setEnabled(false);
if (((Button) event.widget).getSelection()) {
changeRefactoring(InlineMethodRefactoring.Mode.INLINE_SINGLE);
}
}
});
Dialog.applyDialogFont(result);
PlatformUI.getWorkbench().getHelpSystem().setHelp(
getControl(),
DartHelpContextIds.INLINE_METHOD_WIZARD_PAGE);
}
private void changeRefactoring(InlineMethodRefactoring.Mode mode) {
fRefactoring.setCurrentMode(mode);
((RefactoringWizard) getWizard()).setForcePreviewReview(fRefactoring.requiresPreview());
}
}