blob: 55a32e12e648eef85e240da25d68e469144bbc30 [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.nls;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.window.Window;
import org.eclipse.ui.dialogs.ElementListSelectionDialog;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
import org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
class PackageSelectionStringButtonAdapter implements IStringButtonAdapter {
private final SourceFirstPackageSelectionDialogField fPackageSelectionField;
private String fEmtpyListMessage;
private String fMessage;
private String fTitle;
PackageSelectionStringButtonAdapter(SourceFirstPackageSelectionDialogField field, String title, String message,
String emtpyListMessage) {
fPackageSelectionField= field;
fTitle= title;
fMessage= message;
fEmtpyListMessage= emtpyListMessage;
}
public void changeControlPressed(DialogField field) {
IPackageFragmentRoot root= fPackageSelectionField.getSelectedFragmentRoot();
IJavaElement[] packages= null;
try {
if (root != null && root.exists()) {
packages= root.getChildren();
}
} catch (JavaModelException e) {
// no need to react
}
if (packages == null) {
packages= new IJavaElement[0];
}
ElementListSelectionDialog dialog= new ElementListSelectionDialog(field.getLabelControl(null).getShell(),
new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT));
dialog.setIgnoreCase(true);
dialog.setTitle(fTitle);
dialog.setMessage(fMessage);
dialog.setEmptyListMessage(fEmtpyListMessage);
dialog.setElements(packages);
// TODO initial selection
// List selection = new ArrayList();
// selection.add(fPackageSelectionField.fPackageSelection.getPackageFragment());
// dialog.setInitialElementSelections(selection);
if (dialog.open() == Window.OK) {
IPackageFragment fragment= (IPackageFragment)dialog.getFirstResult();
fPackageSelectionField.setSelected(fragment);
}
}
}