some modifications

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/databases-manager-portlet@98525 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Loredana Liccardo 2014-07-09 13:19:53 +00:00
parent a1a86b007c
commit ae5d05aa29
4 changed files with 112 additions and 82 deletions

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.extjs.gxt.ui.client.data.BaseModelData;
//class that represents an item that will be displayed in the tree. The item can be a resource, a database, a schema and a table.
public class FileModel extends BaseModelData implements Serializable {
private static final long serialVersionUID = 1L;
@ -13,14 +14,22 @@ public class FileModel extends BaseModelData implements Serializable {
// private int id;
private boolean isExpanded = true;
// private boolean isSchema = false;
// set to true value if the object has been managed calling rpc remote
// methods
private boolean isLoaded = false;
// private boolean isTable = false;
// set if the object is a database
private boolean isDatabase = false;
// to keep track information about the database
private List<Result> DBInfo = null;
private boolean isDBInfoDisplayed = false;
// to keep track information about the details of a table
private List<Result> TableDetails = null;
private boolean isTableDetailsDisplayed = false;
// to keep track of the database type
private String DatabaseType;
public FileModel() {
@ -36,7 +45,7 @@ public class FileModel extends BaseModelData implements Serializable {
}
public void setId() {
set("ID", this.ID++);
set("ID", ID++);
}
public int getId() {
@ -74,6 +83,7 @@ public class FileModel extends BaseModelData implements Serializable {
}
// set if the object is a schema
public void setIsSchema(boolean value) {
set("isSchema", value);
@ -83,6 +93,7 @@ public class FileModel extends BaseModelData implements Serializable {
return get("isSchema");
}
// set if the object is a table
public void setIsTable(boolean value) {
set("isTable", value);
@ -136,7 +147,7 @@ public class FileModel extends BaseModelData implements Serializable {
}
public void setDatabaseType(String value) {
DatabaseType = value;
}

View File

@ -32,19 +32,21 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
public class GxtTreePanel extends LayoutContainer {
//to manage the tree
// to manage the tree
private TreeStore<FileModel> store;
private TreePanel<FileModel> treePanel;
//to manage events
// to manage events
private HandlerManager eventBus = null;
private String value = "";
private int treeDepthSelectedItem;
private boolean SelectedItemIsSchema = false;
//the rpc remote service
private GWTdbManagerServiceAsync RPCservice = null;
//to keep track of innformation associated to a database
// to keep track of information associated to a database
private LinkedHashMap<String, FileModel> dataDBInfo = null;
private String ResourceNameSelected;
@ -52,10 +54,12 @@ public class GxtTreePanel extends LayoutContainer {
private String SchemaNameSelected;
private String TableNameSelected;
// to keep track of information associated to the selected item
private LinkedHashMap<String, String> infoOnSelectedItem;
private static Logger rootLogger = Logger.getLogger("GxtTreePanel");
// constructor
public GxtTreePanel(HandlerManager eBus, GWTdbManagerServiceAsync service)
throws Exception {
@ -115,7 +119,7 @@ public class GxtTreePanel extends LayoutContainer {
// load the root
loadRootItemTree();
// Single selection Mode
// set single selection Mode
treePanel.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
// select root item
@ -138,24 +142,21 @@ public class GxtTreePanel extends LayoutContainer {
private void addListeners() {
// to manage the selection item event in the tree
treePanel.getSelectionModel().addSelectionChangedListener(
new SelectionChangedListener<FileModel>() {
@Override
public void selectionChanged(
SelectionChangedEvent<FileModel> se) {
// System.out.println("SelectionChangedListener");
//reset infromation at each selection
dataDBInfo = null;
ResourceNameSelected = null;
DatabaseNameSelected = null;
SchemaNameSelected = null;
TableNameSelected = null;
infoOnSelectedItem = null;
SelectedItemIsSchema = false;
// the selected element
@ -181,6 +182,7 @@ public class GxtTreePanel extends LayoutContainer {
// System.out.println("GxtTreePanel Depth: "
// + store.getDepth(data.get(0)));
//get the depth level
treeDepthSelectedItem = store.getDepth(data.get(0));
// rootLogger.log(Level.INFO,
@ -189,6 +191,8 @@ public class GxtTreePanel extends LayoutContainer {
rootLogger.log(Level.INFO, "selectedItem level depth: "
+ treeDepthSelectedItem);
//get children number for the selected item
int numChildrenFolder = store.getChildCount(data.get(0));
@ -197,10 +201,11 @@ public class GxtTreePanel extends LayoutContainer {
setInfoOnSelectedItem(data.get(0));
// check to make the RPC call once
// check to make the RPC call only one time. The selected item has not loaded
if ((numChildrenFolder == 0)
&& (data.get(0).isLoaded() != true)) {
//to mask the tree panel
treePanel.mask("Loading", "x-mask-loading");
// selectedItem.setIsSchema(false);
@ -210,24 +215,30 @@ public class GxtTreePanel extends LayoutContainer {
// loadResources(data.get(0));
// break;
case 2:
case 2: //the selected item is the resource
// selectedItem.setIsSchema(false);
loadDBInfo(data.get(0));
break;
case 3:
case 3: //the selected item is a database
if (selectedItem.getDatabaseType().equals(
ConstantsPortlet.POSTGRES)) {
//load schema for postgres database
// selectedItem.setIsSchema(false);
loadSchema(data.get(0));
} else {
// System.out.println("database mysql: " + data.get(0).getName() + data.get(0).getDatabaseType());
// System.out.println("database mysql: " +
// data.get(0).getName() +
// data.get(0).getDatabaseType());
//load tables for mysql database
loadTables(data.get(0));
}
break;
case 4:
case 4: //load tables for postgres database
// selectedItem.setIsSchema(false);
loadTables(data.get(0));
break;
@ -236,10 +247,12 @@ public class GxtTreePanel extends LayoutContainer {
}
else {
//if the selected item has already been been loaded
setInfoOnSelectedItem(data.get(0));
}
// fire event
// fire event when an item has been selected in the tree
eventBus.fireEvent(new SelectedItemEvent());
}
@ -247,6 +260,7 @@ public class GxtTreePanel extends LayoutContainer {
}
//load the root
private void loadRootItemTree() throws Exception {
// treePanel.mask("Loading", "x-mask-loading");
@ -268,11 +282,13 @@ public class GxtTreePanel extends LayoutContainer {
}
//get the tree depth
public int getTreeDepthSelectedItem() {
return treeDepthSelectedItem;
}
//load resources
private void loadResources(final FileModel element, final GxtTreePanel tree) {
// System.out.println("Start RPC - getResources");
@ -281,7 +297,7 @@ public class GxtTreePanel extends LayoutContainer {
// "GxtTreePanel-> Start RPC - getResource");
rootLogger.log(Level.SEVERE, "Start RPC - getResource");
// call remote service
// call rpc remote service
RPCservice.getResource(new AsyncCallback<List<FileModel>>() {
@ -347,6 +363,7 @@ public class GxtTreePanel extends LayoutContainer {
rootLogger.log(Level.SEVERE, "End RPC - getResource");
}
//load information fo a database
private void loadDBInfo(final FileModel element) {
// System.out.println("Start RPC - getDBInfo");
@ -495,13 +512,16 @@ public class GxtTreePanel extends LayoutContainer {
FileModel child = new FileModel(DBName);
//set that the item is a database
child.setIsDatabase(true);
child.setDBInfo(DBInfo);
//check print
// rootLogger.log(Level.INFO, "DatabaseType: " + DatabaseType);
// check print
// rootLogger.log(Level.INFO, "DatabaseType: " +
// DatabaseType);
//set the database type considering the driver infromation
child.setDatabaseType(DatabaseType);
children.add(child);
@ -540,6 +560,8 @@ public class GxtTreePanel extends LayoutContainer {
rootLogger.log(Level.SEVERE, "End RPC - getDBInfo");
}
//load schema
private void loadSchema(final FileModel element) {
@ -592,8 +614,8 @@ public class GxtTreePanel extends LayoutContainer {
// element.setIsSchema(false);
// element.setIsLoaded(false);
// loadTables(element);
// loadTables(element);
rootLogger.log(Level.INFO, "the database has not schema");
} else {
@ -688,68 +710,61 @@ public class GxtTreePanel extends LayoutContainer {
// // System.out.println(element.getName());
//
// }
String resource="";
String database="";
String schema="";
if (element.isDatabase()){ //the selected item is a database
database= element.getName();
resource=store.getParent(element).getName();
String resource = "";
String database = "";
String schema = "";
if (element.isDatabase()) { // the selected item is a database
database = element.getName();
resource = store.getParent(element).getName();
dataInput.put("ResourceName", resource);
dataInput.put("DatabaseName", database);
dataInput.put("DatabaseName", database);
dataInput.put("SchemaName", "");
}else { //the selected item is a schema
} else { // the selected item is a schema
FileModel db = store.getParent(element);
database = db.getName();
resource = store.getParent(db).getName();
schema = element.getName();
dataInput.put("ResourceName", resource);
dataInput.put("DatabaseName", database);
dataInput.put("SchemaName", schema);
// dataInput.put("ResourceName", resource.getName());
// dataInput.put("DatabaseName", database.getName());
// dataInput.put("SchemaName", element.getName());
// dataInput.put("ResourceName", resource.getName());
// dataInput.put("DatabaseName", database.getName());
// dataInput.put("SchemaName", element.getName());
}
// FileModel database = store.getParent(element);
// FileModel resource = store.getParent(database);
//
// dataInput.put("ResourceName", resource.getName());
// dataInput.put("DatabaseName", database.getName());
// if (element.getDatabaseType().equals(ConstantsPortlet.POSTGRES)){
//
//
// }
// else{
// dataInput.put("SchemaName", "");
// }
// FileModel database = store.getParent(element);
// FileModel resource = store.getParent(database);
//
// dataInput.put("ResourceName", resource.getName());
// dataInput.put("DatabaseName", database.getName());
// if (element.getDatabaseType().equals(ConstantsPortlet.POSTGRES)){
//
//
// }
// else{
// dataInput.put("SchemaName", "");
// }
// System.out.println("schema name: " + element.getName());
// rootLogger.log(Level.INFO, "ResourceName: " + resource.getName());
// rootLogger.log(Level.INFO, "DatabaseName: " + database.getName());
// rootLogger.log(Level.INFO, "SchemaName: " + element.getName());
// rootLogger.log(Level.INFO, "ResourceName: " + resource.getName());
// rootLogger.log(Level.INFO, "DatabaseName: " + database.getName());
// rootLogger.log(Level.INFO, "SchemaName: " + element.getName());
rootLogger.log(Level.INFO, "ResourceName: " + resource);
rootLogger.log(Level.INFO, "DatabaseName: " + database);
rootLogger.log(Level.INFO, "SchemaName: " + schema);
// System.out.println(parent1.getName());
// System.out.println(parent.getName());
@ -775,7 +790,7 @@ public class GxtTreePanel extends LayoutContainer {
if (treePanel.isMasked())
treePanel.unmask();
element.setIsLoaded(true);
}
@ -805,11 +820,12 @@ public class GxtTreePanel extends LayoutContainer {
element.setIsExpanded(false);
treePanel.setExpanded(element, false);
} else {
for (int i = 0; i < result.size(); i++) {
result.get(i).setIsExpanded(false);
@ -819,11 +835,11 @@ public class GxtTreePanel extends LayoutContainer {
// element.setIsLoaded(true);
//ppritn check
// ppritn check
// System.out.println(result.get(i).getName());
// rootLogger.log(Level.INFO, "table: "
// + result.get(i).getName());
// rootLogger.log(Level.INFO, "table: "
// + result.get(i).getName());
}
@ -899,6 +915,7 @@ public class GxtTreePanel extends LayoutContainer {
}
//set information (useful for the submitquery operation) for the selected item. The selected item can be a schema, a table and a database.
private void setInfoOnSelectedItem(FileModel element) {
infoOnSelectedItem = new LinkedHashMap<String, String>();
@ -910,8 +927,7 @@ public class GxtTreePanel extends LayoutContainer {
// a
// schema
// System.out.println("is a schema");
rootLogger.log(Level.SEVERE, "setInfo for selected item schema");
SelectedItemIsSchema = true;
@ -964,8 +980,8 @@ public class GxtTreePanel extends LayoutContainer {
infoOnSelectedItem.put("ResourceName", ResourceNameSelected);
infoOnSelectedItem.put("DatabaseName", DatabaseNameSelected);
// infoOnSelectedItem.put("SchemaName", "");
infoOnSelectedItem.put("TableName", TableNameSelected);
// infoOnSelectedItem.put("SchemaName", "");
// infoOnSelectedItem.put("TableName", TableNameSelected);
} else if (treeDepthSelectedItem == 5) { // the selected item is a table
// so the database is
@ -993,8 +1009,8 @@ public class GxtTreePanel extends LayoutContainer {
infoOnSelectedItem.put("ResourceName", ResourceNameSelected);
infoOnSelectedItem.put("DatabaseName", DatabaseNameSelected);
infoOnSelectedItem.put("SchemaName", SchemaNameSelected);
infoOnSelectedItem.put("TableName", TableNameSelected);
// infoOnSelectedItem.put("SchemaName", SchemaNameSelected);
// infoOnSelectedItem.put("TableName", TableNameSelected);
} else if (treeDepthSelectedItem == 3) { // the selected item is a
// database

View File

@ -457,6 +457,9 @@ public class GWTdbManagerServiceImpl extends RemoteServiceServlet implements
inputParameters.get(0).setValue(dataDB.get("ResourceName"));
inputParameters.get(1).setValue(dataDB.get("DatabaseName"));
rootLogger.log(Level.INFO, "ResourceName " + dataDB.get("ResourceName"));
rootLogger.log(Level.INFO, "DatabaseName" + dataDB.get("DatabaseName"));
inputParameters.get(2).setValue(String.valueOf(valueReadOnlyQuery));
inputParameters.get(3).setValue(String.valueOf(smartCorrectionQuery));

View File

@ -5,7 +5,7 @@
<inherits name='com.extjs.gxt.ui.GXT' />
<inherits name="com.google.gwt.logging.Logging"/>
<!-- <inherits name="com.google.gwt.logging.Logging"/> -->
<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->
@ -29,6 +29,6 @@
<!-- <set-property name="gwt.logging.logLevel" value="SEVERE"/> -->
<!-- <set-property name="gwt.logging.logLevel" value="INFO"/> -->
<set-property name="gwt.logging.enabled" value="TRUE"/>
<!-- <set-property name="gwt.logging.enabled" value="TRUE"/> -->
</module>