diff --git a/src/main/java/org/gcube/portlets/user/databasesmanager/client/panels/GxtBorderLayoutPanel.java b/src/main/java/org/gcube/portlets/user/databasesmanager/client/panels/GxtBorderLayoutPanel.java
index d497837..c659fdc 100644
--- a/src/main/java/org/gcube/portlets/user/databasesmanager/client/panels/GxtBorderLayoutPanel.java
+++ b/src/main/java/org/gcube/portlets/user/databasesmanager/client/panels/GxtBorderLayoutPanel.java
@@ -675,7 +675,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
rootLogger.log(Level.SEVERE,
"FAILURE RPC getTables");
- caught.printStackTrace();
+// caught.printStackTrace();
callback.onFailure(caught);
@@ -725,10 +725,10 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// tablesLoaded.show();
- tablesLoaded.hide();
+// tablesLoaded.hide();
- MessageBox.alert("Error ", "
Message:"
- + "no tables available", null);
+// MessageBox.alert("Error ", "
Message:"
+// + "no tables available", null);
// if
// (((EditorGrid)tablesLoaded.getWidget(0)).isMasked())
@@ -954,6 +954,10 @@ public class GxtBorderLayoutPanel extends ContentPanel {
grid.addListener(Events.Attach, new Listener>() {
public void handleEvent(GridEvent be) {
+
+
+
+ rootLogger.log(Level.INFO, "event Attach handled");
PagingLoadConfig config = new BasePagingLoadConfig();
@@ -963,18 +967,21 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// The number of records being requested.
config.setLimit(100);
- Map state = grid.getState();
+// Map state = grid.getState();
- if (state.containsKey("offset")) {
- int offset = (Integer) state.get("offset");
- rootLogger.log(Level.INFO, "offset: " + offset);
-
- int limit = (Integer) state.get("limit");
- rootLogger.log(Level.INFO, "limit: " + limit);
-
- config.setOffset(offset);
- config.setLimit(limit);
- }
+// if (state.containsKey("offset")) {
+//
+//// rootLogger.log(Level.INFO, "state contains offset");
+//
+// int offset = (Integer) state.get("offset");
+// rootLogger.log(Level.INFO, "offset: " + offset);
+//
+// int limit = (Integer) state.get("limit");
+// rootLogger.log(Level.INFO, "limit: " + limit);
+//
+// config.setOffset(offset);
+// config.setLimit(limit);
+// }
// if (state.containsKey("sortField")) {
// config.setSortField((String) state.get("sortField"));
// config.setSortDir(SortDir.valueOf((String) state
@@ -3299,7 +3306,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
private void displayTableName(String tableName) {
- rootLogger.log(Level.INFO, "displaying table name" + table
+ rootLogger.log(Level.INFO, "displaying table name" + tableName
+ " in the panel");
Result table = new Result("selected table is", tableName);
diff --git a/src/main/java/org/gcube/portlets/user/databasesmanager/server/GWTdbManagerServiceImpl.java b/src/main/java/org/gcube/portlets/user/databasesmanager/server/GWTdbManagerServiceImpl.java
index ce06ddc..79f1ea9 100644
--- a/src/main/java/org/gcube/portlets/user/databasesmanager/server/GWTdbManagerServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/databasesmanager/server/GWTdbManagerServiceImpl.java
@@ -405,53 +405,64 @@ public class GWTdbManagerServiceImpl extends RemoteServiceServlet implements
}
- List result = null;
- String currentDB = "";
- String previousDB = "";
+ private List result = null;
+ private String currentDB = "";
+ private String previousDB = "";
+
+ private String currentSchema="";
+ private String previousSchema="";
+
+
@Override
public PagingLoadResult LoadTables(PagingLoadConfig config,
LinkedHashMap dataInput, boolean SearchTable,
String keyword) throws Exception {
-
+
currentDB = dataInput.get("DatabaseName");
- if (!currentDB.equals(previousDB)){
+ if (!currentDB.equals(previousDB)) {
+ result = null;
+ System.gc();
+ }
+
+ previousDB = currentDB;
+
+ currentSchema=dataInput.get("SchemaName");
+ if (!currentSchema.equals(previousSchema)){
result = null;
System.gc();
}
- previousDB = currentDB;
+ previousSchema=currentSchema;
+
// get tables
if (result == null)
result = getTables(dataInput);
-
+
// Create a sublist and add data to list according
// to the limit and offset value of the config
List sublist = new ArrayList();
BasePagingLoadResult loadResult = null;
-
- rootLogger.log(Level.INFO, "Searching in the table: "+SearchTable);
- rootLogger.log(Level.INFO, "Keyword to search: "+keyword);
-
+
+ rootLogger.log(Level.INFO, "Searching in the table: " + SearchTable);
+ rootLogger.log(Level.INFO, "Keyword to search: " + keyword);
+
int start = config.getOffset();
int limit = result.size();
-
if (config.getLimit() > 0) {
limit = Math.min(start + config.getLimit(), limit);
}
-
- //print check
- rootLogger.log(Level.INFO, "result size: " + result.size());
- rootLogger.log(Level.INFO, "limit: " + limit);
- rootLogger.log(Level.INFO, "offset: " + config.getOffset());
- rootLogger.log(Level.INFO, "start: " + start);
int totalNumber = result.size();
- if ((SearchTable == false) || keyword==null || keyword.length()==0) {
- sublist = new ArrayList(result.subList(start, limit));
+
+ if ((SearchTable == false) || keyword == null || keyword.length() == 0) {
+ sublist = new ArrayList(result.subList(start, limit));
} else {
+
+ rootLogger.log(Level.INFO, "searching the table");
+
// search the table
for (int i = 0; i < result.size(); i++) {
if ((result.get(i).getValue().toLowerCase()).startsWith(keyword
@@ -460,18 +471,31 @@ public class GWTdbManagerServiceImpl extends RemoteServiceServlet implements
}
}
+ limit = sublist.size();
+
int sublen = sublist.size();
- if (start(sublist.subList(start, limit));
}
}
-
+
+ // print check
+ rootLogger.log(Level.INFO, "result size: " + totalNumber);
+ rootLogger.log(Level.INFO, "limit: " + limit);
+ rootLogger.log(Level.INFO, "offset: " + config.getOffset());
+ rootLogger.log(Level.INFO, "start: " + start);
+
loadResult = new BasePagingLoadResult(sublist,
config.getOffset(), totalNumber);
+//
+// if (totalNumber==0){
+// loadResult=new BasePagingLoadResult<>(sublist);
+// }
-
return loadResult;
}