show create table implemented and grid component made editable for tabledetails and dbinfo panels.
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/databases-manager-portlet@98414 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
b3ff8e2c8d
commit
6807afaf2c
|
@ -38,4 +38,7 @@ public interface GWTdbManagerService extends RemoteService {
|
||||||
List<Row> parseCVSString(List<Result> result, List<String> attrNames)
|
List<Row> parseCVSString(List<Result> result, List<String> attrNames)
|
||||||
throws Exception;
|
throws Exception;
|
||||||
|
|
||||||
|
LinkedHashMap<String, FileModel> getTableDetails(LinkedHashMap<String, String> dataInput) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,4 +36,7 @@ public interface GWTdbManagerServiceAsync {
|
||||||
void sample(LinkedHashMap<String, String> dataInput,
|
void sample(LinkedHashMap<String, String> dataInput,
|
||||||
AsyncCallback<List<Result>> callback);
|
AsyncCallback<List<Result>> callback);
|
||||||
|
|
||||||
|
void getTableDetails(LinkedHashMap<String, String> dataInput,
|
||||||
|
AsyncCallback<LinkedHashMap<String, FileModel>> callback);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,8 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
|
|
||||||
private List<Result> DBInfo = null;
|
private List<Result> DBInfo = null;
|
||||||
private boolean isDBInfoDisplayed = false;
|
private boolean isDBInfoDisplayed = false;
|
||||||
|
private List<Result> TableDetails = null;
|
||||||
|
private boolean isTableDetailsDisplayed = false;
|
||||||
|
|
||||||
public FileModel() {
|
public FileModel() {
|
||||||
setId();
|
setId();
|
||||||
|
@ -109,6 +111,14 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
return DBInfo;
|
return DBInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTableDetails(List<Result> data) {
|
||||||
|
TableDetails = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Result> getTableDetails() {
|
||||||
|
return TableDetails;
|
||||||
|
}
|
||||||
|
|
||||||
public void setIsDBInfoDisplayed(boolean value) {
|
public void setIsDBInfoDisplayed(boolean value) {
|
||||||
isDBInfoDisplayed = value;
|
isDBInfoDisplayed = value;
|
||||||
}
|
}
|
||||||
|
@ -117,6 +127,14 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
return isDBInfoDisplayed;
|
return isDBInfoDisplayed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTableDetailsDisplayed(boolean value) {
|
||||||
|
isTableDetailsDisplayed = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTableDetailsDisplayed() {
|
||||||
|
return isTableDetailsDisplayed;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (obj != null && obj instanceof FileModel) {
|
if (obj != null && obj instanceof FileModel) {
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package org.gcube.portlets.user.databasesmanager.client.events;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.ShowCreateTableEventHandler;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
public class ShowCreateTableEvent extends GwtEvent<ShowCreateTableEventHandler> {
|
||||||
|
|
||||||
|
public static Type<ShowCreateTableEventHandler> TYPE = new Type<ShowCreateTableEventHandler>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(ShowCreateTableEventHandler handler) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
handler.onShowCreateTable(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<ShowCreateTableEventHandler> getAssociatedType() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EventsTypeEnum getKey() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return EventsTypeEnum.SHOW_CREATE_TABLE_EVENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.gcube.portlets.user.databasesmanager.client.events.interfaces;
|
||||||
|
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.databasesmanager.client.events.ShowCreateTableEvent;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
public interface ShowCreateTableEventHandler extends EventHandler{
|
||||||
|
public void onShowCreateTable(ShowCreateTableEvent showCreateTableEvent);
|
||||||
|
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package org.gcube.portlets.user.databasesmanager.client.panels;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
@ -13,9 +14,11 @@ import org.gcube.portlets.user.databasesmanager.client.datamodel.Row;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.datamodel.SubmitQueryData;
|
import org.gcube.portlets.user.databasesmanager.client.datamodel.SubmitQueryData;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.SamplingEvent;
|
import org.gcube.portlets.user.databasesmanager.client.events.SamplingEvent;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.SelectedItemEvent;
|
import org.gcube.portlets.user.databasesmanager.client.events.SelectedItemEvent;
|
||||||
|
import org.gcube.portlets.user.databasesmanager.client.events.ShowCreateTableEvent;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.SubmitQueryEvent;
|
import org.gcube.portlets.user.databasesmanager.client.events.SubmitQueryEvent;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.SamplingEventHandler;
|
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.SamplingEventHandler;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.SelectedItemEventHandler;
|
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.SelectedItemEventHandler;
|
||||||
|
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.ShowCreateTableEventHandler;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.SubmitQueryEventHandler;
|
import org.gcube.portlets.user.databasesmanager.client.events.interfaces.SubmitQueryEventHandler;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.toolbar.GxtToolbarFunctionality;
|
import org.gcube.portlets.user.databasesmanager.client.toolbar.GxtToolbarFunctionality;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.utils.ConstantsPortlet;
|
import org.gcube.portlets.user.databasesmanager.client.utils.ConstantsPortlet;
|
||||||
|
@ -40,8 +43,11 @@ import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
import com.extjs.gxt.ui.client.widget.Dialog;
|
import com.extjs.gxt.ui.client.widget.Dialog;
|
||||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
||||||
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
||||||
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
|
||||||
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
||||||
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
|
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
|
||||||
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
|
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
|
||||||
|
@ -100,8 +106,6 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
|
|
||||||
private void initLayout() {
|
private void initLayout() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
north.setLayout(new FitLayout());
|
north.setLayout(new FitLayout());
|
||||||
north.setTopComponent(toolbar.getToolBar());
|
north.setTopComponent(toolbar.getToolBar());
|
||||||
north.add(toolbar.getToolBar());
|
north.add(toolbar.getToolBar());
|
||||||
|
@ -160,7 +164,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
centerBottom = new ContentPanel();
|
centerBottom = new ContentPanel();
|
||||||
centerBottom.setLayout(new FitLayout());
|
centerBottom.setLayout(new FitLayout());
|
||||||
centerBottom.setHeading("Information Details");
|
centerBottom.setHeading("Information Details");
|
||||||
centerBottom.setScrollMode(Scroll.AUTO);
|
centerBottom.setScrollMode(Scroll.NONE);
|
||||||
|
|
||||||
BorderLayoutData centerUpperData = new BorderLayoutData(
|
BorderLayoutData centerUpperData = new BorderLayoutData(
|
||||||
LayoutRegion.NORTH, 250, 100, 250);
|
LayoutRegion.NORTH, 250, 100, 250);
|
||||||
|
@ -311,15 +315,24 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
|
|
||||||
eventBus.addHandler(SamplingEvent.TYPE, new SamplingEventHandler() {
|
eventBus.addHandler(SamplingEvent.TYPE, new SamplingEventHandler() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSampling(SamplingEvent samplingEvent) {
|
public void onSampling(SamplingEvent samplingEvent) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
sample();
|
sample();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(ShowCreateTableEvent.TYPE,
|
||||||
|
new ShowCreateTableEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShowCreateTable(
|
||||||
|
ShowCreateTableEvent showCreateTableEvent) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
getTableDetails();
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -585,8 +598,6 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
|
|
||||||
rootLogger.log(Level.SEVERE, "SUCCESS RPC sample");
|
rootLogger.log(Level.SEVERE, "SUCCESS RPC sample");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rows = new ArrayList<Row>();
|
rows = new ArrayList<Row>();
|
||||||
|
|
||||||
// System.out.println("result size: " + result.size());
|
// System.out.println("result size: " + result.size());
|
||||||
|
@ -632,8 +643,6 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<Row> rows) {
|
public void onSuccess(List<Row> rows) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// System.out.println("Success StartParse");
|
// System.out.println("Success StartParse");
|
||||||
|
|
||||||
rootLogger.log(Level.SEVERE, "SUCCESS RPC parseResult");
|
rootLogger.log(Level.SEVERE, "SUCCESS RPC parseResult");
|
||||||
|
@ -647,11 +656,8 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
|
|
||||||
form.hide();
|
form.hide();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// else {
|
// else {
|
||||||
|
|
||||||
if (rows != null) {
|
if (rows != null) {
|
||||||
|
@ -777,6 +783,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
column.setWidth(100);
|
column.setWidth(100);
|
||||||
column.setSortable(false);
|
column.setSortable(false);
|
||||||
|
|
||||||
|
|
||||||
configs.add(column);
|
configs.add(column);
|
||||||
|
|
||||||
for (int i = 0; i < listAttributes.size(); i++) {
|
for (int i = 0; i < listAttributes.size(); i++) {
|
||||||
|
@ -831,13 +838,20 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private ColumnModel createColumnModelForDBInfo(List<Result> result) {
|
private ColumnModel createColumnModelForDBInfo(List<Result> result) {
|
||||||
|
|
||||||
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
|
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
|
||||||
|
|
||||||
ColumnConfig column = new ColumnConfig();
|
ColumnConfig column = new ColumnConfig();
|
||||||
column.setId("index");
|
column.setId("index");
|
||||||
column.setHeader("Property");
|
column.setHeader("Property");
|
||||||
column.setWidth(100);
|
column.setWidth(100);
|
||||||
column.setSortable(false);
|
// column1.setSortable(false);
|
||||||
|
|
||||||
|
TextField<String> textProperty = new TextField<String>();
|
||||||
|
// text.setAllowBlank(false);
|
||||||
|
column.setEditor(new CellEditor(textProperty));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
configs.add(column);
|
configs.add(column);
|
||||||
|
|
||||||
|
@ -846,7 +860,11 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
column.setHeader("Value");
|
column.setHeader("Value");
|
||||||
column.setWidth(600);
|
column.setWidth(600);
|
||||||
|
|
||||||
column.setSortable(false);
|
// column2.setSortable(false);
|
||||||
|
|
||||||
|
TextField<String> textValue = new TextField<String>();
|
||||||
|
// text.setAllowBlank(false);
|
||||||
|
column.setEditor(new CellEditor(textValue));
|
||||||
|
|
||||||
configs.add(column);
|
configs.add(column);
|
||||||
|
|
||||||
|
@ -873,7 +891,10 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
ListStore<Result> store = new ListStore<Result>();
|
ListStore<Result> store = new ListStore<Result>();
|
||||||
store.add(dataDB);
|
store.add(dataDB);
|
||||||
|
|
||||||
Grid<Result> grid = new Grid<Result>(store,
|
// Grid<Result> grid = new Grid<Result>(store,
|
||||||
|
// createColumnModelForDBInfo(dataDB));
|
||||||
|
|
||||||
|
EditorGrid<Result> grid = new EditorGrid<Result>(store,
|
||||||
createColumnModelForDBInfo(dataDB));
|
createColumnModelForDBInfo(dataDB));
|
||||||
|
|
||||||
// grid.setAutoExpandColumn("name");
|
// grid.setAutoExpandColumn("name");
|
||||||
|
@ -881,14 +902,215 @@ public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
|
|
||||||
// grid.setAutoWidth(true);
|
// grid.setAutoWidth(true);
|
||||||
|
|
||||||
RowData data = new RowData(.5, 1);
|
// RowData data = new RowData(.5, 1);
|
||||||
data.setMargins(new Margins(6));
|
// data.setMargins(new Margins(6));
|
||||||
|
|
||||||
centerUpper.removeAll();
|
centerUpper.removeAll();
|
||||||
|
|
||||||
centerUpper.add(grid, data);
|
// centerUpper.add(grid, data);
|
||||||
|
|
||||||
|
centerUpper.add(grid);
|
||||||
centerUpper.layout(true);
|
centerUpper.layout(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getTableDetails() {
|
||||||
|
|
||||||
|
this.mask("Loading", "x-mask-loading");
|
||||||
|
|
||||||
|
// System.out.println("Start RPC - submitQuery");
|
||||||
|
|
||||||
|
rootLogger.log(Level.SEVERE, "Start RPC - getTableDetails");
|
||||||
|
|
||||||
|
// get the selected table
|
||||||
|
|
||||||
|
List<FileModel> data = treePanel.getTreePanel().getSelectionModel()
|
||||||
|
.getSelectedItems();
|
||||||
|
|
||||||
|
// the selected item is a table
|
||||||
|
final FileModel selectedTable = data.get(0);
|
||||||
|
|
||||||
|
rootLogger.log(Level.INFO, "the selected table is: " + selectedTable);
|
||||||
|
|
||||||
|
// recover data inputs
|
||||||
|
|
||||||
|
LinkedHashMap<String, String> dataInput = new LinkedHashMap<String, String>();
|
||||||
|
|
||||||
|
// check if the table has an associated schema
|
||||||
|
FileModel schema;
|
||||||
|
FileModel database;
|
||||||
|
FileModel resource;
|
||||||
|
|
||||||
|
if (treePanel.getTreeStore().getParent(selectedTable).isSchema()) {
|
||||||
|
schema = treePanel.getTreeStore().getParent(selectedTable);
|
||||||
|
database = treePanel.getTreeStore().getParent(schema);
|
||||||
|
resource = treePanel.getTreeStore().getParent(database);
|
||||||
|
|
||||||
|
dataInput.put("ResourceName", resource.getName());
|
||||||
|
dataInput.put("DatabaseName", database.getName());
|
||||||
|
dataInput.put("SchemaName", schema.getName());
|
||||||
|
dataInput.put("TableName", selectedTable.getName());
|
||||||
|
|
||||||
|
rootLogger.log(Level.INFO, "ResourceName: " + resource.getName());
|
||||||
|
rootLogger.log(Level.INFO, "DatabaseName: " + database.getName());
|
||||||
|
rootLogger.log(Level.INFO, "SchemaName: " + schema.getName());
|
||||||
|
rootLogger
|
||||||
|
.log(Level.INFO, "SchemaName: " + selectedTable.getName());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// the table has not a schema
|
||||||
|
database = treePanel.getTreeStore().getParent(selectedTable);
|
||||||
|
resource = treePanel.getTreeStore().getParent(database);
|
||||||
|
|
||||||
|
dataInput.put("ResourceName", resource.getName());
|
||||||
|
dataInput.put("DatabaseName", database.getName());
|
||||||
|
dataInput.put("SchemaName", "");
|
||||||
|
dataInput.put("TableName", selectedTable.getName());
|
||||||
|
|
||||||
|
rootLogger.log(Level.INFO, "ResourceName: " + resource.getName());
|
||||||
|
rootLogger.log(Level.INFO, "DatabaseName: " + database.getName());
|
||||||
|
rootLogger.log(Level.INFO, "SchemaName: " + "");
|
||||||
|
rootLogger
|
||||||
|
.log(Level.INFO, "SchemaName: " + selectedTable.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
// call remote service
|
||||||
|
RPCservice.getTableDetails(dataInput,
|
||||||
|
new AsyncCallback<LinkedHashMap<String, FileModel>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
rootLogger.log(Level.SEVERE,
|
||||||
|
"FAILURE RPC getTableDetails");
|
||||||
|
|
||||||
|
MessageBox.alert("Error ",
|
||||||
|
"<br/>Message:" + caught.getMessage(), null);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(
|
||||||
|
LinkedHashMap<String, FileModel> result) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
rootLogger.log(Level.SEVERE,
|
||||||
|
"SUCCESS RPC getTableDetails");
|
||||||
|
|
||||||
|
// details are recovered about the selected table
|
||||||
|
|
||||||
|
if (result.size() != 0) {
|
||||||
|
|
||||||
|
// recover keys from the result
|
||||||
|
|
||||||
|
Set<String> keys = result.keySet();
|
||||||
|
|
||||||
|
Object[] array = keys.toArray();
|
||||||
|
|
||||||
|
// System.out.println("array size: " +
|
||||||
|
// array.length);
|
||||||
|
|
||||||
|
// recover details
|
||||||
|
|
||||||
|
List<Result> TableDetails = new ArrayList<Result>();
|
||||||
|
|
||||||
|
for (int i = 0; i < result.size(); i++) {
|
||||||
|
|
||||||
|
if (array[i].toString().contains("CreateTable")) {
|
||||||
|
|
||||||
|
// recover the showCreateTable statement
|
||||||
|
|
||||||
|
Result row = new Result("CreateTable",
|
||||||
|
result.get(array[i].toString())
|
||||||
|
.getName());
|
||||||
|
|
||||||
|
TableDetails.add(row);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array[i].toString()
|
||||||
|
.contains("Column Names")) {
|
||||||
|
|
||||||
|
// recover the column names
|
||||||
|
|
||||||
|
Result row = new Result("Column Names",
|
||||||
|
result.get(array[i].toString())
|
||||||
|
.getName());
|
||||||
|
|
||||||
|
TableDetails.add(row);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array[i].toString().contains("NumberRows")) {
|
||||||
|
|
||||||
|
// recover the column names
|
||||||
|
|
||||||
|
Result row = new Result("NumberRows",
|
||||||
|
result.get(array[i].toString())
|
||||||
|
.getName());
|
||||||
|
|
||||||
|
TableDetails.add(row);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
selectedTable.setTableDetails(TableDetails);
|
||||||
|
|
||||||
|
displayTableDetails(selectedTable);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void displayTableDetails(FileModel table) {
|
||||||
|
|
||||||
|
rootLogger.log(Level.INFO, "displaying table details");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<Result> tableDetails = table.getTableDetails();
|
||||||
|
|
||||||
|
// System.out.println("GxtBorderLayout->size info: " + dataDB.size());
|
||||||
|
|
||||||
|
rootLogger.log(Level.INFO, "details size: " + tableDetails.size());
|
||||||
|
|
||||||
|
ListStore<Result> store = new ListStore<Result>();
|
||||||
|
|
||||||
|
store.add(tableDetails);
|
||||||
|
|
||||||
|
// Grid<Result> grid = new Grid<Result>(store,
|
||||||
|
// createColumnModelForDBInfo(tableDetails));
|
||||||
|
|
||||||
|
EditorGrid<Result> grid = new EditorGrid<Result>(store,
|
||||||
|
createColumnModelForDBInfo(tableDetails));
|
||||||
|
|
||||||
|
// grid.setAutoExpandColumn("name");
|
||||||
|
grid.setBorders(true);
|
||||||
|
|
||||||
|
|
||||||
|
// grid.setAutoWidth(true);
|
||||||
|
|
||||||
|
// RowData data = new RowData(.5, .1);
|
||||||
|
// data.setMargins(new Margins(6));
|
||||||
|
|
||||||
|
centerBottom.removeAll();
|
||||||
|
|
||||||
|
// centerBottom.add(grid, data);
|
||||||
|
|
||||||
|
centerBottom.add(grid);
|
||||||
|
centerBottom.layout(true);
|
||||||
|
|
||||||
|
if (this.isMasked()) {
|
||||||
|
this.unmask();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -670,7 +670,7 @@ public class GxtTreePanel extends LayoutContainer {
|
||||||
dataInput.put("DatabaseName", database.getName());
|
dataInput.put("DatabaseName", database.getName());
|
||||||
dataInput.put("SchemaName", element.getName());
|
dataInput.put("SchemaName", element.getName());
|
||||||
|
|
||||||
System.out.println("schema name: " + element.getName());
|
// System.out.println("schema name: " + element.getName());
|
||||||
|
|
||||||
rootLogger.log(Level.INFO, "ResourceName: " + resource.getName());
|
rootLogger.log(Level.INFO, "ResourceName: " + resource.getName());
|
||||||
rootLogger.log(Level.INFO, "DatabaseName: " + database.getName());
|
rootLogger.log(Level.INFO, "DatabaseName: " + database.getName());
|
||||||
|
|
|
@ -6,6 +6,7 @@ import java.util.logging.Logger;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.GWTdbManagerServiceAsync;
|
import org.gcube.portlets.user.databasesmanager.client.GWTdbManagerServiceAsync;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.datamodel.SubmitQueryData;
|
import org.gcube.portlets.user.databasesmanager.client.datamodel.SubmitQueryData;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.SamplingEvent;
|
import org.gcube.portlets.user.databasesmanager.client.events.SamplingEvent;
|
||||||
|
import org.gcube.portlets.user.databasesmanager.client.events.ShowCreateTableEvent;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.events.SubmitQueryEvent;
|
import org.gcube.portlets.user.databasesmanager.client.events.SubmitQueryEvent;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.form.GxtFormSubmitQuery;
|
import org.gcube.portlets.user.databasesmanager.client.form.GxtFormSubmitQuery;
|
||||||
import org.gcube.portlets.user.databasesmanager.client.utils.ConstantsPortlet;
|
import org.gcube.portlets.user.databasesmanager.client.utils.ConstantsPortlet;
|
||||||
|
@ -333,6 +334,21 @@ public class GxtToolbarFunctionality {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
btnShowCreateTable.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//fire event
|
||||||
|
|
||||||
|
eventBus.fireEvent(new ShowCreateTableEvent());
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disableButtonOnToolbar(int infoTreeDepthSelectedItem,
|
public void disableButtonOnToolbar(int infoTreeDepthSelectedItem,
|
||||||
|
|
|
@ -577,6 +577,98 @@ public class GWTdbManagerServiceImpl extends RemoteServiceServlet implements
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LinkedHashMap<String, FileModel> getTableDetails(
|
||||||
|
LinkedHashMap<String, String> dataInput) throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
List<Parameter> inputParameters = new ArrayList<Parameter>();
|
||||||
|
|
||||||
|
LinkedHashMap<String, FileModel> outputParameters = new LinkedHashMap<String, FileModel>();
|
||||||
|
|
||||||
|
// get list of algorithms
|
||||||
|
|
||||||
|
List<String> algorithms = new ArrayList<String>();
|
||||||
|
|
||||||
|
algorithms = getDatabaseManagerAlgorithms();
|
||||||
|
|
||||||
|
// get algorithmId
|
||||||
|
|
||||||
|
String algorithmId = null;
|
||||||
|
|
||||||
|
for (int i = 0; i < algorithms.size(); i++) {
|
||||||
|
|
||||||
|
if (algorithms.get(i).equals("GETTABLEDETAILS")) {
|
||||||
|
|
||||||
|
algorithmId = algorithms.get(i);
|
||||||
|
|
||||||
|
// System.out.println("algorithmId: " + algorithmId);
|
||||||
|
|
||||||
|
rootLogger.log(Level.SEVERE, "algorithmId: " + algorithmId);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// get input parameters of the algorithm
|
||||||
|
|
||||||
|
rootLogger.log(Level.SEVERE, "getting input parameters");
|
||||||
|
|
||||||
|
inputParameters = getParameters(algorithmId);
|
||||||
|
|
||||||
|
for (int i = 0; i < inputParameters.size(); i++) {
|
||||||
|
|
||||||
|
// System.out.println(inputParameters.get(i).getName());
|
||||||
|
|
||||||
|
rootLogger.log(Level.INFO, inputParameters.get(i).getName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inputParameters.get(0).setValue(dataInput.get("ResourceName"));
|
||||||
|
inputParameters.get(1).setValue(dataInput.get("DatabaseName"));
|
||||||
|
inputParameters.get(2).setValue(dataInput.get("SchemaName"));
|
||||||
|
inputParameters.get(3).setValue(dataInput.get("TableName"));
|
||||||
|
|
||||||
|
// System.out.println("size outputMap pre computation: "
|
||||||
|
// + outputMap.size());
|
||||||
|
|
||||||
|
String computationId = startComputation(algorithmId, inputParameters);
|
||||||
|
|
||||||
|
// retrieve data
|
||||||
|
|
||||||
|
// System.out.println("output data retrieved");
|
||||||
|
|
||||||
|
// System.out.println("size outputMap: " + outputMap.size());
|
||||||
|
|
||||||
|
rootLogger.log(Level.SEVERE, "output data retrieved");
|
||||||
|
rootLogger.log(Level.SEVERE, "output data size: " + outputMap.size());
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < outputMap.size(); i++) {
|
||||||
|
|
||||||
|
// outputParameters.add(outputKey.get(String.valueOf(i)) + " "
|
||||||
|
// + outputMap.get(String.valueOf(i)));
|
||||||
|
|
||||||
|
FileModel obj = new FileModel(outputMap.get(String.valueOf(i)));
|
||||||
|
|
||||||
|
// obj.setIsLoaded(true);
|
||||||
|
|
||||||
|
// outputParameters.add(obj);
|
||||||
|
|
||||||
|
// System.out.println("value: " + outputMap.get(String.valueOf(i)));
|
||||||
|
|
||||||
|
// System.out.println("key: " + outputKey.get(String.valueOf(i)));
|
||||||
|
|
||||||
|
outputParameters.put(outputKey.get(String.valueOf(i)), obj);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return outputParameters;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public List<Row> parseCVSString(List<Result> result, List<String> attrNames)
|
public List<Row> parseCVSString(List<Result> result, List<String> attrNames)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue