fixing issue on clicking event

This commit is contained in:
Francesco Mangiacrapa 2022-11-30 10:06:42 +01:00
parent 55dc9379c5
commit 2cb435c546
2 changed files with 47 additions and 27 deletions

View File

@ -38,7 +38,8 @@ public class ActionListPanel extends Composite {
private List<ActionDefinitionDV> listActionDefinition;
private HandlerManager appManagerBus;
public ActionListPanel(HandlerManager appManagerBus,String projectName, String profileID, List<ActionDefinitionDV> listActionDef) {
public ActionListPanel(HandlerManager appManagerBus, String projectName, String profileID,
List<ActionDefinitionDV> listActionDef) {
initWidget(uiBinder.createAndBindUi(this));
GWT.log("Adding list of actions: " + listActionDef);
this.appManagerBus = appManagerBus;
@ -60,7 +61,7 @@ public class ActionListPanel extends Composite {
private void initActions(List<ActionDefinitionDV> listActionDef) {
if (listActionDef.size() > 0) {
//actionListBasePanel.setVisible(true);
// actionListBasePanel.setVisible(true);
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.getElement().addClassName("actions-button-group");
@ -68,12 +69,13 @@ public class ActionListPanel extends Composite {
mapPhaseListButtons = new LinkedHashMap<String, List<ActionDefButton>>();
for (ActionDefinitionDV actionDefinitionDV : listActionDef) {
//skipping the special workflow action
if(actionDefinitionDV.getId().equals(ConstantsGeoPortalDataEntryApp.WORKFLOW_ACTION_POST_CREATION_ACTION_ID)) {
// skipping the special workflow action
if (actionDefinitionDV.getId()
.equals(ConstantsGeoPortalDataEntryApp.WORKFLOW_ACTION_POST_CREATION_ACTION_ID)) {
continue;
}
Button butt = new Button();
butt.setText(actionDefinitionDV.getTitle());
butt.setTitle(actionDefinitionDV.getDescription());
@ -83,7 +85,8 @@ public class ActionListPanel extends Composite {
@Override
public void onClick(ClickEvent event) {
appManagerBus.fireEvent(new WorkflowActionOnSelectedItemEvent<ResultDocumentDV>(actionDefinitionDV));
appManagerBus
.fireEvent(new WorkflowActionOnSelectedItemEvent<ResultDocumentDV>(actionDefinitionDV));
}
});
@ -110,9 +113,9 @@ public class ActionListPanel extends Composite {
public <T> void showActionsOnSelected(List<T> listSelected, GcubeUserRole userRole) {
setAllActionsVisible(false);
if (listSelected.size() == 1) {
for (T item : listSelected) {
if (item instanceof ResultDocumentDV) {
@ -120,20 +123,25 @@ public class ActionListPanel extends Composite {
String itemPhase = ((ResultDocumentDV) item).getLifecycleInfo().getPhase();
List<ActionDefButton> listButtons = mapPhaseListButtons.get(itemPhase);
for (ActionDefButton actionDefButton : listButtons) {
Set<String> roles = actionDefButton.getActionDefinitionDV().getRoles();
//No role/s defined means enable the action by default
if(roles.isEmpty()) {
actionDefButton.getButton().setVisible(true);
actionListBasePanel.setVisible(true);
}else {
//Checking if the userRole is matching the role defined in the ActionDefinition
boolean isRoleIntoActionDef= roles.stream().anyMatch(userRole.getName()::equalsIgnoreCase);
if(isRoleIntoActionDef) {
if (listButtons != null) {
for (ActionDefButton actionDefButton : listButtons) {
Set<String> roles = actionDefButton.getActionDefinitionDV().getRoles();
// No role/s defined means enable the action by default
if (roles.isEmpty()) {
actionDefButton.getButton().setVisible(true);
actionListBasePanel.setVisible(true);
} else {
// Checking if the userRole is matching the role defined in the ActionDefinition
boolean isRoleIntoActionDef = roles.stream()
.anyMatch(userRole.getName()::equalsIgnoreCase);
if (isRoleIntoActionDef) {
actionDefButton.getButton().setVisible(true);
actionListBasePanel.setVisible(true);
}
}
}
}
@ -144,13 +152,19 @@ public class ActionListPanel extends Composite {
}
private void setAllActionsVisible(boolean bool) {
Iterator<List<ActionDefButton>> collIterator = mapPhaseListButtons.values().iterator();
while (collIterator.hasNext()) {
List<ActionDefButton> listButton = collIterator.next();
for (ActionDefButton actionDefButton : listButton) {
actionDefButton.getButton().setVisible(bool);
}
if (mapPhaseListButtons != null && mapPhaseListButtons.values().size() > 0) {
Iterator<List<ActionDefButton>> collIterator = mapPhaseListButtons.values().iterator();
if (collIterator != null) {
while (collIterator.hasNext()) {
List<ActionDefButton> listButton = collIterator.next();
for (ActionDefButton actionDefButton : listButton) {
actionDefButton.getButton().setVisible(bool);
}
}
}
}
}
}

View File

@ -143,6 +143,9 @@ public class ItemsTable<T extends DocumentDV> extends AbstractItemsCellTable<T>
String key = itemField.getJsonFields().get(0)
.replace(ConstantsGeoPortalDataEntryApp.DEFAULT_DOCUMENT_PROJECTION_NAME + ".", "");
Object value = documentDV.getDocumentAsMap().get(key);
if(value==null)
return "";
return value.toString();
} catch (Exception e) {
GWT.log("Error e: " + e);
@ -164,6 +167,9 @@ public class ItemsTable<T extends DocumentDV> extends AbstractItemsCellTable<T>
.replace(ConstantsGeoPortalDataEntryApp.DEFAULT_DOCUMENT_PROJECTION_NAME + ".", "");
Object value = documentDV.getDocumentAsMap().get(key);
// GWT.log("key: "+key+" is instance of: "+value.getClass());
if(value==null)
return;
if (value instanceof ArrayList) {
ArrayList<Object> arrayValues = (ArrayList<Object>) value;