X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/PHPInsertRowPage.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/PHPInsertRowPage.java new file mode 100644 index 0000000..4e850b7 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/PHPInsertRowPage.java @@ -0,0 +1,144 @@ +package com.quantum.wizards; + +import java.text.MessageFormat; + +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.wizard.WizardPage; +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; + +import com.quantum.QuantumPlugin; +import com.quantum.sql.TableRow; +import com.quantum.view.PHPSourceConsole; +import com.quantum.view.tableview.TableAdapter; + +public class PHPInsertRowPage extends WizardPage implements SQLPage { + TableRow row; + String[] columnNames; + Text[] values; + Label query; + private final static boolean DEBUG = false; + private IPreferenceStore fStore; + + public PHPInsertRowPage(String pageName) { + super(pageName); + } + + public void init(TableRow row, TableAdapter adapter) { + this.row = row; + } + + public void createControl(Composite parent) { + if (DEBUG) { + System.out.println("page create control"); + } + fStore = QuantumPlugin.getDefault().getPreferenceStore(); + Composite container = new Composite(parent, SWT.NULL); + GridLayout layout = new GridLayout(); + container.setLayout(layout); + int layoutColumns = 2; + layout.numColumns = layoutColumns; + + if (DEBUG) { + if (row == null) { + System.out.println("Row is null"); + } + if (row.getColumnNames() == null) { + System.out.println("Columns are null"); + } + if (row.getTableData() == null) { + System.out.println("Data is null"); + } + } + + columnNames = row.getColumnNames(); + String[] data = row.getTableData(); + if (DEBUG) { + for (int i = 0; i < row.getColumnCount(); i++) { + System.out.println("data = " + i + "=" + data[i]); + System.out.println("column = " + i + "=" + columnNames[i]); + } + } + values = new Text[row.getColumnCount()]; + Label temp = new Label(container, SWT.NULL); + temp.setText("Column Name"); + temp = new Label(container, SWT.NULL); + temp.setText("Value"); + 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 = layoutColumns; + 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() { + if (DEBUG) { + System.out.println("Updating insert query"); + } + StringBuffer fieldClause = new StringBuffer(); + + StringBuffer valuesClause = new StringBuffer(); + String text; + boolean first = false; + for (int i = 0; i < columnNames.length; i++) { + text = values[i].getText(); + if (!text.equals("")) { + if (first) { + valuesClause.append(", "); + fieldClause.append(", "); + } + valuesClause.append("'" + values[i].getText() + "'"); + fieldClause.append(columnNames[i]); + first = true; + } + } + // if (valuesClause.length() > 1) { + // valuesClause.deleteCharAt(valuesClause.length() - 1); + // valuesClause.deleteCharAt(valuesClause.length() - 1); + // } + String[] arguments = { row.getTable(), fieldClause.toString(), valuesClause.toString()}; + MessageFormat form = new MessageFormat(fStore.getString("phpeclipse.sql.insert.template")); + + String query = form.format(arguments); + + // String query = "$results = mysql_query(\"INSERT INTO " + row.getTable() + " ("; + // query += fieldClause.toString() + ") "; + // query += " VALUES (" + valuesClause.toString(); + // query += ")\");"; + this.query.setText(query); + } + public boolean performFinish() { + PHPSourceConsole console = PHPSourceConsole.getInstance(); + console.clear(); + console.print(query.getText()); + return true; + } +} \ No newline at end of file