Skip to content

Commit

Permalink
MID-8093 fixing role catalog checks and icons in table
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Sep 14, 2022
1 parent bdadf0f commit 65fa3f8
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@ public class LabelWithCheck extends BasePanel<String> {

private IModel<RoundedIconPanel.State> state;

public LabelWithCheck(String id, IModel<String> model, IModel<RoundedIconPanel.State> state) {
private IModel<String> stateTitle;

public LabelWithCheck(String id, IModel<String> model, IModel<RoundedIconPanel.State> state, IModel<String> stateTitle) {
super(id, model);

this.state = state;
this.stateTitle = stateTitle;

initLayout();
}
Expand All @@ -40,7 +43,7 @@ private void initLayout() {
Label text = new Label(ID_TEXT, getModel());
add(text);

RoundedIconPanel check = new RoundedIconPanel(ID_CHECK, () -> "fa fa-check", state);
RoundedIconPanel check = new RoundedIconPanel(ID_CHECK, () -> "fa fa-check", state, stateTitle);
add(check);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -407,20 +407,10 @@ protected CatalogTile createTileObject(SelectableBean<ObjectType> object) {
t.setDescription(object.getValue().getDescription());
t.setValue(object);

RequestAccess ra = RoleCatalogPanel.this.getModelObject();

RoundedIconPanel.State checkState;
String checkTitle = null;
if (ra.isAssignedToAll(obj.getOid())) {
checkState = RoundedIconPanel.State.FULL;
checkTitle = getString("RoleCatalogPanel.tileFullCheckState");
} else if (ra.isAssignedToNone(obj.getOid())) {
checkState = RoundedIconPanel.State.NONE;
} else {
checkState = RoundedIconPanel.State.PARTIAL;
checkTitle = getString("RoleCatalogPanel.tilePartialCheckState");
}
RoundedIconPanel.State checkState = computeCheckState(obj.getOid());
t.setCheckState(checkState);

String checkTitle = computeCheckTitle(obj.getOid());
t.setCheckTitle(checkTitle);

return t;
Expand Down Expand Up @@ -845,6 +835,32 @@ protected IResource load() {
};
}

private RoundedIconPanel.State computeCheckState(String roleOid) {
RequestAccess ra = getModelObject();
if (ra.isAssignedToAll(roleOid)) {
return RoundedIconPanel.State.FULL;
}

if (ra.isAssignedToNone(roleOid)) {
return RoundedIconPanel.State.NONE;
}

return RoundedIconPanel.State.PARTIAL;
}

private String computeCheckTitle(String roleOid) {
RequestAccess ra = getModelObject();
if (ra.isAssignedToAll(roleOid)) {
return getString("RoleCatalogPanel.tileFullCheckState");
}

if (ra.isAssignedToNone(roleOid)) {
return null;
}

return getString("RoleCatalogPanel.tilePartialCheckState");
}

private List<IColumn<SelectableBean<ObjectType>, String>> createColumns() {
List<IColumn<SelectableBean<ObjectType>, String>> columns = new ArrayList<>();

Expand All @@ -855,18 +871,25 @@ private List<IColumn<SelectableBean<ObjectType>, String>> createColumns() {
protected IModel<IResource> createPreferredImage(IModel<SelectableBean<ObjectType>> model) {
return RoleCatalogPanel.this.createImage(() -> model.getObject().getValue());
}

@Override
protected DisplayType createDisplayType(IModel<SelectableBean<ObjectType>> model) {
ObjectType obj = model.getObject().getValue();
String icon = WebComponentUtil.createDefaultBlackIcon(obj.asPrismContainerValue().getTypeName());

return new DisplayType()
.icon(new IconType()
.cssClass(icon));
}
});
columns.add(new AbstractColumn<>(createStringResource("ObjectType.name")) {
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<ObjectType>>> item, String id, IModel<SelectableBean<ObjectType>> row) {
item.add(AttributeAppender.append("class", "align-middle"));
item.add(new LabelWithCheck(id,
() -> WebComponentUtil.getDisplayNameOrName(row.getObject().getValue().asPrismObject()),
() -> {
RequestAccess ra = getModelObject();
return ra.isAssignedToAll(row.getObject().getValue().getOid()) ? RoundedIconPanel.State.FULL : RoundedIconPanel.State.PARTIAL;
}
));
() -> computeCheckState(row.getObject().getValue().getOid()),
() -> computeCheckTitle(row.getObject().getValue().getOid())));
}
});
columns.add(new PropertyColumn(createStringResource("ObjectType.description"), "value.description"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void populateItem(Item<ICellPopulator<T>> item, String id, IModel<T> mode
item.add(AttributeAppender.append("style", "width: 2rem;"));

RoundedImagePanel panel = new RoundedImagePanel(id, () -> createDisplayType(model), createPreferredImage(model));
panel.add(AttributeAppender.append("style", "height: 2rem;"));
panel.add(AttributeAppender.append("style", "height: 2rem; width: 2rem;"));
item.add(panel);
}

Expand Down

0 comments on commit 65fa3f8

Please sign in to comment.