package org.archstudio.dblgen.ui.actions; import org.archstudio.dblgen.Xadl3SchemaNature; import org.archstudio.eclipse.ui.actions.AbstractToggleProjectNatureHandler; import org.eclipse.core.resources.IProject; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.ui.IStartup; import org.eclipse.ui.PlatformUI; public class ToggleXadl3SchemaNatureAction extends AbstractToggleProjectNatureHandler implements IStartup { public ToggleXadl3SchemaNatureAction() { super(Xadl3SchemaNature.NATURE_ID); } @Override protected boolean setNatureAdded(IProject project, String natureID, boolean addNature) { if (addNature) { MessageBox messageBox = new MessageBox(PlatformUI.getWorkbench().getDisplay().getActiveShell(), SWT.ICON_WARNING | SWT.YES | SWT.NO); messageBox.setMessage("Generating xADL data bindings in " + project.getName() + " will erase the contents of its current src folder. This operation" + " cannot be undone. Proceed?"); int rc = messageBox.open(); if (rc == SWT.YES) { return super.setNatureAdded(project, natureID, addNature); } return false; } return super.setNatureAdded(project, natureID, false); } @Override public void earlyStartup() { // do nothing, but required for correct initial menu checked setting } }