bndtools.wizards.bndfile.NewBndFileWizardPage Maven / Gradle / Ivy
The newest version!
package bndtools.wizards.bndfile;
import java.io.InputStream;
import org.bndtools.api.BndtoolsConstants;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
import aQute.bnd.build.Project;
import bndtools.Plugin;
public class NewBndFileWizardPage extends WizardNewFileCreationPage {
private InputStream initialContents = null;
public NewBndFileWizardPage(String pageName, IStructuredSelection selection) {
super(pageName, selection != null ? selection : StructuredSelection.EMPTY);
setTitle(Messages.NewBndFileWizardPage_title);
}
@Override
protected String getNewFileLabel() {
return Messages.NewBndFileWizardPage_labelBndFile;
}
@Override
protected boolean validatePage() {
boolean valid = super.validatePage();
if (!valid)
return valid;
String warning = null;
String error = null;
String fileName = getFileName();
IPath containerPath = getContainerFullPath();
IResource container = ResourcesPlugin.getWorkspace()
.getRoot()
.findMember(containerPath);
IProject project = container.getProject();
try {
if (project.hasNature(BndtoolsConstants.NATURE_ID)) {
if (Project.BNDFILE.equalsIgnoreCase(fileName)) {
error = Messages.NewBndFileWizardPage_errorReservedFilename;
}
}
} catch (CoreException e) {
ErrorDialog.openError(getShell(), Messages.NewBndFileWizardPage_titleError, null, new Status(IStatus.ERROR,
Plugin.PLUGIN_ID, 0, Messages.NewBndFileWizardPage_errorCheckingBndNature, e));
}
if (container.getType() != IResource.PROJECT) {
warning = Messages.NewBndFileWizardPage_warningNotTopLevel;
}
try {
if (!project.hasNature(BndtoolsConstants.NATURE_ID)) {
warning = Messages.NewBndFileWizardPage_warningNonBndProject;
}
} catch (CoreException e) {
ErrorDialog.openError(getShell(), Messages.NewBndFileWizardPage_titleError, null, new Status(IStatus.ERROR,
Plugin.PLUGIN_ID, 0, Messages.NewBndFileWizardPage_errorCheckingBndNature, e));
}
setMessage(warning, IMessageProvider.WARNING);
setErrorMessage(error);
return error == null;
}
@Override
protected InputStream getInitialContents() {
return initialContents;
}
void setInitialContents(InputStream initialContents) {
this.initialContents = initialContents;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy