Author: max.andersen(a)jboss.com
Date: 2008-02-08 07:13:33 -0500 (Fri, 08 Feb 2008)
New Revision: 6206
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/IReverseEngineeringDefinition.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/ReverseEngineeringDefinitionImpl.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/TableFilterImpl.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterWizardPage.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TreeToTableComposite.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/model/DOMReverseEngineeringDefinition.java
Log:
JBIDE-1421 validation on duplicates
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/IReverseEngineeringDefinition.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/IReverseEngineeringDefinition.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/IReverseEngineeringDefinition.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -37,11 +37,14 @@
ITableFilter createTableFilter();
void addTableFilter(ITableFilter filter);
+
ITableFilter[] getTableFilters();
+ void removeAllTableFilters();
void removeTableFilter(ITableFilter item);
void moveTableFilterDown(ITableFilter item);
void moveTableFilterUp(ITableFilter item);
-
+
+
ITypeMapping[] getTypeMappings();
ITypeMapping createTypeMapping();
void removeTypeMapping(ITypeMapping item);
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/ReverseEngineeringDefinitionImpl.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/ReverseEngineeringDefinitionImpl.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/ReverseEngineeringDefinitionImpl.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -54,7 +54,7 @@
}
public ITableFilter createTableFilter() {
- return new TableFilterImpl();
+ return new TableFilterImpl(this);
}
List tableFilters = new ArrayList();
@@ -69,10 +69,19 @@
pcs.firePropertyChange(property, old, newValue);
}
+ protected void updateTableFilter(ITableFilter updated) {
+ firePropertyChange("tableFilter", null, updated);
+ }
+
public ITableFilter[] getTableFilters() {
return (ITableFilter[]) tableFilters.toArray(new ITableFilter[tableFilters.size()]);
}
+ public void removeAllTableFilters() {
+ tableFilters.clear();
+ firePropertyChange(TABLEFILTER_STRUCTURE, null, null);
+ }
+
public void removeTableFilter(ITableFilter item) {
tableFilters.remove(item);
firePropertyChange(TABLEFILTER_STRUCTURE, item, null);
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/TableFilterImpl.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/TableFilterImpl.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/model/impl/TableFilterImpl.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -27,25 +27,35 @@
public class TableFilterImpl implements ITableFilter {
TableFilter tf = new TableFilter();
+ private final ReverseEngineeringDefinitionImpl revModel;
+ protected TableFilterImpl(
+ ReverseEngineeringDefinitionImpl reverseEngineeringDefinitionImpl) {
+ this.revModel = reverseEngineeringDefinitionImpl;
+ }
+
public void setExclude(Boolean exclude) {
tf.setExclude(exclude);
+ revModel.updateTableFilter(this);
}
public void setMatchCatalog(String catalog) {
tf.setMatchCatalog(catalog);
+ revModel.updateTableFilter(this);
}
public void setMatchSchema(String schema) {
tf.setMatchSchema(schema);
+ revModel.updateTableFilter(this);
}
public void setMatchName(String name) {
tf.setMatchName(name);
+ revModel.updateTableFilter(this);
}
public Boolean getExclude() {
- return tf.getExclude();
+ return tf.getExclude();
}
public String getMatchCatalog() {
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterView.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -21,11 +21,17 @@
*/
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;
@@ -38,6 +44,7 @@
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;
@@ -204,6 +211,12 @@
}
}
+ protected void doRemoveAll() {
+ if(MessageDialog.openQuestion( getShell(), "Remove all filters" , "Do
you want to remove all filters ?")) {
+ revEngDef.removeAllTableFilters();
+ }
+ }
+
protected void doRemove() {
int sel = rightTable.getSelectionIndex();
TableItem[] selection = rightTable.getSelection();
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterWizardPage.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterWizardPage.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TableFilterWizardPage.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -21,7 +21,13 @@
*/
package org.hibernate.eclipse.console.wizards;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
import org.eclipse.jdt.internal.ui.wizards.dialogfields.ComboDialogField;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
+import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -29,6 +35,7 @@
import org.eclipse.swt.widgets.Composite;
import org.hibernate.console.ConsoleConfiguration;
import org.hibernate.console.KnownConfigurations;
+import org.hibernate.eclipse.console.model.IReverseEngineeringDefinition;
import org.hibernate.eclipse.console.model.ITableFilter;
import org.hibernate.eclipse.console.model.impl.ReverseEngineeringDefinitionImpl;
@@ -70,6 +77,13 @@
consoleConfigurationName.setItems(names);
consoleConfigurationName.doFillIntoGrid(container, 3);
+
+ IDialogFieldListener fieldlistener = new IDialogFieldListener() {
+ public void dialogFieldChanged(DialogField field) {
+ dialogChanged();
+ }
+ };
+ consoleConfigurationName.setDialogFieldListener(fieldlistener);
TreeToTableComposite tfc = createTableFilterPart( container );
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
@@ -81,8 +95,43 @@
if(selectedConfiguratonName!=null) {
consoleConfigurationName.setText(selectedConfiguratonName);
}
- }
+ dialogChanged();
+ }
+ private void updateWarningStatus(String message) {
+ setMessage(message, IMessageProvider.WARNING);
+ }
+
+ /**
+ * Ensures that contents is ok.
+ */
+ private void dialogChanged() {
+
+ if (hasDuplicates()) {
+ updateWarningStatus("Table filters contains duplicates.");
+ return;
+ }
+
+ updateWarningStatus(null);
+ }
+
+ protected boolean hasDuplicates() {
+ boolean res = false;
+ ITableFilter[] filters = getTableFilters();
+ for (int i = 1; i < filters.length; i++) {
+ for (int j = 0; j < i; j++) {
+ if (filters[i].getExclude().equals(filters[j].getExclude()) &&
+ filters[i].getMatchCatalog().equals(filters[j].getMatchCatalog()) &&
+ filters[i].getMatchSchema().equals(filters[j].getMatchSchema()) &&
+ filters[i].getMatchName().equals(filters[j].getMatchName())) {
+ res = true;
+ break;
+ }
+ }
+ }
+ return res;
+ }
+
private TreeToTableComposite createTableFilterPart(Composite container) {
tfc = new TableFilterView(container, SWT.NULL){
@@ -91,7 +140,14 @@
}
};
- tfc.setModel(new ReverseEngineeringDefinitionImpl());
+
+ IReverseEngineeringDefinition model = new ReverseEngineeringDefinitionImpl();
+ model.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ dialogChanged();
+ }
+ });
+ tfc.setModel(model);
return tfc;
}
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TreeToTableComposite.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TreeToTableComposite.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/TreeToTableComposite.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -144,6 +144,7 @@
private Button upButton = null;
private Button downButton = null;
private Button removeButton = null;
+ private Button removeAllButton = null;
private Label fillLabel = null;
private Composite composite = null;
private Label label = null;
@@ -261,12 +262,19 @@
removeButton = new Button(manipulationGroup, SWT.NONE);
removeButton.setText("Remove");
removeButton.setLayoutData(gridData3);
- removeButton
- .addSelectionListener( new org.eclipse.swt.events.SelectionAdapter() {
- public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
- doRemove();
- }
- } );
+ removeButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
+ public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
+ doRemove();
+ }
+ });
+ removeAllButton = new Button(manipulationGroup, SWT.NONE);
+ removeAllButton.setText("Remove All");
+ removeAllButton.setLayoutData(gridData3);
+ removeAllButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
+ public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
+ doRemoveAll();
+ }
+ });
}
private void createAddButtons(Composite parent) {
@@ -302,6 +310,11 @@
}
+ protected void doRemoveAll() {
+ // TODO Auto-generated method stub
+
+ }
+
protected void doMoveDown() {
// TODO Auto-generated method stub
@@ -393,5 +406,15 @@
}
+
+ public void setEnabled(boolean enabled) {
+ upButton.setEnabled(enabled);
+ downButton.setEnabled(enabled);
+ removeButton.setEnabled(enabled);
+ refreshButton.setEnabled(enabled);
+ for (int i = 0; i < addButtons.length; i++) {
+ addButtons[i].setEnabled(enabled);
+ }
+ }
} // @jve:decl-index=0:visual-constraint="10,10"
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -236,9 +236,9 @@
}
private ConsoleConfiguration askForConsoleConfiguration() {
- ChooseConsoleConfigurationDialog dialog = new
ChooseConsoleConfigurationDialog(getContainer().getShell(),null);
+ ChooseConsoleConfigurationDialog dialog = new
ChooseConsoleConfigurationDialog(getContainer().getShell(),"");
dialog.prompt();
- if(dialog.getSelectedConfigurationName()==null) {
+ if(StringHelper.isEmpty(dialog.getSelectedConfigurationName())) {
return null;
} else {
return KnownConfigurations.getInstance().find( dialog.getSelectedConfigurationName()
); // TODO: double check to see if an result is actually returned ?
Modified:
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/model/DOMReverseEngineeringDefinition.java
===================================================================
---
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/model/DOMReverseEngineeringDefinition.java 2008-02-08
11:46:28 UTC (rev 6205)
+++
branches/jbosstools-2.0.x/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/model/DOMReverseEngineeringDefinition.java 2008-02-08
12:13:33 UTC (rev 6206)
@@ -31,6 +31,7 @@
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.hibernate.dialect.FirebirdDialect;
import org.hibernate.eclipse.console.model.IRevEngColumn;
import org.hibernate.eclipse.console.model.IRevEngGenerator;
import org.hibernate.eclipse.console.model.IRevEngPrimaryKey;
@@ -97,7 +98,7 @@
public ITableFilter createTableFilter() {
return (ITableFilter) factory.adapt((INodeNotifier)
getDocument().createElement("table-filter"));
}
-
+
public void addTableFilter(ITableFilter filter) {
if ( filter instanceof TableFilterAdapter ) {
TableFilterAdapter tf = (TableFilterAdapter) filter;
@@ -151,6 +152,14 @@
return (ITableFilter[]) getTableFiltersList().toArray(new ITableFilter[0]);
}
+ public void removeAllTableFilters() {
+ List list = getTableFiltersList();
+ for (java.util.Iterator it = list.iterator(); it.hasNext(); ) {
+ ITableFilter filter = (ITableFilter)it.next();
+ removeTableFilter(filter);
+ }
+ }
+
public void removeTableFilter(ITableFilter filter) {
if ( filter instanceof TableFilterAdapter ) {
TableFilterAdapter tf = (TableFilterAdapter) filter;
@@ -346,5 +355,4 @@
return (IRevEngGenerator) factory.adapt((INodeNotifier)
getDocument().createElement("generator"));
}
-
}