ISIS-537: changing StandaloneCollectionPanel to use AdditionaLinksPanel (rather than CssMenuPanel); fixing layout for bulk actions and view selector in standalone; ensuring that bootstrap CSS applied to correct element in AdditionalLinksPanel.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9726a179 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9726a179 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9726a179 Branch: refs/heads/ISIS-939 Commit: 9726a179954b595c1cd693124077604e3d92a533 Parents: e20203e Author: Dan Haywood <[email protected]> Authored: Mon Nov 10 21:20:35 2014 +0000 Committer: Dan Haywood <[email protected]> Committed: Mon Nov 10 21:20:35 2014 +0000 ---------------------------------------------------------------------- .../additionallinks/AdditionalLinksPanel.css | 7 +++ .../additionallinks/AdditionalLinksPanel.java | 2 +- .../collection/bulk/BulkActionsLinkFactory.java | 2 +- .../StandaloneCollectionPanel.css | 4 +- .../StandaloneCollectionPanel.html | 6 +-- .../StandaloneCollectionPanel.java | 52 +++++++++++--------- .../components/widgets/cssmenu/CssMenuPanel.css | 2 +- .../wicket/ui/pages/bootstrap-overrides.css | 5 +- .../src/main/java/dom/todo/ToDoItem.layout.json | 2 +- 9 files changed, 49 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.css ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.css index eece3f9..fd9ad27 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.css +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.css @@ -21,3 +21,10 @@ span .fa { padding-right: 2px; } + +.additionalLinkList { + float:left; + margin:0; + padding:0; + list-style:none; +} http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java index 50b9a1b..ec40f09 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java @@ -98,7 +98,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> { link.add(new CssClassAppender(linkAndLabel.getActionIdentifier())); String cssClass = linkAndLabel.getCssClass(); if(cssClass != null) { - item.add(new CssClassAppender(cssClass)); + link.add(new CssClassAppender(cssClass)); } viewTitleLabel.add(new CssClassAppender(StringExtensions.asLowerDashed(linkAndLabel.getLabel()))); link.addOrReplace(viewTitleLabel); http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java index 46f8642..e0534b4 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java @@ -70,7 +70,7 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory { @Override public LinkAndLabel newLink( - final ObjectAdapterMemento serviceAdapterMemento, + final ObjectAdapterMemento objectAdapterMemento, final ObjectAction objectAction, final String linkId, final ActionPromptProvider actionPromptProvider) { http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.css ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.css index eea4518..08ebcec 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.css +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.css @@ -17,7 +17,7 @@ * under the License. */ - +/* .standaloneCollectionPanel { } @@ -40,3 +40,5 @@ div.standaloneCollectionPanel .iconAndTitle { clear:both; } +*/ + http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.html ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.html index 194d8fa..f5f7f94 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.html +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.html @@ -28,19 +28,17 @@ <div wicket:id="actionPromptModalWindow"></div> <div class="standaloneCollectionPanel actionComponentType myBlockContainer panel panel-default"> <div class="iconAndTitle panel-heading actionPanelHeaderNew"> - <div wicket:id="actionName" class="actionName panel-title">[action name]</div> + <span wicket:id="actionName" class="actionName panel-title">[action name]</span> <div class="pull-right"> <div class="btn-group"> - <div class="entityActions" wicket:id="entityActions"></div> + <div wicket:id="additionalLinks"></div> </div> <div class="btn-group"> <span wicket:id="selectorDropdown"/> </div> - </div> - </div> <div wicket:id="collectionContents" class="panel-body"></div> http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java index 0473974..c1206ff 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java @@ -20,6 +20,8 @@ package org.apache.isis.viewer.wicket.ui.components.standalonecollection; import java.util.List; +import com.google.common.base.Function; +import com.google.common.collect.Lists; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.basic.Label; @@ -27,6 +29,7 @@ import org.apache.wicket.model.Model; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.spec.feature.ObjectAction; import org.apache.isis.viewer.wicket.model.common.OnSelectionHandler; +import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.models.ActionModel; import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider; import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel; @@ -34,17 +37,16 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactory; import org.apache.isis.viewer.wicket.ui.ComponentType; import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry; import org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptModalWindow; +import org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel; +import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsHelper; +import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsLinkFactory; +import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsProvider; import org.apache.isis.viewer.wicket.ui.components.collection.count.CollectionCountProvider; import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorHelper; import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorPanel; import org.apache.isis.viewer.wicket.ui.components.collection.selector.CollectionSelectorProvider; -import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsHelper; -import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsLinkFactory; -import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsProvider; import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn; import org.apache.isis.viewer.wicket.ui.components.collectioncontents.multiple.CollectionContentsMultipleViewsPanelFactory; -import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder; -import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel; import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract; public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionModel> @@ -55,24 +57,20 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod private static final String ID_ACTION_NAME = "actionName"; private static final String ID_ACTION_PROMPT_MODAL_WINDOW = "actionPromptModalWindow"; - private static final String ID_ENTITY_ACTIONS = "entityActions"; + private static final String ID_ADDITIONAL_LINKS = "additionalLinks"; + private static final String ID_ADDITIONAL_LINK = "additionalLink"; private static final String ID_SELECTOR_DROPDOWN = "selectorDropdown"; - private CollectionSelectorPanel selectorDropdownPanel; + private final ActionPromptModalWindow actionPromptModalWindow; + private final CollectionSelectorPanel selectorDropdownPanel; private final BulkActionsHelper bulkActionsHelper; - public StandaloneCollectionPanel(final String id, final EntityCollectionModel entityCollectionModel) { - super(id, entityCollectionModel); - buildGui(entityCollectionModel); - - bulkActionsHelper = new BulkActionsHelper(entityCollectionModel); - } - /** * note that the bulk actions components are added in {@link #configureBulkActions(org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn)}. */ - private void buildGui(final EntityCollectionModel entityCollectionModel) { + public StandaloneCollectionPanel(final String id, final EntityCollectionModel entityCollectionModel) { + super(id, entityCollectionModel); ActionModel actionModel = entityCollectionModel.getActionModelHint(); ObjectAction action = actionModel.getActionMemento().getAction(); @@ -89,9 +87,9 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod if (componentFactories.size() <= 1) { permanentlyHide(ID_SELECTOR_DROPDOWN); + this.selectorDropdownPanel = null; } else { - CollectionSelectorPanel selectorDropdownPanel; - selectorDropdownPanel = new CollectionSelectorPanel(ID_SELECTOR_DROPDOWN, entityCollectionModel, new CollectionContentsMultipleViewsPanelFactory()); + CollectionSelectorPanel selectorDropdownPanel = new CollectionSelectorPanel(ID_SELECTOR_DROPDOWN, entityCollectionModel, new CollectionContentsMultipleViewsPanelFactory()); final Model<ComponentFactory> componentFactoryModel = new Model<>(); @@ -108,11 +106,12 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod final ComponentFactoryRegistry componentFactoryRegistry = getComponentFactoryRegistry(); componentFactoryRegistry.addOrReplaceComponent(this, ComponentType.COLLECTION_CONTENTS, entityCollectionModel); + + bulkActionsHelper = new BulkActionsHelper(entityCollectionModel); } //region > ActionPromptModalWindowProvider - private ActionPromptModalWindow actionPromptModalWindow; public ActionPromptModalWindow getActionPrompt() { return ActionPromptModalWindow.getActionPromptModalWindowIfEnabled(actionPromptModalWindow); } @@ -158,15 +157,24 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod final List<ObjectAction> bulkActions = bulkActionsHelper.getBulkActions(); - final CssMenuBuilder cssMenuBuilder = - new CssMenuBuilder(null, bulkActions, linkFactory, this, null); - final CssMenuPanel cssMenuPanel = cssMenuBuilder.buildPanel(ID_ENTITY_ACTIONS, "Actions"); + List<LinkAndLabel> links = Lists.transform(bulkActions, new Function<ObjectAction, LinkAndLabel>(){ + @Override + public LinkAndLabel apply(ObjectAction objectAction) { + return linkFactory.newLink(null, objectAction, ID_ADDITIONAL_LINK, StandaloneCollectionPanel.this); + } + }); + + AdditionalLinksPanel additionalLinks = new AdditionalLinksPanel(ID_ADDITIONAL_LINKS, links); + addOrReplace(additionalLinks); - addOrReplace(cssMenuPanel); } + //endregion + + + //region > CollectionSelectorProvider @Override http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css index e4228f5..c858633 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.css @@ -230,5 +230,5 @@ .additionalLinkList li { float:left; margin-right:10px; - margin-bottom: 2px; +/* margin-bottom: 2px;*/ } http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css index cb7ed79..5a65da7 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css @@ -159,6 +159,7 @@ div.label-left .choicesPlaceholder { resize: none; } -.entityCollectionsPanel .panel-heading { +.entityCollectionsPanel .panel-heading, +.standaloneCollectionPanel .panel-heading { padding-bottom: 15px; -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/isis/blob/9726a179/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json ---------------------------------------------------------------------- diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json index 540b13f..69944d2 100644 --- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json +++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json @@ -152,7 +152,7 @@ "cssClassFa": { "value": "fa fa-plus-square" } }, "remove": { - "cssClass": { "value": "x-caution" }, + "cssClass": { "value": "x-caution btn-danger" }, "cssClassFa": { "value": "fa fa-minus-square" } } },
