From 38a7e3daa536be0e0a5e54980ba5de869cc009c3 Mon Sep 17 00:00:00 2001 From: Loredana Liccardo Date: Thu, 17 Jul 2014 15:14:34 +0000 Subject: [PATCH] bug fixed in LoadTables of GWTdbManagerServiceImpl class and in the callback "onSucces" of the rpc LoadTables if a user inserts a table that non exist in the database. The paging display "no data are displayed" message. git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/databases-manager-portlet@98768 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/panels/GxtBorderLayoutPanel.java | 39 ++++++----- .../server/GWTdbManagerServiceImpl.java | 70 +++++++++++++------ 2 files changed, 70 insertions(+), 39 deletions(-) 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; }