X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/UpdateRowPage.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/UpdateRowPage.java index 031ed9f..c1afd51 100644 --- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/UpdateRowPage.java +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/UpdateRowPage.java @@ -1,7 +1,5 @@ package com.quantum.wizards; -import java.util.Arrays; - import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.ICellModifier; @@ -12,32 +10,25 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; -import org.eclipse.swt.widgets.Text; import com.quantum.ImageStore; import com.quantum.Messages; -import com.quantum.adapters.DatabaseAdapter; -import com.quantum.model.Bookmark; import com.quantum.model.Column; import com.quantum.model.Entity; -import com.quantum.wizards.InsertRowPage.CellModifierImpl; -import com.quantum.wizards.InsertRowPage.ContentProviderImpl; -import com.quantum.wizards.InsertRowPage.InsertRowTableValues; -import com.quantum.wizards.InsertRowPage.LabelProviderImpl; +import com.quantum.util.StringMatrix; +import com.quantum.util.sql.SQLInstructionBuilder; +/** + * @author BC Holmes + * @author Elvin E. Ebora + */ public class UpdateRowPage extends BaseSQLPage implements SQLPage { class UpdateRowTableValues { @@ -170,7 +161,7 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { System.out.println("getValue called"); // Find the index of the column - int colIndx = getColumnNamesAsList(colNames).indexOf(property); + int colIndx = comUI.getColumnNamesAsList(colNames).indexOf(property); System.out.println("colIndx : " + colIndx); Object rResult = null; @@ -200,7 +191,7 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { } public void modify(Object element, String property, Object value) { - int colIndx = getColumnNamesAsList(colNames).indexOf(property); + int colIndx = comUI.getColumnNamesAsList(colNames).indexOf(property); TableItem item = (TableItem) element; UpdateRowTableValues updateVal = (UpdateRowTableValues)item.getData(); @@ -230,12 +221,9 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { String[] columnNames; String[] colNames; - Text[] oldValues; - Text[] newValues; - Button[] primaryKeys; - Button[] setValues; Label query; UpdateRowTableValues[] updateTable = null; + CommonWizardUI comUI; TableViewer tableViewer = null; static Image imgCheck = null; static Image imgUncheck = null; @@ -257,6 +245,8 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { Entity entity = this.results.getEntity(); + comUI = new CommonWizardUI(); + // init values to be displayed on the table columnNames = this.results.getColumnNames(); int nLen = columnNames.length; @@ -276,12 +266,8 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { createTable(container); - query = new Label(container, SWT.WRAP); - GridData gridData = new GridData(); - gridData.horizontalSpan = 1; - gridData.horizontalAlignment = GridData.FILL; - gridData.verticalAlignment = GridData.FILL; - query.setLayoutData(gridData); + query = new Label(container, SWT.WRAP); + query.setLayoutData(comUI.createGridData(1, GridData.FILL)); setControl(container); updateQuery(); @@ -290,39 +276,23 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { } public void updateQuery() { System.out.println("Updating query"); //$NON-NLS-1$ - StringBuffer setClause = new StringBuffer(); - StringBuffer whereClause = new StringBuffer(); - Bookmark bookmark = this.results.getBookmark(); - Entity entity = this.results.getEntity(); - DatabaseAdapter adapter = bookmark.getAdapter(); - int numValuesSet = 0; - int numValuesWhere = 0; - for (int nCtr = 0; nCtr < columnNames.length; nCtr++) { - if (updateTable[nCtr].isBPrimary()) { - String value = updateTable[nCtr].getSOldValue(); - if (numValuesWhere > 0) whereClause.append(" AND "); //$NON-NLS-1$ - whereClause.append("("); //$NON-NLS-1$ - whereClause.append(updateTable[nCtr].getSColNames()); - whereClause.append(" = "); //$NON-NLS-1$ - appendColumn(whereClause, entity, updateTable[nCtr].getSColNames(), adapter, value); - whereClause.append(")"); //$NON-NLS-1$ - numValuesWhere++; - } - if (updateTable[nCtr].isBSetValue()) { - String value = updateTable[nCtr].getSNewValue(); - if (numValuesSet > 0) setClause.append(", "); //$NON-NLS-1$ - setClause.append(updateTable[nCtr].getSColNames()); - setClause.append(" = "); //$NON-NLS-1$ - appendColumn(setClause, entity, updateTable[nCtr].getSColNames(), adapter, value); - numValuesSet++; + StringMatrix columns = new StringMatrix(); + for (int i = 0; i < columnNames.length; i++) { + if (updateTable[i].isBSetValue()) { + columns.addHeader( updateTable[i].getSColNames() ); + columns.add( updateTable[i].getSNewValue(), 0 ); } } - - String query = "UPDATE " + this.results.getEntity().getQuotedTableName(); //$NON-NLS-1$ - query += " SET " + setClause.toString(); //$NON-NLS-1$ - query += " WHERE " + whereClause.toString(); //$NON-NLS-1$ - this.query.setText(query); + StringMatrix key = new StringMatrix(); + for (int i = 0; i < columnNames.length; i++) { + if (updateTable[i].isBPrimary()) { + key.addHeader( updateTable[i].getSColNames() ); + // It's an old value because it't the key. + key.add( updateTable[i].getSOldValue() , 0 ); + } + } + this.query.setText(SQLInstructionBuilder.buildUpdate(this.results.getEntity(), columns, key)); } /* (non-Javadoc) @@ -337,21 +307,16 @@ public class UpdateRowPage extends BaseSQLPage implements SQLPage { } private void createTable(Composite composite) { - System.out.println("Creating table..."); - int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION; - Table table = new Table(composite, style); - table.setHeaderVisible(true); - table.setLinesVisible(true); - table.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.VERTICAL_ALIGN_BEGINNING)); - + System.out.println("Creating table..."); + Table table = comUI.createTablePage(composite); colNames = new String[] { Messages.getString("UpdateRowPage.ColumnName"), Messages.getString("UpdateRowPage.OldValue"), "Where", Messages.getString("UpdateRowPage.NewValue"), Messages.getString("UpdateRowPage.SetValue") }; - createTableColumn(table, colNames[0], SWT.LEFT, 0, 150); - createTableColumn(table, colNames[1], SWT.LEFT, 1, 300); - createTableColumn(table, colNames[2], SWT.CENTER, 2, 60); - createTableColumn(table, colNames[3], SWT.LEFT, 3, 300); - createTableColumn(table, colNames[4], SWT.CENTER, 4, 70); + comUI.createTableColumn(table, colNames[0], SWT.LEFT, 0, 150); + comUI.createTableColumn(table, colNames[1], SWT.LEFT, 1, 300); + comUI.createTableColumn(table, colNames[2], SWT.CENTER, 2, 60); + comUI.createTableColumn(table, colNames[3], SWT.LEFT, 3, 300); + comUI.createTableColumn(table, colNames[4], SWT.CENTER, 4, 70); this.tableViewer = new TableViewer(table); this.tableViewer.setColumnProperties(colNames);