blob: 5bf3046c3c5eba5477c7d486ad692bf5e8151864 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.ui.refactoring.reorg;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.IWorkbenchWizard;
import org.eclipse.jdt.internal.corext.Assert;
import org.eclipse.jdt.internal.corext.refactoring.reorg.ICreateTargetQueries;
import org.eclipse.jdt.internal.corext.refactoring.reorg.ICreateTargetQuery;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.util.PixelConverter;
import org.eclipse.jdt.internal.ui.wizards.NewPackageCreationWizard;
import org.eclipse.jdt.ui.wizards.NewPackageWizardPage;
public class CreateTargetQueries implements ICreateTargetQueries {
private final Wizard fWizard;
private final Shell fShell;
public CreateTargetQueries(Wizard wizard) {
fWizard= wizard;
fShell= null;
}
public CreateTargetQueries(Shell shell) {
fShell = shell;
fWizard= null;
}
private Shell getShell() {
Assert.isTrue(fWizard == null || fShell == null);
if (fWizard != null)
return fWizard.getContainer().getShell();
else if (fShell != null)
return fShell;
else
return JavaPlugin.getActiveWorkbenchShell();
}
public ICreateTargetQuery createNewPackageQuery() {
return new ICreateTargetQuery() {
public Object getCreatedTarget(Object selection) {
IWorkbenchWizard packageCreationWizard= new NewPackageCreationWizard();
IWizardPage[] pages= openNewElementWizard(packageCreationWizard, getShell(), selection);
Assert.isTrue(pages.length > 0 && pages[0] instanceof NewPackageWizardPage);
NewPackageWizardPage page= (NewPackageWizardPage) pages[0];
return page.getNewPackageFragment();
}
};
}
private IWizardPage[] openNewElementWizard(IWorkbenchWizard wizard, Shell shell, Object selection) {
wizard.init(JavaPlugin.getDefault().getWorkbench(), new StructuredSelection(selection));
WizardDialog dialog= new WizardDialog(shell, wizard);
PixelConverter converter= new PixelConverter(shell);
dialog.setMinimumPageSize(converter.convertWidthInCharsToPixels(70), converter.convertHeightInCharsToPixels(20));
dialog.create();
dialog.open();
IWizardPage[] pages= wizard.getPages();
return pages;
}
}