Skip to content

Commit

Permalink
tabs visibility fix for new induced entitlements popup panel
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Sep 6, 2018
1 parent 104b7de commit 950994a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 9 deletions.
Expand Up @@ -22,6 +22,7 @@
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -118,13 +119,11 @@ public boolean isEnabled(){
form.add(addButton);
}

private List<ITab> createAssignmentTabs() {
protected List<ITab> createAssignmentTabs() {
List<ITab> tabs = new ArrayList<>();
//TODO check authorization for each tab
VisibleEnableBehaviour authorization = new VisibleEnableBehaviour(){
};

tabs.add(new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.ROLE"), authorization) {
tabs.add(new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.ROLE"),
new VisibleBehaviour(() -> isTabVisible(ObjectTypes.ROLE))) {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -152,7 +151,8 @@ public String getCount() {
});

tabs.add(
new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.ORG"), authorization) {
new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.ORG"),
new VisibleBehaviour(() -> isTabVisible(ObjectTypes.ORG))) {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -186,7 +186,8 @@ public String getCount() {
});


tabs.add(new CountablePanelTab(createStringResource("TypedAssignablePanel.orgTreeView"), authorization) {
tabs.add(new CountablePanelTab(createStringResource("TypedAssignablePanel.orgTreeView"),
new VisibleBehaviour(() -> isTabVisible(ObjectTypes.ORG))) {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -214,7 +215,8 @@ public String getCount() {
});

tabs.add(
new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.SERVICE"), authorization) {
new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.SERVICE"),
new VisibleBehaviour(() -> isTabVisible(ObjectTypes.SERVICE))) {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -243,7 +245,8 @@ public String getCount() {
});

tabs.add(
new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.RESOURCE"), authorization) {
new CountablePanelTab(getPageBase().createStringResource("ObjectTypes.RESOURCE"),
new VisibleBehaviour(() -> isTabVisible(ObjectTypes.RESOURCE))) {

private static final long serialVersionUID = 1L;

Expand All @@ -269,6 +272,15 @@ public String getCount() {
return tabs;
}

private boolean isTabVisible(ObjectTypes objectType){
List<ObjectTypes> availableObjectTypesList = getAvailableObjectTypesList();
return availableObjectTypesList == null || availableObjectTypesList.size() == 0 || availableObjectTypesList.contains(objectType);
}

protected List<ObjectTypes> getAvailableObjectTypesList(){
return WebComponentUtil.createAssignableTypesList();
}

private int getTabPanelSelectedCount(WebMarkupContainer panel){
if (panel != null && panel instanceof AbstractAssignmentPopupTabPanel){
return ((AbstractAssignmentPopupTabPanel) panel).getSelectedObjectsList().size();
Expand Down
Expand Up @@ -200,6 +200,11 @@ protected void addPerformed(AjaxRequestTarget target, List newAssignmentsList) {
super.addPerformed(target, newAssignmentsList);
addSelectedAssignmentsPerformed(target, newAssignmentsList);
}

@Override
protected List<ObjectTypes> getAvailableObjectTypesList(){
return getObjectTypesList();
}
};
popupPanel.setOutputMarkupId(true);
getPageBase().showMainPopup(popupPanel, target);
Expand Down

0 comments on commit 950994a

Please sign in to comment.