item selection corrected in the treepanel adding the "expand" management event
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/databases-manager-portlet@98620 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
f307b54848
commit
8085d50fec
|
@ -16,6 +16,8 @@ import org.gcube.portlets.user.databasesmanager.client.utils.ConstantsPortlet;
|
|||
import com.extjs.gxt.ui.client.Style.SelectionMode;
|
||||
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
||||
import com.extjs.gxt.ui.client.event.EventType;
|
||||
import com.extjs.gxt.ui.client.event.Events;
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
||||
import com.extjs.gxt.ui.client.event.TreePanelEvent;
|
||||
|
@ -95,6 +97,15 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
TreePanelEvent<FileModel> tpe = (TreePanelEvent) ce;
|
||||
EventType typeEvent = tpe.getType();
|
||||
|
||||
// boolean rightClick = false;
|
||||
//
|
||||
// if (typeEvent == Events.OnMouseDown) {
|
||||
//
|
||||
// if (ce.isRightClick()){
|
||||
// rightClick = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
int type = ce.getEventTypeInt();
|
||||
switch (type) {
|
||||
case Event.ONCLICK:
|
||||
|
@ -111,6 +122,8 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
// break;
|
||||
}
|
||||
|
||||
// view.onEvent(tpe);
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -164,12 +177,6 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
List<FileModel> data = treePanel.getSelectionModel()
|
||||
.getSelectedItems();
|
||||
|
||||
treePanel.setExpanded(data.get(0), true); // expand
|
||||
// level of
|
||||
// the
|
||||
// element
|
||||
// selected
|
||||
|
||||
FileModel selectedItem = data.get(0);
|
||||
|
||||
value = data.get(0).get("name");
|
||||
|
@ -200,16 +207,144 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
// recover the appropriate information whenever an
|
||||
// element is selected
|
||||
|
||||
// setInfoOnSelectedItem(data.get(0));
|
||||
|
||||
treePanel.setExpanded(data.get(0), true); // expand
|
||||
// level of
|
||||
// the
|
||||
// element
|
||||
// selected
|
||||
|
||||
// do not make a rpc call
|
||||
if ((data.get(0).isLoaded() == true)) {
|
||||
|
||||
setInfoOnSelectedItem(data.get(0));
|
||||
|
||||
// fire event when an item has been selected in the
|
||||
// tree
|
||||
eventBus.fireEvent(new SelectedItemEvent());
|
||||
|
||||
} else if (data.get(0).isDatabase()) {
|
||||
|
||||
setInfoOnSelectedItem(data.get(0));
|
||||
|
||||
// fire event when an item has been selected in the
|
||||
// tree
|
||||
eventBus.fireEvent(new SelectedItemEvent());
|
||||
|
||||
} else if (data.get(0).isSchema()) {
|
||||
|
||||
setInfoOnSelectedItem(data.get(0));
|
||||
|
||||
// fire event when an item has been selected in the
|
||||
// tree
|
||||
eventBus.fireEvent(new SelectedItemEvent());
|
||||
|
||||
}
|
||||
|
||||
// // check to make the RPC call only one time. The
|
||||
// // selected item has not loaded
|
||||
// if ((numChildrenFolder == 0)
|
||||
// && (data.get(0).isLoaded() != true)) {
|
||||
//
|
||||
// // treePanel.disableEvents(true);
|
||||
//
|
||||
// // selectedItem.setIsSchema(false);
|
||||
//
|
||||
// switch (treeDepthSelectedItem) {
|
||||
// // case 1:
|
||||
// //
|
||||
// // loadResources(data.get(0));
|
||||
// // break;
|
||||
//
|
||||
// case 2: // the selected item is the resource
|
||||
// // selectedItem.setIsSchema(false);
|
||||
//
|
||||
// // to mask the tree panel
|
||||
// treePanel.mask("Loading", "x-mask-loading");
|
||||
//
|
||||
// loadDBInfo(data.get(0), treePanel);
|
||||
// // loadDBInfo(data.get(0));
|
||||
// break;
|
||||
//
|
||||
// case 3: // the selected item is a database
|
||||
//
|
||||
// if (selectedItem.getDatabaseType().equals(
|
||||
// ConstantsPortlet.POSTGRES)) {
|
||||
//
|
||||
// // to mask the tree panel
|
||||
// treePanel.mask("Loading", "x-mask-loading");
|
||||
// // 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());
|
||||
// //
|
||||
// // // load tables for mysql database
|
||||
// // loadTables(data.get(0));
|
||||
// // }
|
||||
// break;
|
||||
//
|
||||
// // case 4: // load tables for postgres database
|
||||
// // // selectedItem.setIsSchema(false);
|
||||
// // loadTables(data.get(0));
|
||||
// // break;
|
||||
//
|
||||
// }
|
||||
// }
|
||||
|
||||
// else {
|
||||
// //if the selected item has already been been loaded
|
||||
//
|
||||
// setInfoOnSelectedItem(data.get(0));
|
||||
// }
|
||||
|
||||
// // fire event when an item has been selected in the
|
||||
// tree
|
||||
// eventBus.fireEvent(new SelectedItemEvent());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
treePanel.addListener(Events.Expand,
|
||||
new Listener<TreePanelEvent<FileModel>>() {
|
||||
public void handleEvent(final TreePanelEvent<FileModel> be) {
|
||||
|
||||
rootLogger.log(Level.INFO, "Expand");
|
||||
|
||||
FileModel selectedItem = (FileModel) (be.getNode()
|
||||
.getModel());
|
||||
|
||||
rootLogger.log(Level.INFO,
|
||||
"selected: " + selectedItem.getName());
|
||||
|
||||
// select the expanded item
|
||||
treePanel.getSelectionModel()
|
||||
.select(selectedItem, true);
|
||||
|
||||
int numChildrenFolder = store
|
||||
.getChildCount(selectedItem);
|
||||
|
||||
setInfoOnSelectedItem(selectedItem);
|
||||
|
||||
// get the depth level
|
||||
treeDepthSelectedItem = store.getDepth(selectedItem);
|
||||
|
||||
rootLogger.log(Level.INFO, "selectedItem level depth: "
|
||||
+ treeDepthSelectedItem);
|
||||
|
||||
// check to make the RPC call only one time. The
|
||||
// selected item has not loaded
|
||||
if ((numChildrenFolder == 0)
|
||||
&& (data.get(0).isLoaded() != true)) {
|
||||
&& (selectedItem.isLoaded() != true)) {
|
||||
|
||||
|
||||
|
||||
// treePanel.disableEvents(true);
|
||||
if (treeDepthSelectedItem!=1){
|
||||
treePanel.disableEvents(true);
|
||||
}
|
||||
|
||||
|
||||
// selectedItem.setIsSchema(false);
|
||||
|
@ -226,14 +361,12 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
// to mask the tree panel
|
||||
treePanel.mask("Loading", "x-mask-loading");
|
||||
|
||||
loadDBInfo(data.get(0), treePanel);
|
||||
loadDBInfo(selectedItem, treePanel);
|
||||
// loadDBInfo(data.get(0));
|
||||
break;
|
||||
|
||||
case 3: // the selected item is a database
|
||||
|
||||
|
||||
|
||||
if (selectedItem.getDatabaseType().equals(
|
||||
ConstantsPortlet.POSTGRES)) {
|
||||
|
||||
|
@ -242,7 +375,7 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
// load schema for postgres database
|
||||
|
||||
// selectedItem.setIsSchema(false);
|
||||
loadSchema(data.get(0));
|
||||
loadSchema(selectedItem);
|
||||
}
|
||||
// else {
|
||||
// // System.out.println("database mysql: " +
|
||||
|
@ -260,16 +393,11 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
// break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// else {
|
||||
// //if the selected item has already been been loaded
|
||||
//
|
||||
// setInfoOnSelectedItem(data.get(0));
|
||||
// }
|
||||
|
||||
// fire event when an item has been selected in the tree
|
||||
// fire event when an item has been selected in the
|
||||
// tree
|
||||
eventBus.fireEvent(new SelectedItemEvent());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
@ -365,8 +493,6 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
|
||||
// int numChildrenFolder = store.getChildCount(element);
|
||||
|
||||
|
||||
|
||||
addChildren(element, result);
|
||||
|
||||
element.setIsLoaded(true);
|
||||
|
@ -376,7 +502,6 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
treePanel.setExpanded(element, false);
|
||||
}
|
||||
|
||||
|
||||
if (tree.isMasked())
|
||||
tree.unmask();
|
||||
|
||||
|
@ -392,7 +517,8 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
}
|
||||
|
||||
// load information fo a database
|
||||
private void loadDBInfo(final FileModel element, final TreePanel<FileModel> tree) {
|
||||
private void loadDBInfo(final FileModel element,
|
||||
final TreePanel<FileModel> tree) {
|
||||
|
||||
// System.out.println("Start RPC - getDBInfo");
|
||||
|
||||
|
@ -422,8 +548,6 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
if (treePanel.isMasked())
|
||||
treePanel.unmask();
|
||||
|
||||
|
||||
|
||||
tree.enableEvents(true);
|
||||
|
||||
}
|
||||
|
@ -563,7 +687,6 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
|
||||
treePanel.setExpanded(child, false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
children.add(child);
|
||||
|
@ -599,7 +722,7 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
if (treePanel.isMasked())
|
||||
treePanel.unmask();
|
||||
|
||||
tree.enable();
|
||||
// tree.enable();
|
||||
|
||||
tree.enableEvents(true);
|
||||
|
||||
|
@ -741,7 +864,8 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
//
|
||||
// // recover data inputs
|
||||
//
|
||||
// LinkedHashMap<String, String> dataInput = new LinkedHashMap<String, String>();
|
||||
// LinkedHashMap<String, String> dataInput = new LinkedHashMap<String,
|
||||
// String>();
|
||||
//
|
||||
// // check if the element is a schema or a database
|
||||
//
|
||||
|
@ -772,7 +896,8 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
// //
|
||||
// // if (element.isDatabase()) {
|
||||
// //
|
||||
// // System.out.println("element is a database: " + element.isDatabase());
|
||||
// // System.out.println("element is a database: " +
|
||||
// element.isDatabase());
|
||||
// //
|
||||
// // FileModel resource = store.getParent(element);
|
||||
// // // FileModel parent1 = store.getParent(parent);
|
||||
|
@ -856,7 +981,8 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
|
||||
// // call remote service
|
||||
//
|
||||
// RPCservice.getTables(dataInput, new AsyncCallback<List<FileModel>>() {
|
||||
// RPCservice.getTables(dataInput, new AsyncCallback<List<FileModel>>()
|
||||
// {
|
||||
//
|
||||
// @Override
|
||||
// public void onFailure(Throwable caught) {
|
||||
|
@ -962,8 +1088,6 @@ public class GxtTreePanel extends LayoutContainer {
|
|||
//
|
||||
// rootLogger.log(Level.SEVERE, "End RPC getTables");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// public boolean getSelectedItemIsSchema() {
|
||||
|
|
Loading…
Reference in New Issue