Added code to opening the collection in input or all the collections
This commit is contained in:
parent
59fcd5db9d
commit
6950ce8c2f
|
@ -224,7 +224,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
||||||
|
|
||||||
GWT.log("Loading collections, count " + result.getAvailableCollections().size());
|
GWT.log("Loading collections, count " + result.getAvailableCollections().size());
|
||||||
|
|
||||||
mainPanel.setAvailableCollections(result.getAvailableCollections().values());
|
mainPanel.setAvailableCollections(result.getAvailableCollections().values(), paramGeonaItemType);
|
||||||
|
|
||||||
if (paramGeonaItemID != null) {
|
if (paramGeonaItemID != null) {
|
||||||
if (paramGeonaItemType == null) {
|
if (paramGeonaItemType == null) {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.gcube.portlets.user.geoportaldataviewer.client.ui;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences;
|
import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences;
|
||||||
|
@ -139,6 +140,8 @@ public class GeonaDataViewMainPanel extends Composite {
|
||||||
|
|
||||||
private HandlerManager applicationBus;
|
private HandlerManager applicationBus;
|
||||||
|
|
||||||
|
private HashMap<String, List<CheckBox>> mapCollectionCheckBoxes;
|
||||||
|
|
||||||
public GeonaDataViewMainPanel(HandlerManager applicationBus, int mapHeight,
|
public GeonaDataViewMainPanel(HandlerManager applicationBus, int mapHeight,
|
||||||
List<ItemFieldsResponse> itemFieldsReponse) {
|
List<ItemFieldsResponse> itemFieldsReponse) {
|
||||||
initWidget(uiBinder.createAndBindUi(this));
|
initWidget(uiBinder.createAndBindUi(this));
|
||||||
|
@ -268,6 +271,15 @@ public class GeonaDataViewMainPanel extends Composite {
|
||||||
}
|
}
|
||||||
}, ClickEvent.getType());
|
}, ClickEvent.getType());
|
||||||
|
|
||||||
|
openCollectionDropDown.addDomHandler(new ClickHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(ClickEvent event) {
|
||||||
|
// event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
|
}
|
||||||
|
}, ClickEvent.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -478,18 +490,20 @@ public class GeonaDataViewMainPanel extends Composite {
|
||||||
* @param listBaseLayers the new base layers
|
* @param listBaseLayers the new base layers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void setAvailableCollections(Collection<GCubeCollection> collection) {
|
public void setAvailableCollections(Collection<GCubeCollection> collection, String openCollectionID) {
|
||||||
GWT.log("Init Available collections menu");
|
GWT.log("Init Available collections menu");
|
||||||
if (collection == null || collection.isEmpty())
|
if (collection == null || collection.isEmpty())
|
||||||
GWT.log("!!! No Available collections");
|
GWT.log("!!! No Available collections");
|
||||||
|
|
||||||
|
mapCollectionCheckBoxes = new HashMap<String, List<CheckBox>>();
|
||||||
|
|
||||||
for (GCubeCollection coll : collection) {
|
for (GCubeCollection coll : collection) {
|
||||||
GWT.log("Found available collection " + coll);
|
GWT.log("Found available collection " + coll);
|
||||||
String label = coll.getUcd().getName();
|
String label = coll.getUcd().getName();
|
||||||
String id = coll.getUcd().getId();
|
final String collectionID = coll.getUcd().getId(); // collectionID == UCD_Id
|
||||||
|
|
||||||
CheckBox checkbox = new CheckBox(label);
|
CheckBox checkbox = new CheckBox(label);
|
||||||
checkbox.setId("gcubeCollectionSelector_" + id);
|
checkbox.setId("gcubeCollectionSelector_" + collectionID);
|
||||||
|
|
||||||
checkbox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
|
checkbox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
|
||||||
|
|
||||||
|
@ -497,8 +511,8 @@ public class GeonaDataViewMainPanel extends Composite {
|
||||||
public void onValueChange(ValueChangeEvent<Boolean> event) {
|
public void onValueChange(ValueChangeEvent<Boolean> event) {
|
||||||
GWT.log("Collection selector flag changed to value : " + event.toDebugString());
|
GWT.log("Collection selector flag changed to value : " + event.toDebugString());
|
||||||
|
|
||||||
String collectionID = ((CheckBox) event.getSource()).getId().replace("gcubeCollectionSelector_",
|
// String collectionID = ((CheckBox) event.getSource()).getId().replace("gcubeCollectionSelector_",
|
||||||
"");
|
// "");
|
||||||
|
|
||||||
GWT.log("Collection ID is : " + collectionID + ", event value: " + event.getValue());
|
GWT.log("Collection ID is : " + collectionID + ", event value: " + event.getValue());
|
||||||
if (event.getValue()) {
|
if (event.getValue()) {
|
||||||
|
@ -512,16 +526,39 @@ public class GeonaDataViewMainPanel extends Composite {
|
||||||
});
|
});
|
||||||
|
|
||||||
openCollectionPanel.add(checkbox);
|
openCollectionPanel.add(checkbox);
|
||||||
|
|
||||||
|
List<CheckBox> listCollections = mapCollectionCheckBoxes.get(collectionID);
|
||||||
|
if (listCollections == null)
|
||||||
|
listCollections = new ArrayList<CheckBox>();
|
||||||
|
|
||||||
|
listCollections.add(checkbox);
|
||||||
|
mapCollectionCheckBoxes.put(collectionID, listCollections);
|
||||||
|
|
||||||
|
// Opening All Collections if openCollectionID is null
|
||||||
|
if (openCollectionID == null) {
|
||||||
|
checkbox.setValue(true, true);
|
||||||
|
// String collectionID = checkbox.getId().replace("gcubeCollectionSelector_",
|
||||||
|
// "");
|
||||||
|
GWT.log("Opening the collection: " + collectionID);
|
||||||
|
applicationBus.fireEvent(new OpenCollectionEvent(collectionID));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open the first collection as default
|
// Opening All Collections if openCollectionID is null
|
||||||
if (collection != null && collection.size() > 0) {
|
if (openCollectionID != null) {
|
||||||
CheckBox checkbox = (CheckBox) openCollectionPanel.getWidget(0);
|
|
||||||
checkbox.setValue(true, true);
|
|
||||||
String collectionID = checkbox.getId().replace("gcubeCollectionSelector_", "");
|
|
||||||
applicationBus.fireEvent(new OpenCollectionEvent(collectionID));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
List<CheckBox> listCheckBoxes = mapCollectionCheckBoxes.get(openCollectionID);
|
||||||
|
|
||||||
|
if (listCheckBoxes != null) {
|
||||||
|
for (CheckBox checkBox : listCheckBoxes) {
|
||||||
|
checkBox.setValue(true, true);
|
||||||
|
String collectionID = checkBox.getId().replace("gcubeCollectionSelector_", "");
|
||||||
|
GWT.log("Opening the input collection: " + collectionID);
|
||||||
|
applicationBus.fireEvent(new OpenCollectionEvent(collectionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openCollectionMenu() {
|
public void openCollectionMenu() {
|
||||||
|
|
|
@ -667,7 +667,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
||||||
|
|
||||||
try {
|
try {
|
||||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||||
|
new GeoportalServiceIdentityProxy(this.getThreadLocalRequest());
|
||||||
List<ItemFieldsResponse> listIFResponse = new ArrayList<ItemFieldsResponse>();
|
List<ItemFieldsResponse> listIFResponse = new ArrayList<ItemFieldsResponse>();
|
||||||
|
|
||||||
List<String> handlersIds = Arrays.asList(GEOPORTAL_DATA_HANDLER.geoportal_basic_data_list.getId());
|
List<String> handlersIds = Arrays.asList(GEOPORTAL_DATA_HANDLER.geoportal_basic_data_list.getId());
|
||||||
|
|
Loading…
Reference in New Issue