dialog for submitQuery and related dialog result not modal.Ehen the result is retrieved the dialog submitQuery is not hidden

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/databases-manager-portlet@98940 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Loredana Liccardo 2014-07-24 15:07:34 +00:00
parent 7e62798189
commit 422bb45ba7
2 changed files with 117 additions and 50 deletions

View File

@ -97,7 +97,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
private GWTdbManagerServiceAsync RPCservice = null; private GWTdbManagerServiceAsync RPCservice = null;
// variable that keeps track of the "submitquery" managed event // variable that keeps track of the "submitquery" managed event
private boolean submitQueryEventManaged = false; // private boolean submitQueryEventManaged = false;
// to keep track that the tables list is not null // to keep track that the tables list is not null
// private boolean tablesListNotNull = false; // private boolean tablesListNotNull = false;
@ -343,8 +343,12 @@ public class GxtBorderLayoutPanel extends ContentPanel {
@Override @Override
public void onSubmitQuery(SubmitQueryEvent submitQueryEvent) { public void onSubmitQuery(SubmitQueryEvent submitQueryEvent) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
Integer dialogID = toolbar.getDialogID();
submitQuery(); submitQuery(dialogID);
} }
}); });
@ -1043,10 +1047,10 @@ public class GxtBorderLayoutPanel extends ContentPanel {
} }
// method to submit a query // method to submit a query
private void submitQuery() { private void submitQuery(Integer dialogID) {
// clear variable that keeps track of the managed event // clear variable that keeps track of the managed event
submitQueryEventManaged = false; // boolean submitQueryEventManaged = false;
// get the selected item // get the selected item
List<FileModel> data = treePanel.getTreePanel().getSelectionModel() List<FileModel> data = treePanel.getTreePanel().getSelectionModel()
@ -1065,7 +1069,25 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// System.out.println("DatabaseName" + selectedItem.getDatabaseName()); // System.out.println("DatabaseName" + selectedItem.getDatabaseName());
// get data inserted in the form // get data inserted in the form
final SubmitQueryData dataQuery = toolbar.getSubmitQueryData(); // final SubmitQueryData dataQuery = toolbar.getSubmitQueryData();
//get data list (inserted in the form)
LinkedHashMap<Integer, SubmitQueryData> submitQueryDataList = toolbar.getSubmitQueryDataList();
//get dialog list
LinkedHashMap<Integer, Dialog> dialogList = toolbar.getDialogFormList();
//get the dialog related to the ID
final Dialog form = dialogList.get(dialogID);
//get the data form related to the ID
final SubmitQueryData dataQuery = submitQueryDataList.get(dialogID);
// determine the language // determine the language
String dialect; String dialect;
@ -1159,7 +1181,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// btn.getHtml()); // btn.getHtml());
// Button btn = ce.getButtonClicked(); // Button btn = ce.getButtonClicked();
Dialog form = toolbar.getDialogForm(); // Dialog form = toolbar.getDialogForm();
if (form.isMasked()) if (form.isMasked())
form.unmask(); form.unmask();
@ -1209,10 +1231,11 @@ public class GxtBorderLayoutPanel extends ContentPanel {
result.remove(0); result.remove(0);
// variable that keeps track of the managed event // variable that keeps track of the managed event
submitQueryEventManaged = true; // submitQueryEventManaged = true;
// parse the result in order to obtain a table // parse the result in order to obtain a table
parseResult(result); boolean submitQueryEventManaged = true;
parseResult(result, form, submitQueryEventManaged);
} }
@ -1334,7 +1357,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// parse the result in order to obtain a // parse the result in order to obtain a
// table // table
parseResult(result); parseResult(result, null, false);
} }
@ -1466,7 +1489,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// parse the result in order to obtain a // parse the result in order to obtain a
// table // table
parseResult(result); parseResult(result, null, false);
} }
@ -1597,7 +1620,7 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// parse the result in order to obtain a // parse the result in order to obtain a
// table // table
parseResult(result); parseResult(result, null, false);
} }
@ -1615,10 +1638,12 @@ public class GxtBorderLayoutPanel extends ContentPanel {
} }
// start the parsing of the submit result in order to obtain a table // start the parsing of the submit result in order to obtain a table
private void parseResult(List<Result> result) { private void parseResult(List<Result> result, Dialog dialog, final boolean submitQueryEventManaged) {
// to unmask the entire content panel // to unmask the entire content panel
final GxtBorderLayoutPanel obj = this; final GxtBorderLayoutPanel obj = this;
final Dialog form = dialog;
RPCservice.parseCVSString(result, listAttributes, RPCservice.parseCVSString(result, listAttributes,
new AsyncCallback<List<Row>>() { new AsyncCallback<List<Row>>() {
@ -1646,14 +1671,14 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// operation is performed the entire panel is masked. // operation is performed the entire panel is masked.
if (submitQueryEventManaged == true) { if (submitQueryEventManaged == true) {
submitQueryEventManaged = false; // submitQueryEventManaged = false;
Dialog form = toolbar.getDialogForm();
// Dialog form = toolbar.getDialogForm();
//
if (form.isMasked()) if (form.isMasked())
form.unmask(); form.unmask();
form.hide(); // form.hide();
} else { } else {
if (obj.isMasked()) { if (obj.isMasked()) {
@ -1683,8 +1708,8 @@ public class GxtBorderLayoutPanel extends ContentPanel {
// submitResult.setHeading("Submit Query"); // submitResult.setHeading("Submit Query");
// submitResult.setWidth(290); // submitResult.setWidth(290);
// submitResult.setHeight(250); // submitResult.setHeight(250);
submitResult.setModal(true); // submitResult.setModal(true);
submitResult.setBlinkModal(true); // submitResult.setBlinkModal(true);
// submitResult.setBodyStyle("padding:9px;"); // submitResult.setBodyStyle("padding:9px;");
submitResult.setSize(600, 400); submitResult.setSize(600, 400);
// submitResult.setScrollMode(Scroll.AUTO); // submitResult.setScrollMode(Scroll.AUTO);
@ -1717,14 +1742,14 @@ public class GxtBorderLayoutPanel extends ContentPanel {
if (submitQueryEventManaged == true) { if (submitQueryEventManaged == true) {
// clear variable // clear variable
submitQueryEventManaged = false; // submitQueryEventManaged = false;
Dialog form = toolbar.getDialogForm();
// Dialog form = toolbar.getDialogForm();
//
if (form.isMasked()) if (form.isMasked())
form.unmask(); form.unmask();
//
form.hide(); // form.hide();
} else { } else {
if (obj.isMasked()) { if (obj.isMasked()) {
@ -1735,13 +1760,13 @@ public class GxtBorderLayoutPanel extends ContentPanel {
if (submitQueryEventManaged == true) { if (submitQueryEventManaged == true) {
submitQueryEventManaged = false; // submitQueryEventManaged = false;
Dialog form = toolbar.getDialogForm(); // Dialog form = toolbar.getDialogForm();
if (form.isMasked()) if (form.isMasked())
form.unmask(); form.unmask();
//
form.hide(); // form.hide();
} else { } else {
if (obj.isMasked()) { if (obj.isMasked()) {
obj.unmask(); obj.unmask();

View File

@ -1,9 +1,13 @@
package org.gcube.portlets.user.databasesmanager.client.toolbar; package org.gcube.portlets.user.databasesmanager.client.toolbar;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; 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.FileModel;
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.LoadTablesEvent; import org.gcube.portlets.user.databasesmanager.client.events.LoadTablesEvent;
import org.gcube.portlets.user.databasesmanager.client.events.RandomSamplingEvent; import org.gcube.portlets.user.databasesmanager.client.events.RandomSamplingEvent;
@ -41,12 +45,17 @@ public class GxtToolbarFunctionality {
private Button btnSmartSample; private Button btnSmartSample;
private Button btnRandomSample; private Button btnRandomSample;
private SubmitQueryData data; // private SubmitQueryData data;
// toolbar // toolbar
private ToolBar toolBar; private ToolBar toolBar;
// dialog list. Each dialog contains a form
private LinkedHashMap<Integer, Dialog> dialogList = new LinkedHashMap<Integer, Dialog>();
private LinkedHashMap<Integer, SubmitQueryData> submitQueryDataList = new LinkedHashMap<Integer, SubmitQueryData>();
private static int ID = 0;
// the dialog that contains the form // the dialog that contains the form
private Dialog dialog; // private Dialog dialog;
private MessageBox sample; private MessageBox sample;
// RPC service // RPC service
@ -75,7 +84,8 @@ public class GxtToolbarFunctionality {
// btnSubmitQuery.setIcon(Resources.ICONS.text()); // btnSubmitQuery.setIcon(Resources.ICONS.text());
btnTablesList.setScale(ButtonScale.SMALL); btnTablesList.setScale(ButtonScale.SMALL);
btnTablesList.setArrowAlign(ButtonArrowAlign.BOTTOM); btnTablesList.setArrowAlign(ButtonArrowAlign.BOTTOM);
btnTablesList.setToolTip("returns the list of tables contained in the database schema"); btnTablesList
.setToolTip("returns the list of tables contained in the database schema");
toolBar.add(btnTablesList); toolBar.add(btnTablesList);
// Button for Submit Query // Button for Submit Query
@ -83,7 +93,8 @@ public class GxtToolbarFunctionality {
// btnSubmitQuery.setIcon(Resources.ICONS.text()); // btnSubmitQuery.setIcon(Resources.ICONS.text());
btnSubmitQuery.setScale(ButtonScale.SMALL); btnSubmitQuery.setScale(ButtonScale.SMALL);
btnSubmitQuery.setArrowAlign(ButtonArrowAlign.BOTTOM); btnSubmitQuery.setArrowAlign(ButtonArrowAlign.BOTTOM);
btnSubmitQuery.setToolTip("allows to submit a query to the selected database"); btnSubmitQuery
.setToolTip("allows to submit a query to the selected database");
toolBar.add(btnSubmitQuery); toolBar.add(btnSubmitQuery);
// // Button to get information about a database // // Button to get information about a database
@ -96,7 +107,8 @@ public class GxtToolbarFunctionality {
btnShowCreateTable = new Button(ConstantsPortlet.TABLEDETAILS); btnShowCreateTable = new Button(ConstantsPortlet.TABLEDETAILS);
btnShowCreateTable.setScale(ButtonScale.SMALL); btnShowCreateTable.setScale(ButtonScale.SMALL);
btnShowCreateTable.setArrowAlign(ButtonArrowAlign.BOTTOM); btnShowCreateTable.setArrowAlign(ButtonArrowAlign.BOTTOM);
btnShowCreateTable.setToolTip("gets information about the selected table, e.g. create statement, number of rows, columns names"); btnShowCreateTable
.setToolTip("gets information about the selected table, e.g. create statement, number of rows, columns names");
toolBar.add(btnShowCreateTable); toolBar.add(btnShowCreateTable);
toolBar.add(new SeparatorToolItem()); toolBar.add(new SeparatorToolItem());
@ -111,14 +123,16 @@ public class GxtToolbarFunctionality {
btnSmartSample = new Button(ConstantsPortlet.SMARTSAMPLING); btnSmartSample = new Button(ConstantsPortlet.SMARTSAMPLING);
btnSmartSample.setScale(ButtonScale.SMALL); btnSmartSample.setScale(ButtonScale.SMALL);
btnSmartSample.setArrowAlign(ButtonArrowAlign.BOTTOM); btnSmartSample.setArrowAlign(ButtonArrowAlign.BOTTOM);
btnSmartSample.setToolTip("retrieves the first 100 rows of the table, maximising the number of non empty columns"); btnSmartSample
.setToolTip("retrieves the first 100 rows of the table, maximising the number of non empty columns");
toolBar.add(btnSmartSample); toolBar.add(btnSmartSample);
// button for Random Sample // button for Random Sample
btnRandomSample = new Button(ConstantsPortlet.RANDOMSAMPLING); btnRandomSample = new Button(ConstantsPortlet.RANDOMSAMPLING);
btnRandomSample.setScale(ButtonScale.SMALL); btnRandomSample.setScale(ButtonScale.SMALL);
btnRandomSample.setArrowAlign(ButtonArrowAlign.BOTTOM); btnRandomSample.setArrowAlign(ButtonArrowAlign.BOTTOM);
btnRandomSample.setToolTip("retrieves 100 randomly picked rows from the table"); btnRandomSample
.setToolTip("retrieves 100 randomly picked rows from the table");
toolBar.add(btnRandomSample); toolBar.add(btnRandomSample);
// add(toolBar, new FlowData(10)); // add(toolBar, new FlowData(10));
@ -151,6 +165,7 @@ public class GxtToolbarFunctionality {
btnSimpleSample.enable(); btnSimpleSample.enable();
btnSmartSample.enable(); btnSmartSample.enable();
btnRandomSample.enable(); btnRandomSample.enable();
} }
}); });
@ -165,13 +180,14 @@ public class GxtToolbarFunctionality {
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
// clear variable // clear variable
data = null; // data = null;
// dialog to insert inputs in order to submit a query // dialog to insert inputs in order to submit a query
dialog = new Dialog(); final Dialog dialog = new Dialog();
ID++;
dialog.setLayout(new FitLayout()); dialog.setLayout(new FitLayout());
dialog.setModal(true); // dialog.setModal(true);
dialog.setBlinkModal(true); // dialog.setBlinkModal(true);
dialog.setButtons(Dialog.OKCANCEL); dialog.setButtons(Dialog.OKCANCEL);
// dialog.setPlain(true); // dialog.setPlain(true);
// dialog.setCollapsible(false); // dialog.setCollapsible(false);
@ -192,9 +208,10 @@ public class GxtToolbarFunctionality {
@Override @Override
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
// recover info from dialog // recover info from dialog
setInfoOnSubmitQuery(form); setInfoOnSubmitQuery(form, dialog);
rootLogger.log(Level.SEVERE, rootLogger.log(Level.SEVERE,
"query submitted"); "query submitted");
@ -215,6 +232,7 @@ public class GxtToolbarFunctionality {
dialog.hide(); dialog.hide();
} }
}); });
} }
}); });
@ -316,7 +334,7 @@ public class GxtToolbarFunctionality {
}); });
} }
//selection buttons depending from the item selected in the tree // selection buttons depending from the item selected in the tree
public void enableButtonOnToolbar(int infoTreeDepthSelectedItem, public void enableButtonOnToolbar(int infoTreeDepthSelectedItem,
boolean infoSelectedItemIsSchema, String databaseType) { boolean infoSelectedItemIsSchema, String databaseType) {
@ -426,9 +444,12 @@ public class GxtToolbarFunctionality {
} }
private void setInfoOnSubmitQuery(GxtFormSubmitQuery form) { private void setInfoOnSubmitQuery(GxtFormSubmitQuery form,
Dialog SubmtQueryDialog) {
data = form.getSubmitQueryData(); SubmitQueryData data = form.getSubmitQueryData();
// data = form.getSubmitQueryData();
String query = data.getQuery(); String query = data.getQuery();
@ -437,21 +458,42 @@ public class GxtToolbarFunctionality {
} else { } else {
dialog.mask("Loading", "x-mask-loading"); dialogList.put(new Integer(ID), SubmtQueryDialog);
//fire event submitQueryDataList.put(new Integer(ID), data);
SubmtQueryDialog.mask("Loading", "x-mask-loading");
// fire event
eventBus.fireEvent(new SubmitQueryEvent()); eventBus.fireEvent(new SubmitQueryEvent());
} }
} }
public SubmitQueryData getSubmitQueryData() { // public SubmitQueryData getSubmitQueryData() {
return data; // return data;
// }
// public LinkedHashMap<Dialog, ArrayList<String>> getDialogForm() {
//
// // return dialog;
// return dialogList;
//
// }
public LinkedHashMap<Integer, Dialog> getDialogFormList() {
return dialogList;
} }
public Dialog getDialogForm() { public LinkedHashMap<Integer, SubmitQueryData> getSubmitQueryDataList() {
return dialog;
return submitQueryDataList;
}
public Integer getDialogID(){
return new Integer(ID);
} }
} }