Search in sources :

Example 11 with IService

use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.

the class CodeGenerationSettingsTab method createControl.

public void createControl(Composite parent) {
    // initializeDialogUnits(parent);
    final ScrolledComposite sc = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
    sc.setExpandHorizontal(true);
    sc.setExpandVertical(true);
    Composite container = new Composite(sc, SWT.NULL);
    sc.setContent(container);
    GridLayout layout = new GridLayout();
    container.setLayout(layout);
    layout.numColumns = 4;
    layout.verticalSpacing = 10;
    IDialogFieldListener fieldlistener = new IDialogFieldListener() {

        public void dialogFieldChanged(DialogField field) {
            dialogChanged();
        }
    };
    useExternalProcess = new SelectionButtonDialogField(SWT.CHECK);
    useExternalProcess.setDialogFieldListener(fieldlistener);
    useExternalProcess.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_use_generation_in_external_process);
    consoleConfigurationName = new ComboDialogField(SWT.READ_ONLY);
    consoleConfigurationName.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_console_configuration);
    ConsoleConfiguration[] cfg = LaunchHelper.findFilteredSortedConsoleConfigs();
    String[] names = new String[cfg.length + 1];
    names[0] = NULL_CONFIG;
    for (int i = 0; i < cfg.length; i++) {
        ConsoleConfiguration configuration = cfg[i];
        names[i + 1] = configuration.getName();
    }
    consoleConfigurationName.setItems(names);
    consoleConfigurationName.setDialogFieldListener(fieldlistener);
    outputdir = new StringButtonDialogField(new IStringButtonAdapter() {

        public void changeControlPressed(DialogField field) {
            // IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(),  PathHelper.pathOrNull(outputdir.getText()), new IPath[0], "Select output directory", "Choose directory in which the generated files will be stored", new String[] {"cfg.xml"}, false, true, false);
            IPath[] paths = DialogSelectionHelper.chooseFolderEntries(getShell(), PathHelper.pathOrNull(outputdir.getText()), HibernateConsoleMessages.CodeGenerationSettingsTab_select_output_dir, HibernateConsoleMessages.CodeGenerationSettingsTab_choose_dir_for_generated_files, false);
            if (paths != null && paths.length == 1) {
                outputdir.setText(((paths[0]).toOSString()));
            }
        }
    });
    outputdir.setDialogFieldListener(fieldlistener);
    outputdir.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_output_dir);
    outputdir.setButtonLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_browse);
    templatedir = new DirectoryBrowseField(null, null, HibernateConsoleMessages.CodeGenerationSettingsTab_select_template_dir, HibernateConsoleMessages.CodeGenerationSettingsTab_choose_dir_custom_templates);
    templatedir.setDialogFieldListener(fieldlistener);
    templatedir.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_template_directory);
    templatedir.setFilesystemBrowseLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_filesystem);
    templatedir.setWorkspaceBrowseLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_workspace);
    packageName = new StringDialogField();
    packageName.setDialogFieldListener(fieldlistener);
    packageName.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_package);
    reverseEngineeringStrategy = new StringButtonDialogField(new IStringButtonAdapter() {

        public void changeControlPressed(DialogField field) {
            IService service = getService();
            String string = DialogSelectionHelper.chooseImplementation(service.getReverseEngineeringStrategyClassName(), reverseEngineeringStrategy.getText(), HibernateConsoleMessages.CodeGenerationSettingsTab_choose_reverse_engineering_strategy, getShell());
            if (string != null) {
                reverseEngineeringStrategy.setText(string);
            }
        }
    });
    reverseEngineeringStrategy.setDialogFieldListener(fieldlistener);
    reverseEngineeringStrategy.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_reveng_strategy);
    reverseEngineeringStrategy.setButtonLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_browse);
    reverseEngineeringSettings = new StringButtonDialogField(new IStringButtonAdapter() {

        public void changeControlPressed(DialogField field) {
            int defaultChoice = 0;
            IPath reverseEngineeringSettingsFile = getReverseEngineeringSettingsFile();
            if (reverseEngineeringSettingsFile == null) {
                defaultChoice = 0;
            } else {
                defaultChoice = 1;
            }
            MessageDialog dialog = new MessageDialog(getShell(), HibernateConsoleMessages.CodeGenerationSettingsTab_setup_reverse_engineering, null, HibernateConsoleMessages.CodeGenerationSettingsTab_do_you_want_create_reveng_xml, MessageDialog.QUESTION, new String[] { HibernateConsoleMessages.CodeGenerationSettingsTab_create_new, HibernateConsoleMessages.CodeGenerationSettingsTab_use_existing, IDialogConstants.CANCEL_LABEL }, defaultChoice);
            int answer = dialog.open();
            if (answer == 0) {
                // create new
                NewReverseEngineeringFileWizard wizard = new NewReverseEngineeringFileWizard();
                wizard.init(PlatformUI.getWorkbench(), selection);
                wizard.setSelectConfiguration(getConfigurationName());
                IWorkbenchWindow win = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
                WizardDialog wdialog = new WizardDialog(win.getShell(), wizard);
                // This opens a dialog
                wdialog.open();
                IPath createdFilePath = wizard.getCreatedFilePath();
                if (createdFilePath != null) {
                    reverseEngineeringSettings.setText(createdFilePath.toOSString());
                }
            } else if (answer == 1) {
                // use existing
                IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(), reverseEngineeringSettingsFile, new IPath[0], HibernateConsoleMessages.CodeGenerationSettingsTab_select_reverse_engineering_settings_file, HibernateConsoleMessages.CodeGenerationSettingsTab_choose_file_read_reverse_settings, new String[] { HibernateConsoleMessages.CodeGenerationSettingsTab_reveng_xml_1 }, false, false, true);
                if (paths != null && paths.length == 1) {
                    reverseEngineeringSettings.setText(((paths[0]).toOSString()));
                }
            }
        }
    });
    reverseEngineeringSettings.setDialogFieldListener(fieldlistener);
    reverseEngineeringSettings.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_reveng_xml_2);
    reverseEngineeringSettings.setButtonLabel(HibernateConsoleMessages.CodeGenerationSettingsTab_setup);
    reverseengineer = new SelectionButtonDialogField(SWT.CHECK);
    reverseengineer.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_reverse_engineer_from_jdbc_connection);
    reverseengineer.setDialogFieldListener(fieldlistener);
    useOwnTemplates = new SelectionButtonDialogField(SWT.CHECK);
    useOwnTemplates.setDialogFieldListener(fieldlistener);
    useOwnTemplates.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_use_custom_templates);
    preferRawCompositeIds = new SelectionButtonDialogField(SWT.CHECK);
    preferRawCompositeIds.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_generate_basic_typed_composite_ids);
    preferRawCompositeIds.setSelection(true);
    preferRawCompositeIds.setDialogFieldListener(fieldlistener);
    autoManyToMany = new SelectionButtonDialogField(SWT.CHECK);
    autoManyToMany.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_detect_many_to_many_tables);
    autoManyToMany.setSelection(true);
    autoManyToMany.setDialogFieldListener(fieldlistener);
    autoOneToOne = new SelectionButtonDialogField(SWT.CHECK);
    autoOneToOne.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_detect_one_to_one_associations);
    autoOneToOne.setSelection(true);
    autoOneToOne.setDialogFieldListener(fieldlistener);
    autoVersioning = new SelectionButtonDialogField(SWT.CHECK);
    autoVersioning.setLabelText(HibernateConsoleMessages.CodeGenerationSettingsTab_detect_optimistic_lock_columns);
    autoVersioning.setSelection(true);
    autoVersioning.setDialogFieldListener(fieldlistener);
    useOwnTemplates.attachDialogField(templatedir);
    reverseengineer.attachDialogFields(new DialogField[] { packageName, preferRawCompositeIds, reverseEngineeringSettings, reverseEngineeringStrategy, autoManyToMany, autoOneToOne, autoVersioning });
    // do not show the option cause: JBIDE-8072
    // useExternalProcess.doFillIntoGrid(container, 4);
    useExternalProcess.setSelection(false);
    consoleConfigurationName.doFillIntoGrid(container, 4);
    Control[] controls = outputdir.doFillIntoGrid(container, 4);
    // Hack to tell the text field to stretch!
    ((GridData) controls[1].getLayoutData()).grabExcessHorizontalSpace = true;
    reverseengineer.doFillIntoGrid(container, 4);
    packageName.doFillIntoGrid(container, 4);
    reverseEngineeringSettings.doFillIntoGrid(container, 4);
    reverseEngineeringStrategy.doFillIntoGrid(container, 4);
    fillLabel(container);
    preferRawCompositeIds.doFillIntoGrid(container, 3);
    fillLabel(container);
    autoVersioning.doFillIntoGrid(container, 3);
    fillLabel(container);
    autoManyToMany.doFillIntoGrid(container, 3);
    fillLabel(container);
    autoOneToOne.doFillIntoGrid(container, 3);
    useOwnTemplates.doFillIntoGrid(container, 4);
    controls = templatedir.doFillIntoGrid(container, 4);
    // Hack to tell the text field to stretch!
    ((GridData) controls[1].getLayoutData()).grabExcessHorizontalSpace = true;
    sc.setMinSize(container.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    dialogChanged();
    setControl(sc);
}
Also used : StringButtonDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField) IStringButtonAdapter(org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter) GridLayout(org.eclipse.swt.layout.GridLayout) Control(org.eclipse.swt.widgets.Control) ComboDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.ComboDialogField) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) MessageDialog(org.eclipse.jface.dialogs.MessageDialog) ComboDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.ComboDialogField) StringDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField) StringButtonDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField) SelectionButtonDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField) DialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField) SelectionButtonDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField) IService(org.jboss.tools.hibernate.runtime.spi.IService) IDialogFieldListener(org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener) IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) ConsoleConfiguration(org.hibernate.console.ConsoleConfiguration) Composite(org.eclipse.swt.widgets.Composite) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) IPath(org.eclipse.core.runtime.IPath) StringDialogField(org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField) NewReverseEngineeringFileWizard(org.hibernate.eclipse.console.wizards.NewReverseEngineeringFileWizard) WizardDialog(org.eclipse.jface.wizard.WizardDialog)

