http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java index bc25b2c..8c44e5a 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanel.java @@ -21,46 +21,21 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.string; import java.util.List; -import com.google.common.base.Function; -import com.google.common.base.Strings; import com.google.common.collect.Lists; -import org.apache.wicket.Session; -import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.Component; +import org.apache.wicket.MarkupContainer; import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.FormComponentLabel; -import org.apache.wicket.markup.html.link.AbstractLink; -import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; -import org.apache.isis.applib.annotation.Where; -import org.apache.isis.applib.filter.Filter; -import org.apache.isis.applib.filter.Filters; -import org.apache.isis.core.commons.authentication.AuthenticationSession; -import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider; -import org.apache.isis.core.commons.lang.StringUtils; -import org.apache.isis.core.metamodel.adapter.ObjectAdapter; -import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking; -import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet; -import org.apache.isis.core.metamodel.spec.ActionType; -import org.apache.isis.core.metamodel.spec.ObjectSpecification; -import org.apache.isis.core.metamodel.spec.feature.ObjectAction; -import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters; -import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation; -import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation; -import org.apache.isis.core.metamodel.spec.feature.ObjectActionContainer.Contributed; import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; -import org.apache.isis.viewer.wicket.model.links.LinksProvider; import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento; import org.apache.isis.viewer.wicket.model.models.EntityModel; import org.apache.isis.viewer.wicket.model.models.ScalarModel; -import org.apache.isis.viewer.wicket.ui.components.collection.CollectionPanel; -import org.apache.isis.viewer.wicket.ui.components.entity.EntityActionLinkFactory; +import org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel; +import org.apache.isis.viewer.wicket.ui.components.additionallinks.EntityActionUtil; import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldParseableAbstract; -import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuLinkFactory; -import org.apache.isis.viewer.wicket.ui.selector.links.LinksSelectorPanelAbstract; -import org.apache.isis.viewer.wicket.ui.util.CssClassAppender; +import org.apache.isis.viewer.wicket.ui.util.Components; /** * Panel for rendering scalars of type {@link String}. @@ -70,81 +45,15 @@ public class StringPanel extends ScalarPanelTextFieldParseableAbstract { private static final long serialVersionUID = 1L; private static final String ID_SCALAR_VALUE = "scalarValue"; - private static final String ID_ADDITIONAL_LINKS = "additionalLinks"; - private static final String ID_ADDITIONAL_LINK_LIST = "additionalLinkList"; - public static final String ID_ADDITIONAL_LINK = "additionalLink"; - private static final String ID_ADDITIONAL_LINK_ITEM = "additionalLinkItem"; - private static final String ID_ADDITIONAL_LINK_TITLE = "additionalLinkTitle"; public StringPanel(final String id, final ScalarModel scalarModel) { super(id, ID_SCALAR_VALUE, scalarModel); } - - @Override protected void addSemantics() { super.addSemantics(); } - @Override - protected FormComponentLabel addComponentForRegular() { - final FormComponentLabel fcl = super.addComponentForRegular(); - - final List<LinkAndLabel> entityActions; - if(scalarModel.getKind() == ScalarModel.Kind.PROPERTY) { - final ObjectAdapterMemento parentMemento = scalarModel.getParentObjectAdapterMemento(); - final EntityModel parentEntityModel = new EntityModel(parentMemento); - entityActions = CollectionPanel.entityActions(parentEntityModel, scalarModel.getPropertyMemento().getProperty()); - } else { - entityActions = null; - } - addAdditionalLinks(fcl, entityActions); - - return fcl; - } - - protected void addAdditionalLinks(FormComponentLabel fcl, List<LinkAndLabel> links) { - if(links == null || links.isEmpty()) { - permanentlyHide(ID_ADDITIONAL_LINKS); - return; - } - links = Lists.newArrayList(links); // copy, to serialize any lazy evaluation - - final WebMarkupContainer views = new WebMarkupContainer(ID_ADDITIONAL_LINKS); - - final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST); - - views.addOrReplace(container); - views.setOutputMarkupId(true); - - this.setOutputMarkupId(true); - - final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, links) { - - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(ListItem<LinkAndLabel> item) { - final LinkAndLabel linkAndLabel = item.getModelObject(); - - final AbstractLink link = linkAndLabel.getLink(); - - Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel()); - String disabledReasonIfAny = linkAndLabel.getDisabledReasonIfAny(); - if(disabledReasonIfAny != null) { - viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny)); - } - viewTitleLabel.add(new CssClassAppender(StringUtils.toLowerDashed(linkAndLabel.getLabel()))); - link.addOrReplace(viewTitleLabel); - item.addOrReplace(link); - } - }; - container.addOrReplace(listView); - //addOrReplace(views); - - fcl.addOrReplace(views); - } - }
http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.html ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.html index aa64850..70183f6 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.html +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/value/ValuePanel.html @@ -31,6 +31,7 @@ <span class="scalarValue"> <input type="text" name="scalarValue" wicket:id="scalarValue" /> <span wicket:id="feedback"></span> + <span wicket:id="additionalLinks"/> </span> </label> <label wicket:id="scalarIfCompact"></label> http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html index 5beab23..c894934 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.html @@ -36,6 +36,7 @@ <span class="scalarValue"> <input wicket:id="valueId" type="hidden" class="choices" /> <span wicket:id="feedback"></span> + <span wicket:id="additionalLinks"/> </span> </label> http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java index c268e7d..79a9b29 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java @@ -82,9 +82,11 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract { // ScalarPan if(getModel().isRequired()) { labelIfRegular.add(new CssClassAppender("mandatory")); } + addOrReplace(labelIfRegular); - - labelIfRegular.addOrReplace(new ComponentFeedbackPanel(ID_FEEDBACK, valueField)); + addFeedbackTo(labelIfRegular, valueField); + addAdditionalLinksTo(labelIfRegular); + return labelIfRegular; } http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css index 2183ec4..efd8544 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css @@ -825,5 +825,10 @@ div#jGrowl div.jGrowl-closer { .properties .property .additionalLinkList { float:none; - margin-top: 10px; -} \ No newline at end of file + padding-top: 5px; + padding-bottom: 20px; +} + +.properties .property .isisBlobPanel .additionalLinkList { + padding-top: 0px; +} http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.html ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.html index fad408f..b61bc8d 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.html +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.html @@ -31,15 +31,18 @@ </li> </ul> </span> - <span wicket:id="additionalLinks" class="additionalLinks"> - <ul wicket:id="additionalLinkList" class="additionalLinkList"> - <li wicket:id="additionalLinkItem" class="additionalLinkItem"> - <a href="#" wicket:id="additionalLink"> - <span wicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span> + <span wicket:id="additionalLinks"/> + <!-- + <span xwicket:id="additionalLinks" class="additionalLinks"> + <ul xwicket:id="additionalLinkList" class="additionalLinkList"> + <li xwicket:id="additionalLinkItem" class="additionalLinkItem"> + <a href="#" xwicket:id="additionalLink"> + <span xwicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span> </a> </li> </ul> </span> + --> <br class="clear"/> http://git-wip-us.apache.org/repos/asf/isis/blob/c3addb51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java ---------------------------------------------------------------------- diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java index 87e0db1..c21a016 100644 --- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java +++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/selector/links/LinksSelectorPanelAbstract.java @@ -28,6 +28,7 @@ import com.google.common.collect.Lists; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; +import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.behavior.AttributeAppender; @@ -45,8 +46,10 @@ import org.apache.isis.viewer.wicket.model.links.LinkAndLabel; import org.apache.isis.viewer.wicket.model.links.LinksProvider; import org.apache.isis.viewer.wicket.ui.ComponentFactory; import org.apache.isis.viewer.wicket.ui.ComponentType; +import org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel; import org.apache.isis.viewer.wicket.ui.components.collectioncontents.unresolved.CollectionContentsAsUnresolvedPanelFactory; import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract; +import org.apache.isis.viewer.wicket.ui.util.Components; import org.apache.isis.viewer.wicket.ui.util.CssClassAppender; public abstract class LinksSelectorPanelAbstract<T extends IModel<?>> extends PanelAbstract<T> { @@ -89,39 +92,54 @@ public abstract class LinksSelectorPanelAbstract<T extends IModel<?>> extends Pa LinksProvider linksProvider = (LinksProvider) model; List<LinkAndLabel> links = linksProvider.getLinks(); - final WebMarkupContainer views = new WebMarkupContainer(ID_ADDITIONAL_LINKS); - - final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST); - - views.addOrReplace(container); - views.setOutputMarkupId(true); - - this.setOutputMarkupId(true); - - final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, links) { - - private static final long serialVersionUID = 1L; + addAdditionalLinks(this, links); + } - @Override - protected void populateItem(ListItem<LinkAndLabel> item) { - final LinkAndLabel linkAndLabel = item.getModelObject(); - - final AbstractLink link = linkAndLabel.getLink(); - - Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel()); - String disabledReasonIfAny = linkAndLabel.getDisabledReasonIfAny(); - if(disabledReasonIfAny != null) { - viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny)); - } - viewTitleLabel.add(new CssClassAppender(StringUtils.toLowerDashed(linkAndLabel.getLabel()))); - link.addOrReplace(viewTitleLabel); - item.addOrReplace(link); - } - }; - container.addOrReplace(listView); - addOrReplace(views); + protected void addAdditionalLinks(MarkupContainer markupContainer, List<LinkAndLabel> links) { + if(links == null || links.isEmpty()) { + Components.permanentlyHide(markupContainer, ID_ADDITIONAL_LINKS); + return; + } + links = Lists.newArrayList(links); // copy, to serialize any lazy evaluation + + final WebMarkupContainer views = new AdditionalLinksPanel(ID_ADDITIONAL_LINKS, links); + markupContainer.addOrReplace(views); } +// protected void addAdditionalLinks(MarkupContainer markupContainer, List<LinkAndLabel> links) { +// final WebMarkupContainer views = new WebMarkupContainer(ID_ADDITIONAL_LINKS); +// +// final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST); +// +// views.addOrReplace(container); +// views.setOutputMarkupId(true); +// +// this.setOutputMarkupId(true); +// +// final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, links) { +// +// private static final long serialVersionUID = 1L; +// +// @Override +// protected void populateItem(ListItem<LinkAndLabel> item) { +// final LinkAndLabel linkAndLabel = item.getModelObject(); +// +// final AbstractLink link = linkAndLabel.getLink(); +// +// Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel()); +// String disabledReasonIfAny = linkAndLabel.getDisabledReasonIfAny(); +// if(disabledReasonIfAny != null) { +// viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny)); +// } +// viewTitleLabel.add(new CssClassAppender(StringUtils.toLowerDashed(linkAndLabel.getLabel()))); +// link.addOrReplace(viewTitleLabel); +// item.addOrReplace(link); +// } +// }; +// container.addOrReplace(listView); +// markupContainer.addOrReplace(views); +// } + private void addUnderlyingViews(final String underlyingIdPrefix, final T model, final ComponentFactory factory) { final List<ComponentFactory> componentFactories = findOtherComponentFactories(model, factory);
