import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
+import net.sourceforge.phpdt.sql.Messages;
import net.sourceforge.phpdt.sql.adapters.AdapterFactory;
import net.sourceforge.phpdt.sql.adapters.DatabaseAdapter;
import net.sourceforge.phpdt.sql.adapters.DatabaseInfo;
-import net.sourceforge.phpdt.sql.adapters.NoSuchAdapterException;
-import net.sourceforge.phpdt.sql.bookmarks.Bookmark;
import net.sourceforge.phpdt.sql.sql.FilterSort;
-import net.sourceforge.phpdt.sql.sql.MultiSQLServer;
import net.sourceforge.phpdt.sql.sql.SQLHelper;
import net.sourceforge.phpdt.sql.sql.SQLResults;
+import net.sourceforge.phpdt.sql.view.bookmark.BookmarkNode;
public class TableAdapter {
- public static final String DEFAULT = "";
- public static final String UTF_8 = "UTF-8";
- public static final String UTF_16 = "UTF-16";
+ public static final String DEFAULT = ""; //$NON-NLS-1$
+ public static final String UTF_8 = "UTF-8"; //$NON-NLS-1$
+ public static final String UTF_16 = "UTF-16"; //$NON-NLS-1$
private int pageSize = DefaultSizes.PAGE_SIZE;
private int maxColumnSize = DefaultSizes.MAX_COLUMN_SIZE;
- private SQLHelper helper = new SQLHelper();
private FilterSort extra = new FilterSort();
private int offset = 1;
private int totalSize = -1;
private Vector rows = new Vector();
private Vector columnNames = new Vector();
private boolean hasMore = false;
-
+
+ private BookmarkNode bookmark = null;
private String table;
private String query;
- private String encoding = "";
+ private String encoding = ""; //$NON-NLS-1$
- private TableAdapter() {
+ private TableAdapter(BookmarkNode bookmark) {
+ this.bookmark = bookmark;
}
public void fullMode() {
offset = 1;
offset = 1;
pageSize = DefaultSizes.PAGE_SIZE;
}
- public static TableAdapter createFromQuery(SQLResults results) {
- TableAdapter retVal = new TableAdapter();
+ public static TableAdapter createFromQuery(BookmarkNode bookmark, SQLResults results) {
+ TableAdapter retVal = new TableAdapter(bookmark);
retVal.setQuery(results.getQuery());
retVal.setData(results);
return retVal;
}
- public static TableAdapter createFromTable(String table) {
- TableAdapter retVal = new TableAdapter();
+ public static TableAdapter createFromTable(BookmarkNode bookmark, String table) {
+ TableAdapter retVal = new TableAdapter(bookmark);
retVal.setTable(table);
return retVal;
}
private void loadSize() {
if (table != null) {
- totalSize = helper.getSize(getTableCountQuery());
+ totalSize = SQLHelper.getSize(bookmark, getTableCountQuery());
}
}
public int getStartIndex() {
return false;
}
public String getTableCountQuery() {
- if (table != null) {
- Bookmark current = MultiSQLServer.getInstance().getConnected();
- return SQLHelper.getFullTableName(current, table);
+ if (table != null && bookmark != null) {
+ return SQLHelper.getFullTableName(bookmark, table);
}
return query;
}
public String getQuery() {
if (table != null) {
- MultiSQLServer server = MultiSQLServer.getInstance();
- Bookmark current = server.getConnected();
- try {
- DatabaseAdapter adapter = AdapterFactory.getInstance().getAdapter(current.getType());
- return adapter.getShowTableQuery(DatabaseInfo.create(current), table) + extra.toString();
- } catch (NoSuchAdapterException e) {
- throw new RuntimeException(e.toString());
- }
+ DatabaseAdapter adapter = AdapterFactory.getInstance().getAdapter(bookmark.getType());
+ if (adapter == null) throw new RuntimeException();
+ else return adapter.getShowTableQuery(DatabaseInfo.create(bookmark), table) + extra.toString();
}
return query;
}
}
}
String query = getQuery();
- System.out.println(offset + " to " + (offset + pageSize - 1));
- SQLResults results = helper.getResults(query, offset, offset + pageSize - 1, maxColumnSize, encoding);
+ System.out.println(offset + Messages.getString("TableAdapter.to") + (offset + pageSize - 1)); //$NON-NLS-1$
+ SQLResults results = SQLHelper.getResults(bookmark, query, offset, offset + pageSize - 1, maxColumnSize, encoding);
setData(results);
}
public void resetOffset() {
this.encoding = encoding;
}
public String getStatusString() {
- String status = getStartIndex() + " to " + getEndIndex() + " of " +
+ String status = getStartIndex() + Messages.getString("TableAdapter.to") + getEndIndex() + Messages.getString("TableAdapter.of") + //$NON-NLS-1$ //$NON-NLS-2$
getTotalSize();
if (!encoding.equals(DEFAULT)) {
- status += " (" + encoding + ")";
+ status += " (" + encoding + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
String filterText = extra.toString();
- if (!filterText.equals("")) {
- status += " (" + filterText + ")";
+ if (!filterText.equals("")) { //$NON-NLS-1$
+ status += " (" + filterText + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
if (pageSize == Integer.MAX_VALUE) {
- status += " (FULL)";
+ status += Messages.getString("TableAdapter.full"); //$NON-NLS-1$
}
return status;
}
+ /**
+ * @return
+ */
+ public BookmarkNode getBookmark() {
+ return bookmark;
+ }
+
}
\ No newline at end of file