Example 12 with IService

use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.

the class HQLDetector method checkQuery.

/**
 * Given a ConsoleConfiguration and a query this method validates the query through hibernate if  a sessionfactory is available.
 * @param cc
 * @param query
 * @param allowEL if true, EL syntax will be replaced as a named variable
 * @throws HibernteException if something is wrong with the query
 */
public static void checkQuery(ConsoleConfiguration cc, String query, boolean allowEL) {
    if (cc != null && cc.isSessionFactoryCreated()) {
        if (allowEL) {
            query = ELTransformer.removeEL(query);
        }
        IService service = cc.getHibernateExtension().getHibernateService();
        service.newHQLQueryPlan(query, false, cc.getSessionFactory());
    } else {
    // messager.printWarning( annoValue.getPosition(), "Could not verify syntax. SessionFactory not created." );
    }
}
Also used : IService(org.jboss.tools.hibernate.runtime.spi.IService)

Example 13 with IService

use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.

the class CoreMappingTestHelper method testHbmExportExceptionTest.

public void testHbmExportExceptionTest(String packageName) throws Exception {
    String projectName = testProject.getIProject().getName();
    String pathName = "/" + projectName + "/src/" + packageName.replace('.', '/');
    IPackageFragment testPackage = testProject.getIJavaProject().findPackageFragment(new Path(pathName));
    try {
        Object[] persClassesInit = getPersistenceClasses(true);
        final ConsoleConfiguration consCFG = getConsoleConfig();
        IConfiguration config = consCFG.getConfiguration();
        // delete old hbm files
        Assert.assertNotNull(testPackage);
        int nDeleted = 0;
        if (testPackage.getNonJavaResources().length > 0) {
            Object[] ress = testPackage.getNonJavaResources();
            for (int i = 0; i < ress.length; i++) {
                if (ress[i] instanceof IFile) {
                    IFile res = (IFile) ress[i];
                    if (res.getName().endsWith(".hbm.xml")) {
                        // $NON-NLS-1$
                        res.delete(true, false, null);
                        nDeleted++;
                    }
                }
            }
        }
        String[] versions = ServiceLookup.getVersions();
        IService service = ServiceLookup.findService(versions[0]);
        File srcFolder = testProject.getIProject().getFolder(TestProject.SRC_FOLDER).getLocation().toFile();
        IHibernateMappingExporter hce = service.newHibernateMappingExporter(config, srcFolder);
        try {
            hce.start();
            IArtifactCollector collector = service.newArtifactCollector();
            collector.formatFiles();
            try {
                // build generated configuration
                testPackage.getResource().refreshLocal(IResource.DEPTH_INFINITE, null);
                testPackage.getJavaProject().getProject().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
                ConsoleConfigUtils.customizeCfgXmlForPack(testPackage);
                Assert.assertNotNull(consCFG);
                consCFG.reset();
                consCFG.build();
                Assert.assertTrue(consCFG.hasConfiguration());
                consCFG.getConfiguration().buildMappings();
                config = consCFG.getConfiguration();
            } catch (CoreException e) {
                String out = NLS.bind(TestConsoleMessages.UpdateConfigurationTest_error_customising_file_for_package, new Object[] { ConsoleConfigUtils.CFG_FILE_NAME, testPackage.getPath(), e.getMessage() });
                Assert.fail(out);
            }
        } catch (Exception e) {
            throw e;
        // throw (Exception)e.getCause();
        }
        // 
        Object[] persClassesReInit = getPersistenceClasses(false);
        // 
        int nCreated = 0;
        if (testPackage.getNonJavaResources().length > 0) {
            Object[] ress = testPackage.getNonJavaResources();
            for (int i = 0; i < ress.length; i++) {
                if (ress[i] instanceof IFile) {
                    IFile res = (IFile) ress[i];
                    if (res.getName().endsWith(".hbm.xml")) {
                        // $NON-NLS-1$
                        nCreated++;
                    }
                }
            }
        }
        // 
        Assert.assertTrue(persClassesInit.length == persClassesReInit.length);
        Assert.assertTrue(nCreated > 0);
        Assert.assertTrue(nDeleted >= 0 && persClassesInit.length > 0);
        Assert.assertTrue(nCreated <= persClassesInit.length);
    } catch (Exception e) {
        // $NON-NLS-1$ //$NON-NLS-2$
        String newMessage = "\nPackage " + testPackage.getElementName() + ":";
        throw new WrapperException(newMessage, e);
    }
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IPackageFragment(org.eclipse.jdt.core.IPackageFragment) ConsoleConfiguration(org.hibernate.console.ConsoleConfiguration) IFile(org.eclipse.core.resources.IFile) JavaModelException(org.eclipse.jdt.core.JavaModelException) CoreException(org.eclipse.core.runtime.CoreException) PartInitException(org.eclipse.ui.PartInitException) FileNotFoundException(java.io.FileNotFoundException) IArtifactCollector(org.jboss.tools.hibernate.runtime.spi.IArtifactCollector) CoreException(org.eclipse.core.runtime.CoreException) IHibernateMappingExporter(org.jboss.tools.hibernate.runtime.spi.IHibernateMappingExporter) IConfiguration(org.jboss.tools.hibernate.runtime.spi.IConfiguration) IFile(org.eclipse.core.resources.IFile) File(java.io.File) IService(org.jboss.tools.hibernate.runtime.spi.IService)

Example 14 with IService

use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.

the class MappingTestHelper method testHbmExportExceptionTest.

public void testHbmExportExceptionTest() throws Exception {
    String projectName = testProject.getIProject().getName();
    String pathName = "/" + projectName + "/src/" + packageName.replace('.', '/');
    IPackageFragment testPackage = testProject.getIJavaProject().findPackageFragment(new Path(pathName));
    try {
        Object[] persClassesInit = getPersistenceClasses(true);
        final ConsoleConfiguration consCFG = getConsoleConfig();
        IConfiguration config = consCFG.getConfiguration();
        // delete old hbm files
        Assert.assertNotNull(testPackage);
        int nDeleted = 0;
        if (testPackage.getNonJavaResources().length > 0) {
            Object[] ress = testPackage.getNonJavaResources();
            for (int i = 0; i < ress.length; i++) {
                if (ress[i] instanceof IFile) {
                    IFile res = (IFile) ress[i];
                    if (res.getName().endsWith(".hbm.xml")) {
                        // $NON-NLS-1$
                        res.delete(true, false, null);
                        nDeleted++;
                    }
                }
            }
        }
        String[] versions = ServiceLookup.getVersions();
        IService service = ServiceLookup.findService(versions[0]);
        File srcFolder = testProject.getIProject().getFolder(TestProject.SRC_FOLDER).getLocation().toFile();
        IHibernateMappingExporter hce = service.newHibernateMappingExporter(config, srcFolder);
        try {
            hce.start();
            IArtifactCollector collector = service.newArtifactCollector();
            collector.formatFiles();
            try {
                // build generated configuration
                testPackage.getResource().refreshLocal(IResource.DEPTH_INFINITE, null);
                testPackage.getJavaProject().getProject().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
                ConsoleConfigUtils.customizeCfgXmlForPack(testPackage);
                Assert.assertNotNull(consCFG);
                consCFG.reset();
                consCFG.build();
                Assert.assertTrue(consCFG.hasConfiguration());
                consCFG.getConfiguration().buildMappings();
                config = consCFG.getConfiguration();
            } catch (CoreException e) {
                String out = NLS.bind(TestConsoleMessages.UpdateConfigurationTest_error_customising_file_for_package, new Object[] { ConsoleConfigUtils.CFG_FILE_NAME, testPackage.getPath(), e.getMessage() });
                Assert.fail(out);
            }
        } catch (Exception e) {
            // throw (Exception)e.getCause();
            throw e;
        }
        // 
        Object[] persClassesReInit = getPersistenceClasses(false);
        // 
        int nCreated = 0;
        if (testPackage.getNonJavaResources().length > 0) {
            Object[] ress = testPackage.getNonJavaResources();
            for (int i = 0; i < ress.length; i++) {
                if (ress[i] instanceof IFile) {
                    IFile res = (IFile) ress[i];
                    if (res.getName().endsWith(".hbm.xml")) {
                        // $NON-NLS-1$
                        nCreated++;
                    }
                }
            }
        }
        // 
        Assert.assertTrue(persClassesInit.length == persClassesReInit.length);
        Assert.assertTrue(nCreated > 0);
        Assert.assertTrue(nDeleted >= 0 && persClassesInit.length > 0);
        Assert.assertTrue(nCreated <= persClassesInit.length);
    } catch (Exception e) {
        // $NON-NLS-1$ //$NON-NLS-2$
        String newMessage = "\nPackage " + testPackage.getElementName() + ":";
        throw new WrapperException(newMessage, e);
    }
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IPackageFragment(org.eclipse.jdt.core.IPackageFragment) ConsoleConfiguration(org.hibernate.console.ConsoleConfiguration) IFile(org.eclipse.core.resources.IFile) JavaModelException(org.eclipse.jdt.core.JavaModelException) CoreException(org.eclipse.core.runtime.CoreException) PartInitException(org.eclipse.ui.PartInitException) FileNotFoundException(java.io.FileNotFoundException) IArtifactCollector(org.jboss.tools.hibernate.runtime.spi.IArtifactCollector) CoreException(org.eclipse.core.runtime.CoreException) IHibernateMappingExporter(org.jboss.tools.hibernate.runtime.spi.IHibernateMappingExporter) IConfiguration(org.jboss.tools.hibernate.runtime.spi.IConfiguration) IFile(org.eclipse.core.resources.IFile) File(java.io.File) IService(org.jboss.tools.hibernate.runtime.spi.IService)

Example 15 with IService

use of org.jboss.tools.hibernate.runtime.spi.IService in project jbosstools-hibernate by jbosstools.

the class ServiceLookupTest method testFindService.

@Test
public void testFindService() {
    IService service = ServiceLookup.findService("0.0.0.Test");
    Assert.assertNotNull(service);
    Assert.assertEquals(TestService.class, service.getClass());
}
Also used : IService(org.jboss.tools.hibernate.runtime.spi.IService) Test(org.junit.Test)

Aggregations

IService (org.jboss.tools.hibernate.runtime.spi.IService)23 ConsoleConfiguration (org.hibernate.console.ConsoleConfiguration)8 IConfiguration (org.jboss.tools.hibernate.runtime.spi.IConfiguration)8 Properties (java.util.Properties)5 IFile (org.eclipse.core.resources.IFile)5 CoreException (org.eclipse.core.runtime.CoreException)5 IPath (org.eclipse.core.runtime.IPath)5 File (java.io.File)4 FileNotFoundException (java.io.FileNotFoundException)4 JavaModelException (org.eclipse.jdt.core.JavaModelException)4 IPersistentClass (org.jboss.tools.hibernate.runtime.spi.IPersistentClass)4 Path (org.eclipse.core.runtime.Path)3 PartInitException (org.eclipse.ui.PartInitException)3 IArtifactCollector (org.jboss.tools.hibernate.runtime.spi.IArtifactCollector)3 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 IResource (org.eclipse.core.resources.IResource)2 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)2 IJavaProject (org.eclipse.jdt.core.IJavaProject)2 IPackageFragment (org.eclipse.jdt.core.IPackageFragment)2