Skip to content

Commit

Permalink
CAUSEWAY-3815: CSS fix; also force new tab when collection is standalone
Browse files Browse the repository at this point in the history
  • Loading branch information
andi-huber committed Nov 26, 2024
1 parent 18f5a57 commit 053458f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -353,10 +353,6 @@
padding-left: 39px;
}

.additionalLinkListDropDown .dropdown-menu > li > a {
padding-left: 0px;
}

.dropdown-menu > li > a.btn.btn-warning {
text-align: start;
border-radius: 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ private void addActionsColumnIfRequired(
final List<GenericColumn> columns) {
var collectionModel = getModel();
var memberIdentifier = collectionModel.getIdentifier();
ActionColumn.create(memberIdentifier, elementType).ifPresent(columns::add);
ActionColumn.create(memberIdentifier, elementType, collectionModel.getVariant()).ifPresent(columns::add);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
import org.apache.causeway.viewer.wicket.model.models.ActionModel;
import org.apache.causeway.viewer.wicket.model.models.ActionModel.ColumnActionModifier;
import org.apache.causeway.viewer.wicket.model.models.EntityCollectionModel.Variant;
import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
import org.apache.causeway.viewer.wicket.model.models.interaction.coll.DataRowWkt;
import org.apache.causeway.viewer.wicket.ui.components.actionlinks.entityactions.ActionLinksPanel;
Expand All @@ -42,26 +43,30 @@ public final class ActionColumn

public static Optional<ActionColumn> create(
@NonNull final Identifier featureId,
@NonNull final ObjectSpecification elementType) {
@NonNull final ObjectSpecification elementType,
@NonNull final Variant collectionVariant) {
var wktConfig = elementType.getMetaModelContext().getConfiguration().getViewer().getWicket();
if(!wktConfig.isActionColumnEnabled()) return Optional.empty();

var actions = elementType.streamActionsForColumnRendering(featureId)
.collect(Can.toCan());
if(actions.isEmpty()) return Optional.empty();

var wktConfig = elementType.getMetaModelContext().getConfiguration().getViewer().getWicket();
return wktConfig.isActionColumnEnabled()
? Optional.of(new ActionColumn(elementType, actions))
: Optional.empty();
return Optional.of(new ActionColumn(elementType, actions, collectionVariant));
}

private final Can<String> actionIds;
private transient Can<ObjectAction> actions;
private final Variant collectionVariant;

private ActionColumn(
final ObjectSpecification elementType,
final Can<ObjectAction> actionsForColumnRendering) {
final Can<ObjectAction> actionsForColumnRendering,
final Variant collectionVariant) {
super(elementType, "Actions");
this.actions = actionsForColumnRendering;
this.actionIds = actions.map(ObjectAction::getId);
this.collectionVariant = collectionVariant;
}

@Override
Expand All @@ -88,6 +93,10 @@ protected Component createCellComponent(
private ColumnActionModifier determineColumnActionModifier(
final ObjectAction action,
final ObjectSpecification collectionElementType) {

// refreshing of standalone collections currently not supported
if(collectionVariant.isStandalone()) return ColumnActionModifier.FORCE_NEW_BROWSER_WINDOW;

return action.getElementType().isVoid()
|| action.getElementType().isOfType(collectionElementType)
? ColumnActionModifier.FORCE_STAY_ON_PAGE
Expand Down

0 comments on commit 053458f

Please sign in to comment.