X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/InsertRowPage.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/InsertRowPage.java new file mode 100644 index 0000000..cbf7ff1 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/InsertRowPage.java @@ -0,0 +1,120 @@ +package com.quantum.wizards; + +import com.quantum.Messages; +import com.quantum.adapters.AdapterFactory; +import com.quantum.adapters.DatabaseAdapter; +import com.quantum.model.Bookmark; +import com.quantum.model.Entity; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; + +public class InsertRowPage extends BaseSQLPage implements SQLPage { + String[] columnNames; + Text[] values; + Label query; + int numColumns = 0; + + public InsertRowPage(String pageName) { + super(pageName); + } + + public void createControl(Composite parent) { + System.out.println("page create control"); //$NON-NLS-1$ + Composite container = new Composite(parent, SWT.NULL); + GridLayout layout = new GridLayout(); + container.setLayout(layout); + layout.numColumns = 2; + + if (row == null) { + System.out.println("Row is null"); //$NON-NLS-1$ + } + if (row.getColumnNames() == null) { + System.out.println("Columns are null"); //$NON-NLS-1$ + } + if (row.getTableData() == null) { + System.out.println("Data is null"); //$NON-NLS-1$ + } + columnNames = row.getColumnNames(); + String[] data = row.getTableData(); + for (int i = 0; i < row.getColumnCount(); i++) { + System.out.println("data = " + i + "=" + data[i]); //$NON-NLS-1$ //$NON-NLS-2$ + System.out.println("column = " + i + "=" + columnNames[i]); //$NON-NLS-1$ //$NON-NLS-2$ + } + values = new Text[row.getColumnCount()]; + new Label(container, SWT.NULL).setText(Messages.getString("InsertRowPage.ColumnName")); //$NON-NLS-1$ + new Label(container, SWT.NULL).setText(Messages.getString("InsertRowPage.Value")); //$NON-NLS-1$ + for (int i = 0; i < row.getColumnCount(); i++) { + Label label = new Label(container, SWT.NULL); + label.setText(columnNames[i]); + values[i] = new Text(container, SWT.BORDER | SWT.SINGLE); + GridData fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + values[i].setLayoutData(fullHorizontal); + + //values[i].setText(data[i]); + values[i].addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + updateQuery(); + } + }); + } + query = new Label(container, SWT.WRAP); + GridData gridData = new GridData(); + gridData.horizontalSpan = layout.numColumns; + gridData.horizontalAlignment = GridData.FILL; + gridData.verticalAlignment = GridData.FILL; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = true; + query.setLayoutData(gridData); + + setControl(container); + updateQuery(); + + setPageComplete(true); + } + public void updateQuery() { + System.out.println("Updating query"); //$NON-NLS-1$ + StringBuffer valuesClause = new StringBuffer(); + StringBuffer namesClause = new StringBuffer(); + Bookmark bookmark = row.getBookmark(); + Entity entity = row.getEntity(); + DatabaseAdapter adapter = AdapterFactory.getInstance().getAdapter(bookmark.getType()); + + numColumns = 0; + for (int i = 0; i < columnNames.length; i++) { + String name = columnNames[i]; + String value = values[i].getText(); + if (value.length() > 0) { + if (numColumns > 0) { + valuesClause.append(", "); //$NON-NLS-1$ + namesClause.append(", "); + } + appendColumn(valuesClause, entity, name, adapter, value); + namesClause.append(name); + numColumns++; + } + } + + String query = "INSERT INTO " + row.getTable(); //$NON-NLS-1$ + if (numColumns > 0) { + query += " (" + namesClause + ")"; + query += " VALUES " + "(" + valuesClause; //$NON-NLS-1$ + query += " )"; //$NON-NLS-1$ + } + this.query.setText(query); + } + /* (non-Javadoc) + * @see com.quantum.wizards.BaseSQLPage#getQueryText() + */ + protected String getQueryText() { + return this.query.getText(); + } + +} \ No newline at end of file