diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java | 296 |
1 files changed, 0 insertions, 296 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java deleted file mode 100644 index 063d971c20..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java +++ /dev/null @@ -1,296 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.ui.internal.platform.base; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.WorkspaceJob; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.jpt.core.JpaProject; -import org.eclipse.jpt.core.context.persistence.PersistenceXml; -import org.eclipse.jpt.core.internal.synch.SynchronizeClassesJob; -import org.eclipse.jpt.gen.internal.EntityGenerator; -import org.eclipse.jpt.gen.internal.PackageGenerator; -import org.eclipse.jpt.ui.internal.JptUiMessages; -import org.eclipse.jpt.ui.internal.wizards.GenerateEntitiesWizard; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; - -/** - * EntitiesGenerator - */ -public class EntitiesGenerator { - private JpaProject project; - private IStructuredSelection selection; - - - // ********** construction ********** - - static public void generate(JpaProject project, IStructuredSelection selection) { - new EntitiesGenerator(project, selection).generate(); - } - - private EntitiesGenerator(JpaProject project, IStructuredSelection selection) { - super(); - if (project == null) { - throw new NullPointerException(); - } - this.project = project; - this.selection = selection; - } - - - // ********** generate ********** - - /** - * prompt the user with a wizard; - * schedule a job to generate the entities; - * optionally schedule a job to synchronize persistence.xml to - * run afterwards - */ - protected void generate() { - GenerateEntitiesWizard wizard = new GenerateEntitiesWizard(this.project, this.selection); - - WizardDialog dialog = new WizardDialog(this.getCurrentShell(), wizard); - dialog.create(); - int returnCode = dialog.open(); - if (returnCode != Window.OK) { - return; - } - - PackageGenerator.Config pConfig = wizard.getPackageGeneratorConfig(); - EntityGenerator.Config eConfig = wizard.getEntityGeneratorConfig(); - eConfig.setOverwriteConfirmer(new OverwriteConfirmer(this.getCurrentShell())); - - WorkspaceJob genEntitiesJob = new GenerateEntitiesJob(pConfig, eConfig); - - WorkspaceJob synchClassesJob = null; - - if (wizard.synchronizePersistenceXml()) { - // we currently only support *one* persistence.xml file per project - PersistenceXml persistenceXml = this.project.getRootContextNode().getPersistenceXml(); - if (persistenceXml != null) { - // TODO casting to IFile - just trying to get rid of all compiler errors for now - synchClassesJob = new SynchronizeClassesJob((IFile) persistenceXml.getResource()); - } - } - - genEntitiesJob.schedule(); - if (synchClassesJob != null) { - synchClassesJob.schedule(); - } - } - - private Shell getCurrentShell() { - return Display.getCurrent().getActiveShell(); - } - - - // ********** generate entities job ********** - - static class GenerateEntitiesJob extends WorkspaceJob { - private final PackageGenerator.Config packageConfig; - private final EntityGenerator.Config entityConfig; - - GenerateEntitiesJob( - PackageGenerator.Config packageConfig, - EntityGenerator.Config entityConfig - ) { - super(JptUiMessages.EntitiesGenerator_jobName); - this.packageConfig = packageConfig; - this.entityConfig = entityConfig; - this.setRule(packageConfig.getPackageFragment().getJavaProject().getProject()); - } - - @Override - public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { - PackageGenerator.generateEntities(this.packageConfig, this.entityConfig, monitor); - return Status.OK_STATUS; - } - - } - - - // ********** overwrite confirmer ********** - - static class OverwriteConfirmer implements EntityGenerator.OverwriteConfirmer { - private Shell shell; - private boolean overwriteAll = false; - private boolean skipAll = false; - - OverwriteConfirmer(Shell shell) { - super(); - this.shell = shell; - } - - public boolean overwrite(final String className) { - if (this.overwriteAll) { - return true; - } - if (this.skipAll) { - return false; - } - return this.promptUser(className); - } - - private boolean promptUser(String className) { - final OverwriteConfirmerDialog dialog = new OverwriteConfirmerDialog(this.shell, className); - // get on the UI thread synchronously, need feedback before continuing - this.shell.getDisplay().syncExec(new Runnable() { - public void run() { - dialog.open(); - } - }); - if (dialog.getReturnCode() == Window.CANCEL) { - throw new OperationCanceledException(); - } - if (dialog.yes()) { - return true; - } - if (dialog.yesToAll()) { - this.overwriteAll = true; - return true; - } - if (dialog.no()) { - return false; - } - if (dialog.noToAll()) { - this.skipAll = true; - return false; - } - throw new IllegalStateException(); - } - - } - - - // ********** overwrite dialog ********** - - static class OverwriteConfirmerDialog extends Dialog { - private final String className; - private boolean yes = false; - private boolean yesToAll = false; - private boolean no = false; - private boolean noToAll = false; - - OverwriteConfirmerDialog(Shell parent, String className) { - super(parent); - this.className = className; - } - - @Override - protected void configureShell(Shell shell) { - super.configureShell(shell); - shell.setText(JptUiMessages.OverwriteConfirmerDialog_title); - } - - @Override - protected Control createDialogArea(Composite parent) { - Composite composite = (Composite) super.createDialogArea(parent); - GridLayout gridLayout = (GridLayout) composite.getLayout(); - gridLayout.numColumns = 2; - - Label text = new Label(composite, SWT.LEFT); - text.setText(NLS.bind(JptUiMessages.OverwriteConfirmerDialog_text, this.className)); - text.setLayoutData(new GridData()); - - return composite; - } - - @Override - protected void createButtonsForButtonBar(Composite parent) { - this.createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, false); - this.createButton(parent, IDialogConstants.YES_TO_ALL_ID, IDialogConstants.YES_TO_ALL_LABEL, false); - this.createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, true); - this.createButton(parent, IDialogConstants.NO_TO_ALL_ID, IDialogConstants.NO_TO_ALL_LABEL, false); - this.createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); - } - - @Override - protected void buttonPressed(int buttonId) { - switch (buttonId) { - case IDialogConstants.YES_ID : - this.yesPressed(); - break; - case IDialogConstants.YES_TO_ALL_ID : - this.yesToAllPressed(); - break; - case IDialogConstants.NO_ID : - this.noPressed(); - break; - case IDialogConstants.NO_TO_ALL_ID : - this.noToAllPressed(); - break; - case IDialogConstants.CANCEL_ID : - this.cancelPressed(); - break; - default : - break; - } - } - - private void yesPressed() { - this.yes = true; - this.setReturnCode(OK); - this.close(); - } - - private void yesToAllPressed() { - this.yesToAll = true; - this.setReturnCode(OK); - this.close(); - } - - private void noPressed() { - this.no = true; - this.setReturnCode(OK); - this.close(); - } - - private void noToAllPressed() { - this.noToAll = true; - this.setReturnCode(OK); - this.close(); - } - - boolean yes() { - return this.yes; - } - - boolean yesToAll() { - return this.yesToAll; - } - - boolean no() { - return this.no; - } - - boolean noToAll() { - return this.noToAll; - } - } - - -} |