latest quantum sources 2.3.2
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / wizards / BaseSQLPage.java
1 package com.quantum.wizards;
2
3 import java.sql.SQLException;
4
5 import com.quantum.adapters.DatabaseAdapter;
6 import com.quantum.model.Bookmark;
7 import com.quantum.model.Column;
8 import com.quantum.model.ConnectionException;
9 import com.quantum.model.Entity;
10 import com.quantum.model.NotConnectedException;
11 import com.quantum.sql.TableRow;
12 import com.quantum.view.ViewHelper;
13 import com.quantum.view.tableview.TableAdapter;
14
15 import org.eclipse.jface.wizard.WizardPage;
16
17 /**
18  * @author BC
19  */
20 public abstract class BaseSQLPage extends WizardPage implements SQLPage {
21
22     protected TableRow row;
23     protected TableAdapter adapter;
24
25     public BaseSQLPage(String pageName) {
26         super(pageName);
27     }
28     public boolean performFinish() {
29         try {
30             Bookmark bookmark = this.adapter.getBookmark();
31             bookmark.addQuery(getQueryText());
32             ViewHelper.tryGetResults(getShell(), bookmark.getConnection(), getQueryText());
33         } catch (ConnectionException e) {
34             e.printStackTrace();
35         }
36         return true;
37     }
38     protected abstract String getQueryText();
39     protected void appendColumn(StringBuffer whereClause, Entity entity, String columnName, DatabaseAdapter adapter, String value) {
40         
41         if (adapter != null && entity != null && getColumn(entity, columnName) != null) {
42             Column column = getColumn(entity, columnName);
43                 whereClause.append(adapter.quote(value, column.getType(), column.getTypeName()));
44         } else {
45                 whereClause.append(value);
46         }
47     }
48     /**
49          * @param entity
50          * @param columnName
51          * @return
52          * @throws NotConnectedException
53          * @throws SQLException
54          */
55         protected Column getColumn(Entity entity, String columnName)  {
56                 try {
57                         return entity == null ? null : entity.getColumn(columnName);
58                 } catch (NotConnectedException e) {
59                         return null;
60                 } catch (SQLException e) {
61                         return null;
62                 }
63         }
64         public void init(TableRow row, TableAdapter adapter) {
65         this.row = row;
66         this.adapter = adapter;
67     }
68 }