Index: D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java =================================================================== --- D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java (revision 7412) +++ D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java (working copy) @@ -21,17 +21,12 @@ */ package org.hibernate.eclipse.console.wizards; -import java.util.ArrayList; import java.util.Iterator; -import java.util.List; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor; -import org.eclipse.jface.viewers.ICellEditorListener; import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TextCellEditor; @@ -44,7 +39,6 @@ import org.hibernate.console.KnownConfigurations; import org.hibernate.eclipse.console.model.IReverseEngineeringDefinition; import org.hibernate.eclipse.console.model.ITableFilter; -import org.hibernate.eclipse.console.utils.ProjectUtils; import org.hibernate.eclipse.console.workbench.DeferredContentProvider; import org.hibernate.eclipse.console.workbench.LazyDatabaseSchema; import org.hibernate.eclipse.console.workbench.TableContainer; @@ -59,11 +53,19 @@ private TableViewer tableViewer; - private IReverseEngineeringDefinition revEngDef; + protected IReverseEngineeringDefinition revEngDef; public TableFilterView(Composite parent, int style) { - super( parent, style ); + super( parent, style ); + } + protected TreeViewer createTreeViewer() { + TreeViewer viewer = new TreeViewer( tree ); + viewer.setLabelProvider( new AnyAdaptableLabelProvider() ); + viewer.setContentProvider( new DeferredContentProvider() ); + + viewer.setInput( null ); + return viewer; } public void setModel(IReverseEngineeringDefinition revEngDef) { @@ -74,13 +76,7 @@ protected void initialize() { super.initialize(); tableViewer = createTableFilterViewer(); - - viewer = new TreeViewer( tree ); - viewer.setLabelProvider( new AnyAdaptableLabelProvider() ); - viewer.setContentProvider( new DeferredContentProvider() ); - - viewer.setInput( null ); - + viewer = createTreeViewer(); } private TableViewer createTableFilterViewer() { @@ -132,7 +128,7 @@ return revEngDef.getTableFilters(); } - private void toggle(boolean exclude) { + protected void toggle(boolean exclude) { ISelection selection = viewer.getSelection(); if ( !selection.isEmpty() ) { Index: D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenerationLaunchDelegate.java =================================================================== --- D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenerationLaunchDelegate.java (revision 7514) +++ D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenerationLaunchDelegate.java (working copy) @@ -21,6 +21,7 @@ */ package org.hibernate.eclipse.launch; +import java.io.ByteArrayInputStream; import java.io.File; import java.lang.reflect.Constructor; import java.util.HashSet; @@ -64,6 +65,7 @@ import org.hibernate.cfg.reveng.OverrideRepository; import org.hibernate.cfg.reveng.ReverseEngineeringSettings; import org.hibernate.cfg.reveng.ReverseEngineeringStrategy; +import org.hibernate.cfg.reveng.TableFilter; import org.hibernate.console.ConsoleConfiguration; import org.hibernate.console.HibernateConsoleRuntimeException; import org.hibernate.console.KnownConfigurations; @@ -262,6 +264,7 @@ final String reverseEngineeringStrategy = attributes.getRevengStrategy(); final boolean preferBasicCompositeids = attributes.isPreferBasicCompositeIds(); final IResource revengres = PathHelper.findMember( root, attributes.getRevengSettings()); + final String revengTables = attributes.getRevengTables(); if(reveng) { Configuration configuration = null; @@ -281,19 +284,24 @@ cc.execute(new Command() { // need to execute in the consoleconfiguration to let it handle classpath stuff! public Object execute() { - //todo: factor this setup of revengstrategy to core - DefaultReverseEngineeringStrategy configurableNamingStrategy = new DefaultReverseEngineeringStrategy(); - //configurableNamingStrategy.setSettings(qqsettings); + ReverseEngineeringStrategy res = new DefaultReverseEngineeringStrategy(); - ReverseEngineeringStrategy res = configurableNamingStrategy; - if(revengres!=null) { + OverrideRepository repository = null; + + if (revengTables != null){ + repository = new OverrideRepository(); + repository.addInputStream(new ByteArrayInputStream(revengTables.getBytes())); + } else if(revengres!=null) { /*Configuration configuration = cc.buildWith(new Configuration(), false);*/ /*Settings settings = cc.getSettings(configuration);*/ File file = PathHelper.getLocation( revengres ).toFile(); - OverrideRepository repository = new OverrideRepository();///*settings.getDefaultCatalogName(),settings.getDefaultSchemaName()*/); - repository.addFile(file); + repository = new OverrideRepository(); + repository.addFile(file); + } + + if (repository != null){ res = repository.getReverseEngineeringStrategy(res); } @@ -306,7 +314,6 @@ .setDetectManyToMany( attributes.detectManyToMany() ) .setDetectOptimisticLock( attributes.detectOptimisticLock() ); - configurableNamingStrategy.setSettings( qqsettings ); res.setSettings(qqsettings); cfg.setReverseEngineeringStrategy( res ); Index: D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ExporterAttributes.java =================================================================== --- D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ExporterAttributes.java (revision 7412) +++ D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ExporterAttributes.java (working copy) @@ -46,6 +46,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.StringTokenizer; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; @@ -56,6 +57,7 @@ import org.hibernate.eclipse.console.HibernateConsolePlugin; import org.hibernate.eclipse.console.model.impl.ExporterDefinition; import org.hibernate.eclipse.console.model.impl.ExporterFactory; +import org.hibernate.mapping.Table; // This class was created to centralize launch configuration attribute loading/saving // (and also to clean up CodeGenerationLaunchDelegate considerably) @@ -69,6 +71,8 @@ private String outputPath; private String templatePath; private List exporterFactories; + // if set then build reveng strategy relying on the list of tables + private String revengTables; private boolean autoManyToManyDetection; private boolean autoVersioning; @@ -104,6 +108,7 @@ } exporterFactories = readExporterFactories(configuration); + revengTables = configuration.getAttribute(HibernateLaunchConstants.ATTR_REVENG_TABLES, (String)null); } catch (CoreException e) { throw new CoreException(HibernateConsolePlugin.throwableToStatus(e, 666)); @@ -348,6 +353,10 @@ return autoVersioning; } + public String getRevengTables() { + return revengTables; + } + Index: D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/HibernateLaunchConstants.java =================================================================== --- D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/HibernateLaunchConstants.java (revision 7412) +++ D:/workspaces/RedHat/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/HibernateLaunchConstants.java (working copy) @@ -61,5 +61,6 @@ public static final String ATTR_PREFER_BASIC_COMPOSITE_IDS = ATTR_PREFIX + "prefercompositeids"; public static final String ATTR_AUTOMATIC_MANY_TO_MANY = ATTR_PREFIX + "reveng.detect_many_to_many"; public static final String ATTR_AUTOMATIC_VERSIONING = ATTR_PREFIX + "reveng.detect_optimistc_lock"; + public static final String ATTR_REVENG_TABLES = ATTR_PREFIX + "reveng.tables";//$NON-NLS-1$ }