Very ugly start of a first wizard page. Needs a lot of cleanup!
[phpeclipse.git] / net.sourceforge.phpeclipse.wizards / src / net / sourceforge / phpeclipse / wizards / actions / metadata / PHPMetadataWizard.java
1 package net.sourceforge.phpeclipse.wizards.actions.metadata;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Vector;
6
7 import net.sourceforge.phpeclipse.wizards.xml.ModelUtil;
8
9 import org.eclipse.jface.wizard.WizardDialog;
10 import org.w3c.dom.Document;
11 import org.w3c.dom.Element;
12
13 import com.quantum.extensions.IMetadataExtension;
14 import com.quantum.model.Column;
15 import com.quantum.model.xml.XMLToModelConverter;
16
17 public class PHPMetadataWizard implements IMetadataExtension {
18
19   /*
20    * (non-Javadoc)
21    * 
22    * @see com.quantum.extensions.IDataExtension#run(org.w3c.dom.Document)
23    */
24   public void run(Document doc) {
25     //    System.out.println(doc);
26
27     Element root = doc.getDocumentElement();
28     try {
29       XMLToModelConverter c = new XMLToModelConverter(root);
30       String name = ModelUtil.getTableName(root);
31       System.out.print("Table-name: ");
32       System.out.println(name);
33       Column[] cols = c.getColumns();
34       for (int i = 0; i < cols.length; i++) {
35         System.out.print("Column-name: " + i + " ");
36         System.out.println(cols[i].getName());
37       }
38
39       UpdateRowPage page = new UpdateRowPage(""); //$NON-NLS-1$
40       SQLRowWizard wizard = new SQLRowWizard();
41
42       List rowList = new ArrayList();
43       for (int i = 1; i < cols.length; i++) {
44         Vector row = new Vector();
45         row.addElement(cols[i].getName());
46         row.addElement(cols[i].getTypeName());
47         long precision = 0;
48         try {
49           precision = cols[i].getSize();// metaData.getPrecision(i);
50         } catch (Throwable t) {
51           // Do nothing. An exception can be generated by some very large row sizes, like BLOB in Oracle.
52           // Then getPrecision() will generate an exception. So we ignore it and go on.
53         }
54         //        if (precision == 0) {
55         //          precision = cols[i].getSize();
56         //        }
57         int scale = cols[i].getNumberOfFractionalDigits();// metaData.getScale(i);
58
59         row.addElement(new Long(precision));
60         row.addElement(new Integer(scale));
61
62         boolean nullable = cols[i].isNullable();// metaData.isNullable(i);
63         //        if (nullable == ResultSetMetaData.columnNoNulls) {
64         //          row.addElement("Not Null"); //$NON-NLS-1$
65         //        } else if (nullable == ResultSetMetaData.columnNullable) {
66         //          row.addElement("Nullable"); //$NON-NLS-1$
67         //        } else if (nullable == ResultSetMetaData.columnNullableUnknown) {
68         //          row.addElement("Nullable"); //$NON-NLS-1$
69         //        } else {
70         //          row.addElement("<Error>"); //$NON-NLS-1$
71         //        }
72         if (nullable) {
73           row.addElement("Nullable"); //$NON-NLS-1$
74         } else {
75           row.addElement("<Error>"); //$NON-NLS-1$
76         }
77         //        row.addElement(metaData.isAutoIncrement(i) ? Boolean.TRUE : Boolean.FALSE);
78         rowList.add(new Row(row));
79         row.addElement(new Integer(cols[i].getType()));// metaData.getColumnType(i)));
80       }
81
82       Row rrow = new Row(rowList);
83       wizard.init(Messages.getString("TableView.UpdateRow"), page, rrow, cols); //$NON-NLS-1$
84       WizardDialog dialog = new WizardDialog(null, wizard);
85       dialog.open();
86
87     } catch (Exception e) {
88       e.printStackTrace();
89     }
90   }
91
92 }
93