You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/11/27 18:06:13 UTC
[01/15] isis git commit: ISIS-537: remove space between label and
mandatory indicator (so that indicator doesn't overflow onto next row by
itself)
Repository: isis
Updated Branches:
refs/heads/master d099b31f5 -> 3969f34c5
ISIS-537: remove space between label and mandatory indicator (so that indicator doesn't overflow onto next row by itself)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/8b7577a7
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/8b7577a7
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/8b7577a7
Branch: refs/heads/master
Commit: 8b7577a77083d45d740f85a138e1c6e99fb56cfa
Parents: d099b31
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 05:58:40 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 05:58:40 2014 +0000
----------------------------------------------------------------------
.../java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/8b7577a7/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 18def10..78b9e82 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
@@ -19,7 +19,7 @@
.mandatory.scalarName:after,
.mandatory.collectionName:after {
- content: " *";
+ content: "*";
font-weight:bold;
color: #c2270d;
}
[02/15] isis git commit: ISIS-537: fix markup for right-hand column
panel-heading (should be span, not div)
Posted by da...@apache.org.
ISIS-537: fix markup for right-hand column panel-heading (should be span, not div)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e377ec8e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e377ec8e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e377ec8e
Branch: refs/heads/master
Commit: e377ec8e9eebb4c8a2bd451c4c485e7a96563f31
Parents: 8b7577a
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 06:03:59 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 06:03:59 2014 +0000
----------------------------------------------------------------------
.../ui/components/entity/properties/EntityPropertiesPanel.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e377ec8e/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index 1de3d99..6306819 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -78,7 +78,7 @@
<fieldset wicket:id="memberGroup" class="memberGroup myBlockContainer">
<div class="panel panel-default">
<div class="panel-heading">
- <div class="panel-title" wicket:id="memberGroupName" >[group name]</div>
+ <span wicket:id="memberGroupName" class="panel-title">[group name]</span>
<div class="additionalLinks pull-right">
<div class="btn-group">
<div wicket:id="additionalLinks"></div>
[11/15] isis git commit: ISS-537: now renders actions to the right if
annotated as such.
Posted by da...@apache.org.
ISS-537: now renders actions to the right if annotated as such.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fd7be2a1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fd7be2a1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fd7be2a1
Branch: refs/heads/master
Commit: fd7be2a1aa68535def1856b5b28e826f51b511d0
Parents: 6393ac9
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Nov 27 13:35:59 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Nov 27 13:35:59 2014 +0000
----------------------------------------------------------------------
.../viewer/wicket/model/links/LinkAndLabel.java | 12 +++++
.../AdditionalLinksAsDropDownPanel.html | 6 ++-
.../AdditionalLinksAsInlineListPanel.html | 37 ---------------
.../AdditionalLinksAsInlineListPanel.java | 32 -------------
.../AdditionalLinksAsListInlinePanel.html | 37 +++++++++++++++
.../AdditionalLinksAsListInlinePanel.java | 32 +++++++++++++
.../additionallinks/AdditionalLinksPanel.java | 2 +-
.../components/scalars/ScalarPanelAbstract.html | 3 +-
.../components/scalars/ScalarPanelAbstract.java | 47 +++++++++++---------
.../scalars/ScalarPanelTextFieldAbstract.java | 4 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.html | 3 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 5 +--
.../scalars/primitive/BooleanPanel.html | 3 +-
.../scalars/primitive/BooleanPanel.java | 7 +--
.../scalars/reference/ReferencePanel.html | 3 +-
.../scalars/reference/ReferencePanel.java | 10 ++---
.../valuechoices/ValueChoicesSelect2Panel.html | 3 +-
.../valuechoices/ValueChoicesSelect2Panel.java | 4 +-
.../wicket/ui/pages/bootstrap-overrides.css | 8 ++++
19 files changed, 142 insertions(+), 116 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index 37a4704..0c73f23 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -20,6 +20,7 @@ package org.apache.isis.viewer.wicket.model.links;
import java.io.Serializable;
+import com.google.common.base.Predicate;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.isis.applib.annotation.ActionLayout;
@@ -100,4 +101,15 @@ public class LinkAndLabel implements Serializable {
public ActionLayout.Position getPosition() {
return position;
}
+
+ public static class Predicates {
+ public static Predicate<LinkAndLabel> positioned(final ActionLayout.Position position) {
+ return new Predicate<LinkAndLabel>() {
+ @Override
+ public boolean apply(LinkAndLabel input) {
+ return input.getPosition() == position;
+ }
+ };
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
index 0b10479..3667116 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
@@ -24,9 +24,11 @@
lang="en">
<body>
<wicket:panel>
- <div wicket:id="additionalLinkList" class="additionalLinkList">
+ <div wicket:id="additionalLinkList" class="additionalLinkList additionalLinkListDropDown">
<div class="btn-group">
- <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button>
+ <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
+ <span class="fa fa-ellipsis-v"></span>
+ </button>
<ul class="dropdown-menu" role="menu">
<li wicket:id="additionalLinkItem" class="additionalLinkItem">
<a href="#" wicket:id="additionalLink">
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html
deleted file mode 100644
index 3d3fb81..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
- xml:lang="en"
- lang="en">
- <body>
- <wicket:panel>
- <ul wicket:id="additionalLinkList" class="additionalLinkList list-unstyled list-inline">
- <li wicket:id="additionalLinkItem" class="additionalLinkItem">
- <a href="#" wicket:id="additionalLink" class="btn btn-sm btn-primary">
- <span wicket:id="additionalLinkFontAwesome"></span>
- <span wicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span>
- </a>
- </li>
- </ul>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java
deleted file mode 100644
index caf4964..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.components.additionallinks;
-
-import java.util.List;
-import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
-
-public class AdditionalLinksAsInlineListPanel extends AdditionalLinksPanel {
-
- private static final long serialVersionUID = 1L;
-
- public AdditionalLinksAsInlineListPanel(String id, List<LinkAndLabel> links) {
- super(id, links);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.html
new file mode 100644
index 0000000..9fcacee
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
+ xml:lang="en"
+ lang="en">
+ <body>
+ <wicket:panel>
+ <ul wicket:id="additionalLinkList" class="additionalLinkList additionalLinkListInline list-unstyled list-inline">
+ <li wicket:id="additionalLinkItem" class="additionalLinkItem">
+ <a href="#" wicket:id="additionalLink" class="btn btn-sm btn-default">
+ <span wicket:id="additionalLinkFontAwesome"></span>
+ <span wicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span>
+ </a>
+ </li>
+ </ul>
+ </wicket:panel>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.java
new file mode 100644
index 0000000..bde760f
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsListInlinePanel.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.ui.components.additionallinks;
+
+import java.util.List;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
+
+public class AdditionalLinksAsListInlinePanel extends AdditionalLinksPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ public AdditionalLinksAsListInlinePanel(String id, List<LinkAndLabel> links) {
+ super(id, links);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/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 b288c2d..81d1954 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
@@ -51,7 +51,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
INLINE_LIST {
@Override
AdditionalLinksPanel newPanel(String id, List<LinkAndLabel> links) {
- return new AdditionalLinksAsInlineListPanel(id, links);
+ return new AdditionalLinksAsListInlinePanel(id, links);
}
},
DROPDOWN {
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
index 3a2d352..d4eee10 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
@@ -30,8 +30,9 @@
<span class="scalarValueWrapper">
<wicket:child/>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinks"></span>
+ <span wicket:id="additionalLinksBelow"></span>
</span>
+ <span wicket:id="additionalLinksRight"></span>
</div>
<wicket:container wicket:id="scalarIfCompact"></wicket:container>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 3aeb759..18ec1f8 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -22,6 +22,7 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
import java.util.List;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -36,7 +37,6 @@ import org.apache.wicket.model.Model;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.actions.layout.ActionLayoutFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacet;
import org.apache.isis.core.runtime.system.DeploymentType;
@@ -44,6 +44,7 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+import org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel.ScalarModelProvider;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
@@ -66,8 +67,9 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected static final String ID_SCALAR_IF_COMPACT = "scalarIfCompact";
- protected static final String ID_ADDITIONAL_LINKS = "additionalLinks";
protected static final String ID_ADDITIONAL_LINK = "additionalLink";
+ protected static final String ID_ADDITIONAL_LINKS_BELOW = "additionalLinksBelow";
+ protected static final String ID_ADDITIONAL_LINKS_RIGHT = "additionalLinksRight";
private static final String ID_FEEDBACK = "feedback";
@@ -318,19 +320,19 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
*/
protected void addPositioningCssTo(final MarkupContainer markupContainer, final List<LinkAndLabel> entityActionLinks) {
CssClassAppender.appendCssClassTo(markupContainer, determineLabelAtCss(getModel()));
- boolean actionsPositionedOnRight = hasActionsPositioned(entityActionLinks, ActionLayout.Position.RIGHT);
- if(actionsPositionedOnRight) {
- CssClassAppender.appendCssClassTo(markupContainer, "actions-right");
- }
+ CssClassAppender.appendCssClassTo(markupContainer, determineActionLayoutPositioningCss(entityActionLinks));
}
- private static boolean hasActionsPositioned(final List<LinkAndLabel> entityActionLinks, final ActionLayout.Position position) {
- for (LinkAndLabel entityActionLink : entityActionLinks) {
- if(entityActionLink.getPosition() == position) {
- return true;
- }
- }
- return false;
+ protected void addEntityActionLinksBelowAndRight(final MarkupContainer labelIfRegular, final List<LinkAndLabel> entityActions) {
+ final List<LinkAndLabel> entityActionsBelow = positioned(entityActions, ActionLayout.Position.BELOW);
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS_BELOW, entityActionsBelow, AdditionalLinksPanel.Style.INLINE_LIST);
+
+ final List<LinkAndLabel> entityActionsRight = positioned(entityActions, ActionLayout.Position.RIGHT);
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS_RIGHT, entityActionsRight, AdditionalLinksPanel.Style.DROPDOWN);
+ }
+
+ private static List<LinkAndLabel> positioned(final List<LinkAndLabel> entityActionLinks, final ActionLayout.Position position) {
+ return Lists.newArrayList(Iterables.filter(entityActionLinks, LinkAndLabel.Predicates.positioned(position)));
}
private static String determineLabelAtCss(ScalarModel model) {
@@ -348,17 +350,18 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
return "label-left";
}
- private static String determineActionLayoutCss(ScalarModel model) {
- final ActionLayoutFacet facet = model.getFacet(ActionLayoutFacet.class);
- if (facet != null) {
- switch (facet.position()) {
- case BELOW:
- return "action-below";
- case RIGHT:
- return "action-right";
+ private static String determineActionLayoutPositioningCss(List<LinkAndLabel> entityActionLinks) {
+ boolean actionsPositionedOnRight = hasActionsPositionedOn(entityActionLinks, ActionLayout.Position.RIGHT);
+ return actionsPositionedOnRight ? "actions-right" : null;
+ }
+
+ private static boolean hasActionsPositionedOn(final List<LinkAndLabel> entityActionLinks, final ActionLayout.Position position) {
+ for (LinkAndLabel entityActionLink : entityActionLinks) {
+ if(entityActionLink.getPosition() == position) {
+ return true;
}
}
- return null;
+ return false;
}
// //////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 5b65910..1e1ba98 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -128,8 +128,8 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
addFeedbackTo(labelIfRegular, textField);
- // ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+ // ... add entity links to panel (below and to right)
+ addEntityActionLinksBelowAndRight(labelIfRegular, entityActions);
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
index 0320af1..e7119d7 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
@@ -36,8 +36,9 @@
<span class="fileName" wicket:id="fileName"></span>
</span>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinks"></span>
+ <span wicket:id="additionalLinksBelow"></span>
</span>
+ <span wicket:id="additionalLinksRight"></span>
</div>
<span wicket:id="scalarIfCompact">
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index 3a56411..f78b265 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -52,7 +52,6 @@ import org.apache.isis.core.commons.lang.CloseableExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-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.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
@@ -117,8 +116,8 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
addOrReplace(labelIfRegular);
addFeedbackTo(labelIfRegular, fileUploadField);
- // ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+ // ... add entity links to panel (below and to right)
+ addEntityActionLinksBelowAndRight(labelIfRegular, entityActions);
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
index 146714b..66eb735 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
@@ -30,8 +30,9 @@
<span class="scalarValueWrapper">
<input type="checkbox" name="scalarValue" class="form-control scalarValue" wicket:id="scalarValue" />
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinks"></span>
+ <span wicket:id="additionalLinksBelow"></span>
</span>
+ <span wicket:id="additionalLinksRight"></span>
</div>
<input type="checkbox" wicket:id="scalarIfCompact" />
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index efba774..71d2508 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -34,7 +34,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-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.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
@@ -91,12 +90,14 @@ public class BooleanPanel extends ScalarPanelAbstract {
addOrReplace(labelIfRegular);
addFeedbackTo(labelIfRegular, checkBox);
- // ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+ // ... add entity links to panel (below and to right)
+ addEntityActionLinksBelowAndRight(labelIfRegular, entityActions);
return labelIfRegular;
}
+
+
/**
* Mandatory hook method to build the component to render the model when in
* {@link Rendering#COMPACT compact} format.
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
index 41ec493..680ec67 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
@@ -41,8 +41,9 @@
</div>
</span>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinks"></span>
+ <span wicket:id="additionalLinksBelow"></span>
</span>
+ <span wicket:id="additionalLinksRight"></span>
</div>
<div wicket:id="scalarIfCompact" class="scalarIfCompact">
<div class="scalarValue">
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index be7921f..0a9e692 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -20,12 +20,10 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.reference;
import java.util.List;
-
import com.google.common.collect.Lists;
import com.vaynberg.wicket.select2.ChoiceProvider;
import com.vaynberg.wicket.select2.Select2Choice;
import com.vaynberg.wicket.select2.Settings;
-
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -37,7 +35,6 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
-
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.object.autocomplete.AutoCompleteFacet;
@@ -49,13 +46,12 @@ import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModelWithPending.Util;
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.additionallinks.EntityActionUtil;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.ObjectAdapterMementoProviderAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
-import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2ChoiceUtil;
import org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink.EntityLinkSimplePanel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2ChoiceUtil;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
@@ -139,8 +135,8 @@ public class ReferencePanel extends ScalarPanelAbstract {
addFeedbackTo(labelIfRegular, entityLink);
- // ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+ // ... add entity links to panel (below and to right)
+ addEntityActionLinksBelowAndRight(labelIfRegular, entityActions);
// add semantics
entityLink.setRequired(getModel().isRequired());
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/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 6722fb2..81cbc9e 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
@@ -32,8 +32,9 @@
<input wicket:id="scalarValue" type="hidden" class="choices form-control input-sm select2-remote" style="width: 99.8%;"/>
</div>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinks"></span>
+ <span wicket:id="additionalLinksBelow"></span>
</div>
+ <span wicket:id="additionalLinksRight"></span>
</div>
<span wicket:id="scalarIfCompact"></span>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/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 5066334..699865b 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
@@ -94,8 +94,8 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
addFeedbackTo(labelIfRegular, select2Field);
- // ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+ // ... add entity links to panel (below and to right)
+ addEntityActionLinksBelowAndRight(labelIfRegular, entityActions);
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd7be2a1/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 3010db3..2c68090 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
@@ -134,6 +134,12 @@ div.label-left.actions-right .scalarValueWrapper {
width: 62%;
}
+.actions-right .additionalLinkListDropDown {
+ float:right;
+ /*width: 3%;*/
+}
+
+
div.label-top .scalarValueWrapper,
div.label-none .scalarValueWrapper {
width: 99%;
@@ -218,3 +224,5 @@ div.label-left .choicesPlaceholder {
#body {
padding-top: 20px;
}
+
+
[06/15] isis git commit: ISIS-537: AdditionalLinksPanel now supports
being rendered either as inline-list (the original) or as a drop-down.
Instantiated through factory method throughout.
Posted by da...@apache.org.
ISIS-537: AdditionalLinksPanel now supports being rendered either as inline-list (the original) or as a drop-down. Instantiated through factory method throughout.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/36efbfb3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/36efbfb3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/36efbfb3
Branch: refs/heads/master
Commit: 36efbfb3ee4d5ef4eecb431a11bc8ba7dbcafb45
Parents: e183bbf
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 16:24:28 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 16:24:28 2014 +0000
----------------------------------------------------------------------
.../AdditionalLinksAsDropDownPanel.html | 42 ++++++++++++++++++++
.../AdditionalLinksAsDropDownPanel.java | 32 +++++++++++++++
.../AdditionalLinksAsInlineListPanel.html | 37 +++++++++++++++++
.../AdditionalLinksAsInlineListPanel.java | 32 +++++++++++++++
.../additionallinks/AdditionalLinksPanel.html | 37 -----------------
.../additionallinks/AdditionalLinksPanel.java | 31 +++++++++++----
.../collections/EntityCollectionsPanel.java | 3 +-
.../entity/properties/EntityPropertiesForm.java | 6 ++-
.../links/EntityLinksSelectorPanel.java | 19 +++++----
.../components/scalars/ScalarPanelAbstract.java | 2 +-
.../StandaloneCollectionPanel.java | 10 ++---
11 files changed, 189 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
new file mode 100644
index 0000000..0b10479
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
+ xml:lang="en"
+ lang="en">
+ <body>
+ <wicket:panel>
+ <div wicket:id="additionalLinkList" class="additionalLinkList">
+ <div class="btn-group">
+ <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button>
+ <ul class="dropdown-menu" role="menu">
+ <li wicket:id="additionalLinkItem" class="additionalLinkItem">
+ <a href="#" wicket:id="additionalLink">
+ <span wicket:id="additionalLinkFontAwesome"></span>
+ <span wicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </wicket:panel>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.java
new file mode 100644
index 0000000..3e971eb
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsDropDownPanel.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.ui.components.additionallinks;
+
+import java.util.List;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
+
+public class AdditionalLinksAsDropDownPanel extends AdditionalLinksPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ public AdditionalLinksAsDropDownPanel(String id, List<LinkAndLabel> links) {
+ super(id, links);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html
new file mode 100644
index 0000000..3d3fb81
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
+ xml:lang="en"
+ lang="en">
+ <body>
+ <wicket:panel>
+ <ul wicket:id="additionalLinkList" class="additionalLinkList list-unstyled list-inline">
+ <li wicket:id="additionalLinkItem" class="additionalLinkItem">
+ <a href="#" wicket:id="additionalLink" class="btn btn-sm btn-primary">
+ <span wicket:id="additionalLinkFontAwesome"></span>
+ <span wicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span>
+ </a>
+ </li>
+ </ul>
+ </wicket:panel>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java
new file mode 100644
index 0000000..caf4964
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksAsInlineListPanel.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.ui.components.additionallinks;
+
+import java.util.List;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
+
+public class AdditionalLinksAsInlineListPanel extends AdditionalLinksPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ public AdditionalLinksAsInlineListPanel(String id, List<LinkAndLabel> links) {
+ super(id, links);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.html
deleted file mode 100644
index 3d3fb81..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"
- xml:lang="en"
- lang="en">
- <body>
- <wicket:panel>
- <ul wicket:id="additionalLinkList" class="additionalLinkList list-unstyled list-inline">
- <li wicket:id="additionalLinkItem" class="additionalLinkItem">
- <a href="#" wicket:id="additionalLink" class="btn btn-sm btn-primary">
- <span wicket:id="additionalLinkFontAwesome"></span>
- <span wicket:id="additionalLinkTitle" class="additionalLinkItem">[link title]</span>
- </a>
- </li>
- </ul>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/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 dd32ddb..b288c2d 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
@@ -38,9 +38,6 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-/**
- * Panel for rendering scalars of type {@link String}.
- */
public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
private static final long serialVersionUID = 1L;
@@ -50,23 +47,41 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
private static final String ID_ADDITIONAL_LINK_FONT_AWESOME = "additionalLinkFontAwesome";
private static final String ID_ADDITIONAL_LINK_TITLE = "additionalLinkTitle";
- public static void addAdditionalLinks(
+ public enum Style {
+ INLINE_LIST {
+ @Override
+ AdditionalLinksPanel newPanel(String id, List<LinkAndLabel> links) {
+ return new AdditionalLinksAsInlineListPanel(id, links);
+ }
+ },
+ DROPDOWN {
+ @Override
+ AdditionalLinksPanel newPanel(String id, List<LinkAndLabel> links) {
+ return new AdditionalLinksAsDropDownPanel(id, links);
+ }
+ };
+ abstract AdditionalLinksPanel newPanel(String id, List<LinkAndLabel> links);
+ }
+
+ public static AdditionalLinksPanel addAdditionalLinks(
final MarkupContainer markupContainer,
final String id,
- final List<LinkAndLabel> links) {
+ final List<LinkAndLabel> links,
+ final Style style) {
if(links.isEmpty()) {
Components.permanentlyHide(markupContainer, id);
- return;
+ return null;
}
- final WebMarkupContainer additionalLinksPanel = new AdditionalLinksPanel(id, links);
+ final AdditionalLinksPanel additionalLinksPanel = style.newPanel(id, links);
markupContainer.addOrReplace(additionalLinksPanel);
+ return additionalLinksPanel;
}
private List<LinkAndLabel> linkAndLabels;
- public AdditionalLinksPanel(final String id, final List<LinkAndLabel> links) {
+ protected AdditionalLinksPanel(final String id, final List<LinkAndLabel> links) {
super(id, new ListOfLinksModel(links));
this.linkAndLabels = getModel().getObject();
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index d663d42..74f9617 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -124,8 +124,7 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
final EntityCollectionModel entityCollectionModel = collectionPanel.getModel();
List<LinkAndLabel> links = entityCollectionModel.getLinks();
- AdditionalLinksPanel additionalLinks = new AdditionalLinksPanel(ID_ADDITIONAL_LINKS, links);
- fieldset.addOrReplace(additionalLinks);
+ AdditionalLinksPanel.addAdditionalLinks (fieldset,ID_ADDITIONAL_LINKS, links, AdditionalLinksPanel.Style.INLINE_LIST);
final CollectionSelectorHelper selectorHelper = new CollectionSelectorHelper(entityCollectionModel, getComponentFactoryRegistry());
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index fa6250d..8474e4f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -91,6 +91,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
private static final String ID_MEMBER_GROUP = "memberGroup";
private static final String ID_MEMBER_GROUP_NAME = "memberGroupName";
+ public static final String ID_ADDITIONAL_LINKS = "additionalLinks";
+
private static final String ID_LEFT_COLUMN = "leftColumn";
private static final String ID_MIDDLE_COLUMN = "middleColumn";
private static final String ID_RIGHT_COLUMN = "rightColumn";
@@ -246,7 +248,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
// TODO: suppressing until sort out markup and figure out which should contribute etc via Facets.
memberGroupActions.clear();
AdditionalLinksPanel.addAdditionalLinks(
- memberGroupRvContainer, "additionalLinks", memberGroupActions);
+ memberGroupRvContainer, ID_ADDITIONAL_LINKS,
+ memberGroupActions,
+ AdditionalLinksPanel.Style.INLINE_LIST);
}
addClassForSpan(markupContainer, span);
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
index 459b692..e8f7da9 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
@@ -61,6 +61,13 @@ import org.apache.isis.viewer.wicket.ui.util.CssClassRemover;
/**
* Provides a list of links for selecting other views that support
* {@link ComponentType#ENTITY} with a backing {@link EntityModel}.
+ *
+ * <p>
+ * TODO: this code could be simplified
+ * (pushed down common code here and for the CollectionsSelectorPanel in order to do so);
+ * haven't simplified this yet because currently there is only one view, so the markup
+ * rendered by this component 'collapses' to just show that underlying view.
+ * </p>
*/
public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> implements UiHintPathSignificant {
@@ -71,7 +78,6 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> impleme
private static final int MAX_NUM_UNDERLYING_VIEWS = 10;
private static final String ID_ADDITIONAL_LINKS = "additionalLinks";
- public static final String ID_ADDITIONAL_LINK = "additionalLink";
private static final String ID_VIEWS = "views";
private static final String ID_VIEW_LIST = "viewList";
@@ -90,11 +96,6 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> impleme
private ComponentFactory selectedComponentFactory;
protected Component selectedComponent;
- /**
- * May be <tt>null</tt>, depending upon the model implementation.
- */
- protected WebMarkupContainer additionalLinks;
-
public EntityLinksSelectorPanel(final String id, final EntityModel model, final ComponentFactory factory) {
super(id, model);
@@ -142,8 +143,10 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel> impleme
}
links = Lists.newArrayList(links); // copy, to serialize any lazy evaluation
- additionalLinks = new AdditionalLinksPanel(ID_ADDITIONAL_LINKS, links);
- markupContainer.addOrReplace(additionalLinks);
+ AdditionalLinksPanel.addAdditionalLinks(
+ markupContainer, ID_ADDITIONAL_LINKS,
+ links,
+ AdditionalLinksPanel.Style.INLINE_LIST);
}
private void addUnderlyingViews(final String underlyingIdPrefix, final EntityModel model, final ComponentFactory factory) {
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 66b07c2..2d6ce7c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -296,7 +296,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
// ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions);
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/36efbfb3/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 279588f..89e7b50 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
@@ -64,7 +64,8 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod
private final ActionPromptModalWindow actionPromptModalWindow;
private final CollectionSelectorPanel selectorDropdownPanel;
private final BulkActionsHelper bulkActionsHelper;
- private AdditionalLinksPanel additionalLinks;
+
+ private boolean additionalLinksAdded;
/**
* note that the bulk actions components are added in {@link #configureBulkActions(org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn)}.
@@ -152,7 +153,7 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod
@Override
public void configureBulkActions(final ObjectAdapterToggleboxColumn toggleboxColumn) {
- if(additionalLinks != null) {
+ if(additionalLinksAdded) {
return;
}
final BulkActionsLinkFactory linkFactory =
@@ -167,9 +168,8 @@ public class StandaloneCollectionPanel extends PanelAbstract<EntityCollectionMod
}
});
- additionalLinks = new AdditionalLinksPanel(ID_ADDITIONAL_LINKS, links);
- addOrReplace(additionalLinks);
-
+ AdditionalLinksPanel.addAdditionalLinks(this, ID_ADDITIONAL_LINKS, links, AdditionalLinksPanel.Style.INLINE_LIST);
+ additionalLinksAdded = true;
}
[15/15] isis git commit: ISIS-537: changing @LabelAt to
@PropertyLayout and @ParameterLayout.
Posted by da...@apache.org.
ISIS-537: changing @LabelAt to @PropertyLayout and @ParameterLayout.
Also: fixing unit test for @ActionLayout facet.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3969f34c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3969f34c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3969f34c
Branch: refs/heads/master
Commit: 3969f34c59eac644e2e1b7ba313be65c18e0e58a
Parents: f58902e
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Nov 27 17:05:54 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Nov 27 17:05:54 2014 +0000
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 12 ++--
.../isis/applib/annotation/ActionLayout.java | 9 +++
.../apache/isis/applib/annotation/LabelAt.java | 38 ----------
.../isis/applib/annotation/LabelPosition.java | 31 ++++++++
.../isis/applib/annotation/ParameterLayout.java | 39 +++++++++++
.../isis/applib/annotation/PropertyLayout.java | 35 +++++++++
.../layout/ActionLayoutFacetFactory.java | 5 +-
.../facets/fallback/FallbackFacetFactory.java | 22 +++---
.../fallback/LabelAtFacetFromConfiguration.java | 30 --------
.../PropParamLayoutFacetFromConfiguration.java | 30 ++++++++
.../LabelAtFacetOnParameterAnnotation.java | 32 ---------
...abelAtFacetOnParameterAnnotationFactory.java | 59 ----------------
...LayoutFacetForParameterLayoutAnnotation.java | 32 +++++++++
...acetForParameterLayoutAnnotationFactory.java | 59 ++++++++++++++++
...tiLineFacetOnParameterAnnotationFactory.java | 8 +--
.../LabelAtFacetOnPropertyAnnotation.java | 32 ---------
.../LabelAtFacetOnPropertyFactory.java | 66 -----------------
.../LabelAtFacetOnPropertyFromProperties.java | 37 ----------
...mLayoutFacetForPropertyLayoutAnnotation.java | 32 +++++++++
...FacetForPropertyLayoutAnnotationFactory.java | 66 +++++++++++++++++
...aramLayoutFacetOnPropertyFromProperties.java | 37 ++++++++++
.../MultiLineFacetOnPropertyFactory.java | 8 +--
.../facets/propparam/labelat/LabelAtFacet.java | 32 ---------
.../propparam/labelat/LabelAtFacetAbstract.java | 50 -------------
.../LabelAtFacetInferredFromMultiLineFacet.java | 38 ----------
.../propparam/layout/PropParamLayoutFacet.java | 36 ++++++++++
.../layout/PropParamLayoutFacetAbstract.java | 50 +++++++++++++
...amLayoutFacetInferredFromMultiLineFacet.java | 38 ++++++++++
.../layoutmetadata/LabelAtFacetRepr.java | 22 ------
.../metamodel/layoutmetadata/MemberRepr.java | 2 +-
.../layoutmetadata/PropertyLayoutFacetRepr.java | 22 ++++++
.../json/LayoutMetadataReaderFromJson.java | 6 +-
.../dflt/ProgrammingModelFacetsJava5.java | 8 +--
.../ActionLayoutAnnotationFacetFactoryTest.java | 4 +-
...ForParameterLayoutAnnotationFactoryTest.java | 50 +++++++++++++
...tForPropertyLayoutAnnotationFactoryTest.java | 53 ++++++++++++++
.../LabelAtAnnotationFacetFactoryTest.java | 74 --------------------
.../src/main/webapp/WEB-INF/isis.properties | 4 +-
.../src/main/java/dom/todo/ToDoItem.layout.json | 8 +--
.../src/main/webapp/WEB-INF/isis.properties | 4 +-
40 files changed, 667 insertions(+), 553 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index c391f44..2edf2ea 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -37,7 +37,7 @@ import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacet;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacet;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -311,7 +311,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
}
/**
- * Applies the {@literal @}{@link org.apache.isis.applib.annotation.LabelAt LabelAt} facet and also CSS based on
+ * Applies the {@literal @}{@link org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacet} and also CSS based on
* whether any of the associated actions have {@literal @}{@link org.apache.isis.applib.annotation.ActionLayout layout} positioned to
* the {@link org.apache.isis.applib.annotation.ActionLayout.Position#RIGHT right}.
*
@@ -319,7 +319,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
* @param entityActionLinks
*/
protected void addPositioningCssTo(final MarkupContainer markupContainer, final List<LinkAndLabel> entityActionLinks) {
- CssClassAppender.appendCssClassTo(markupContainer, determineLabelAtCss(getModel()));
+ CssClassAppender.appendCssClassTo(markupContainer, determinePropParamLayoutCss(getModel()));
CssClassAppender.appendCssClassTo(markupContainer, determineActionLayoutPositioningCss(entityActionLinks));
}
@@ -331,10 +331,10 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ASSOCIATED_ACTION_LINKS_RIGHT, entityActionsRight, AdditionalLinksPanel.Style.DROPDOWN);
}
- private static String determineLabelAtCss(ScalarModel model) {
- final LabelAtFacet facet = model.getFacet(LabelAtFacet.class);
+ private static String determinePropParamLayoutCss(ScalarModel model) {
+ final PropParamLayoutFacet facet = model.getFacet(PropParamLayoutFacet.class);
if (facet != null) {
- switch (facet.value()) {
+ switch (facet.label()) {
case LEFT:
return "label-left";
case NONE:
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
index 0614d1b..1984c8c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
@@ -19,9 +19,18 @@
package org.apache.isis.applib.annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
/**
* Layout hints for actions.
*/
+@Inherited
+@Target({ ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
public @interface ActionLayout {
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelAt.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelAt.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelAt.java
deleted file mode 100644
index 723a9ed..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelAt.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.applib.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * Indicates where a property or action parameter's label should be rendered.
- */
-@Inherited
-@Target({ ElementType.METHOD, ElementType.PARAMETER })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface LabelAt {
- public enum Position {
- LEFT,
- TOP,
- NONE
- }
- Position value();
-}
-
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelPosition.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelPosition.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelPosition.java
new file mode 100644
index 0000000..93d559b
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/LabelPosition.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.applib.annotation;
+
+/**
+ * The positioning of a label for a property or action parameter.
+ *
+ * @see org.apache.isis.applib.annotation.PropertyLayout
+ * @see org.apache.isis.applib.annotation.ParameterLayout
+ */
+public enum LabelPosition {
+ LEFT,
+ TOP,
+ NONE
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
new file mode 100644
index 0000000..b8ddf4e
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.applib.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Layout hints for action parameters.
+ *
+ * @see org.apache.isis.applib.annotation.PropertyLayout
+ */
+@Inherited
+@Target({ ElementType.PARAMETER })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ParameterLayout {
+ LabelPosition labelPosition();
+}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
new file mode 100644
index 0000000..bce1f80
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.applib.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * Layout hints for properties.
+ *
+ * @see org.apache.isis.applib.annotation.ParameterLayout
+ */
+@Inherited
+@Target({ ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface PropertyLayout {
+ LabelPosition labelPosition();
+}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
index bf1b3de..c694083 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -40,7 +40,10 @@ public class ActionLayoutFacetFactory extends FacetFactoryAbstract implements Co
if(facet == null) {
facet = createFromAnnotationIfPossible(processMethodContext);
}
-
+ if(facet == null) {
+ facet = new ActionLayoutFacetFallback(processMethodContext.getFacetHolder());
+ }
+
// no-op if null
FacetUtil.addFacet(facet);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
index 7e9dc5b..7fdac1f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Lists;
-import org.apache.isis.applib.annotation.LabelAt;
+import org.apache.isis.applib.annotation.LabelPosition;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -105,7 +105,7 @@ public class FallbackFacetFactory extends FacetFactoryAbstract implements IsisCo
facets.add(new MaxLengthFacetUnlimited(facetHolder));
facets.add(new MultiLineFacetNone(true, facetHolder));
- facets.add(newLabelAtFacetIfAny(facetHolder, "properties", "property", "props", "prop"));
+ facets.add(newPropParamLayoutFacetIfAny(facetHolder, "propertyLayout"));
}
if (featureType.isAction()) {
facets.add(new ActionDefaultsFacetNone(facetHolder));
@@ -131,18 +131,19 @@ public class FallbackFacetFactory extends FacetFactoryAbstract implements IsisCo
facets.add(new MaxLengthFacetUnlimited(typedHolder));
- facets.add(newLabelAtFacetIfAny(typedHolder, "parameters", "parameter", "params", "param"));
+ facets.add(newPropParamLayoutFacetIfAny(typedHolder, "parameterLayout"));
}
FacetUtil.addFacets(facets);
}
- private Facet newLabelAtFacetIfAny(FacetHolder facetHolder, final String... propOrParam) {
- final String labelAt = getLabelAtConfigSetting(propOrParam);
- if(labelAt != null) {
+ private Facet newPropParamLayoutFacetIfAny(final FacetHolder facetHolder, final String layoutKey) {
+ final String[] subKeys = new String[]{ "labelPosition", "label"};
+ final String propParamLayout = getPropParamLayoutConfigSetting(layoutKey, subKeys);
+ if(propParamLayout != null) {
try {
- final LabelAt.Position position = LabelAt.Position.valueOf(labelAt);
- return new LabelAtFacetFromConfiguration(position, facetHolder);
+ final LabelPosition labelPosition = LabelPosition.valueOf(propParamLayout);
+ return new PropParamLayoutFacetFromConfiguration(labelPosition, facetHolder);
} catch(IllegalArgumentException ex) {
// ignore
}
@@ -154,9 +155,10 @@ public class FallbackFacetFactory extends FacetFactoryAbstract implements IsisCo
return getConfiguration().getInteger("isis.viewers.paged." + subkey, defaultValue);
}
- private String getLabelAtConfigSetting(String... subkeys) {
+ private String getPropParamLayoutConfigSetting(final String layout, String... subkeys) {
for (String subkey : subkeys) {
- final String value = getConfiguration().getString("isis.viewers.labelAt." + subkey);
+ final String layoutKey = "isis.viewers." + layout + "." + subkey;
+ final String value = getConfiguration().getString(layoutKey);
if(value != null) {
return value;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/LabelAtFacetFromConfiguration.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/LabelAtFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/LabelAtFacetFromConfiguration.java
deleted file mode 100644
index cd3425e..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/LabelAtFacetFromConfiguration.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.isis.core.metamodel.facets.fallback;
-
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacetAbstract;
-
-public class LabelAtFacetFromConfiguration extends LabelAtFacetAbstract {
-
- public LabelAtFacetFromConfiguration(LabelAt.Position position, FacetHolder facetHolder) {
- super(position, facetHolder);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PropParamLayoutFacetFromConfiguration.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PropParamLayoutFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PropParamLayoutFacetFromConfiguration.java
new file mode 100644
index 0000000..a5ba4b0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/PropParamLayoutFacetFromConfiguration.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.core.metamodel.facets.fallback;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacetAbstract;
+
+public class PropParamLayoutFacetFromConfiguration extends PropParamLayoutFacetAbstract {
+
+ public PropParamLayoutFacetFromConfiguration(LabelPosition labelPosition, FacetHolder facetHolder) {
+ super(labelPosition, facetHolder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotation.java
deleted file mode 100644
index 3db5180..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.param.labelat.annotation;
-
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacetAbstract;
-
-public class LabelAtFacetOnParameterAnnotation extends LabelAtFacetAbstract {
-
- public LabelAtFacetOnParameterAnnotation(final LabelAt.Position value, final FacetHolder holder) {
- super(value, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotationFactory.java
deleted file mode 100644
index 22622d73..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/labelat/annotation/LabelAtFacetOnParameterAnnotationFactory.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.param.labelat.annotation;
-
-import java.lang.annotation.Annotation;
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacet;
-
-public class LabelAtFacetOnParameterAnnotationFactory extends FacetFactoryAbstract {
-
- public LabelAtFacetOnParameterAnnotationFactory() {
- super(FeatureType.PARAMETERS_ONLY);
- }
-
- @Override
- public void processParams(final ProcessParameterContext processParameterContext) {
- final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
- if (processParameterContext.getParamNum() >= parameterTypes.length) {
- // ignore
- return;
- }
-
- final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
- for (final Annotation parameterAnnotation : parameterAnnotations) {
- if (parameterAnnotation instanceof LabelAt) {
- final LabelAt annotation = (LabelAt) parameterAnnotation;
- FacetUtil.addFacet(create(annotation, processParameterContext.getFacetHolder()));
- return;
- }
- }
- }
-
- private LabelAtFacet create(final LabelAt annotation, final FacetHolder holder) {
- return (annotation != null) ? new LabelAtFacetOnParameterAnnotation(annotation.value(), holder) : null;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotation.java
new file mode 100644
index 0000000..558c81d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotation.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.param.layout.annotation;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacetAbstract;
+
+public class PropParamLayoutFacetForParameterLayoutAnnotation extends PropParamLayoutFacetAbstract {
+
+ public PropParamLayoutFacetForParameterLayoutAnnotation(final LabelPosition value, final FacetHolder holder) {
+ super(value, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactory.java
new file mode 100644
index 0000000..92a1256
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactory.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.param.layout.annotation;
+
+import java.lang.annotation.Annotation;
+import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacet;
+
+public class PropParamLayoutFacetForParameterLayoutAnnotationFactory extends FacetFactoryAbstract {
+
+ public PropParamLayoutFacetForParameterLayoutAnnotationFactory() {
+ super(FeatureType.PARAMETERS_ONLY);
+ }
+
+ @Override
+ public void processParams(final ProcessParameterContext processParameterContext) {
+ final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
+ if (processParameterContext.getParamNum() >= parameterTypes.length) {
+ // ignore
+ return;
+ }
+
+ final Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
+ for (final Annotation parameterAnnotation : parameterAnnotations) {
+ if (parameterAnnotation instanceof ParameterLayout) {
+ final ParameterLayout annotation = (ParameterLayout) parameterAnnotation;
+ FacetUtil.addFacet(create(annotation, processParameterContext.getFacetHolder()));
+ return;
+ }
+ }
+ }
+
+ private PropParamLayoutFacet create(final ParameterLayout annotation, final FacetHolder holder) {
+ return (annotation != null) ? new PropParamLayoutFacetForParameterLayoutAnnotation(annotation.labelPosition(), holder) : null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
index 064cf21..2232223 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/multiline/annotation/MultiLineFacetOnParameterAnnotationFactory.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacetInferredFromMultiLineFacet;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacetInferredFromMultiLineFacet;
import org.apache.isis.core.metamodel.facets.propparam.multiline.MultiLineFacet;
public class MultiLineFacetOnParameterAnnotationFactory extends FacetFactoryAbstract {
@@ -62,14 +62,14 @@ public class MultiLineFacetOnParameterAnnotationFactory extends FacetFactoryAbst
FacetUtil.addFacet(facet);
// no-op if null
- inferLabelAtFacet(facet);
+ inferPropParamLayoutFacet(facet);
}
- private static void inferLabelAtFacet(MultiLineFacet facet) {
+ private static void inferPropParamLayoutFacet(MultiLineFacet facet) {
if (facet == null) {
return;
}
- FacetUtil.addFacet(new LabelAtFacetInferredFromMultiLineFacet(facet.getFacetHolder()));
+ FacetUtil.addFacet(new PropParamLayoutFacetInferredFromMultiLineFacet(facet.getFacetHolder()));
}
private MultiLineFacet create(final MultiLine annotation, final FacetHolder holder) {
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyAnnotation.java
deleted file mode 100644
index 8c0e1f3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyAnnotation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.properties.labelat.annotation;
-
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacetAbstract;
-
-public class LabelAtFacetOnPropertyAnnotation extends LabelAtFacetAbstract {
-
- public LabelAtFacetOnPropertyAnnotation(final LabelAt.Position value, final FacetHolder holder) {
- super(value, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFactory.java
deleted file mode 100644
index cae5970..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.properties.labelat.annotation;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacet;
-
-public class LabelAtFacetOnPropertyFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
-
- public LabelAtFacetOnPropertyFactory() {
- super(FeatureType.PROPERTIES_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- LabelAtFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
- if(facet == null) {
- facet = createFromAnnotationIfPossible(processMethodContext);
- }
-
- // no-op if null
- FacetUtil.addFacet(facet);
- }
-
- @Override
- public void process(ProcessContributeeMemberContext processMemberContext) {
- }
-
- private static LabelAtFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("labelAt");
- return properties != null ? new LabelAtFacetOnPropertyFromProperties(properties, holder) : null;
- }
-
- private static LabelAtFacetOnPropertyAnnotation createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- final LabelAt annotation = Annotations.getAnnotation(processMethodContext.getMethod(), LabelAt.class);
- return (annotation != null) ? new LabelAtFacetOnPropertyAnnotation(annotation.value(), processMethodContext.getFacetHolder()) : null;
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFromProperties.java
deleted file mode 100644
index d6bd907..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/labelat/annotation/LabelAtFacetOnPropertyFromProperties.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.properties.labelat.annotation;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacetAbstract;
-
-public class LabelAtFacetOnPropertyFromProperties extends LabelAtFacetAbstract {
-
- public LabelAtFacetOnPropertyFromProperties(Properties properties, FacetHolder holder) {
- super(valueFrom(properties), holder);
- }
-
- private static LabelAt.Position valueFrom(Properties properties) {
- return LabelAt.Position.valueOf(properties.getProperty("value"));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotation.java
new file mode 100644
index 0000000..ef9e350
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotation.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.properties.layout.annotation;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacetAbstract;
+
+public class PropParamLayoutFacetForPropertyLayoutAnnotation extends PropParamLayoutFacetAbstract {
+
+ public PropParamLayoutFacetForPropertyLayoutAnnotation(final LabelPosition value, final FacetHolder holder) {
+ super(value, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactory.java
new file mode 100644
index 0000000..74cd386
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactory.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.properties.layout.annotation;
+
+import java.util.Properties;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacet;
+
+public class PropParamLayoutFacetForPropertyLayoutAnnotationFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+
+ public PropParamLayoutFacetForPropertyLayoutAnnotationFactory() {
+ super(FeatureType.PROPERTIES_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ PropParamLayoutFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
+ if(facet == null) {
+ facet = createFromAnnotationIfPossible(processMethodContext);
+ }
+
+ // no-op if null
+ FacetUtil.addFacet(facet);
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ }
+
+ private static PropParamLayoutFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("propertyLayout");
+ return properties != null ? new PropParamLayoutFacetOnPropertyFromProperties(properties, holder) : null;
+ }
+
+ private static PropParamLayoutFacetForPropertyLayoutAnnotation createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final PropertyLayout annotation = Annotations.getAnnotation(processMethodContext.getMethod(), PropertyLayout.class);
+ return (annotation != null) ? new PropParamLayoutFacetForPropertyLayoutAnnotation(annotation.labelPosition(), processMethodContext.getFacetHolder()) : null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetOnPropertyFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetOnPropertyFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetOnPropertyFromProperties.java
new file mode 100644
index 0000000..e01b5d0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetOnPropertyFromProperties.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.properties.layout.annotation;
+
+import java.util.Properties;
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacetAbstract;
+
+public class PropParamLayoutFacetOnPropertyFromProperties extends PropParamLayoutFacetAbstract {
+
+ public PropParamLayoutFacetOnPropertyFromProperties(Properties properties, FacetHolder holder) {
+ super(valueFrom(properties), holder);
+ }
+
+ private static LabelPosition valueFrom(Properties properties) {
+ return LabelPosition.valueOf(properties.getProperty("labelPosition"));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
index 72a8976..a9c2a4a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/multiline/annotation/MultiLineFacetOnPropertyFactory.java
@@ -27,7 +27,7 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacetInferredFromMultiLineFacet;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacetInferredFromMultiLineFacet;
import org.apache.isis.core.metamodel.facets.propparam.multiline.MultiLineFacet;
public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
@@ -47,14 +47,14 @@ public class MultiLineFacetOnPropertyFactory extends FacetFactoryAbstract implem
FacetUtil.addFacet(facet);
// no-op if null
- inferLabelAtFacet(facet);
+ inferPropParamLayoutFacet(facet);
}
- private static void inferLabelAtFacet(MultiLineFacet facet) {
+ private static void inferPropParamLayoutFacet(MultiLineFacet facet) {
if (facet == null) {
return;
}
- FacetUtil.addFacet(new LabelAtFacetInferredFromMultiLineFacet(facet.getFacetHolder()));
+ FacetUtil.addFacet(new PropParamLayoutFacetInferredFromMultiLineFacet(facet.getFacetHolder()));
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacet.java
deleted file mode 100644
index 500a379..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacet.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.propparam.labelat;
-
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facets.MultipleValueFacet;
-
-/**
- * The positioning of a property or action parameter's label.
- */
-public interface LabelAtFacet extends MultipleValueFacet {
-
- public LabelAt.Position value();
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetAbstract.java
deleted file mode 100644
index d62dd5d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetAbstract.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.propparam.labelat;
-
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.MultipleValueFacetAbstract;
-
-public abstract class LabelAtFacetAbstract extends MultipleValueFacetAbstract implements LabelAtFacet {
-
- public static Class<? extends Facet> type() {
- return LabelAtFacet.class;
- }
-
- private final LabelAt.Position value;
-
- public LabelAtFacetAbstract(final LabelAt.Position value, final FacetHolder holder) {
- super(type(), holder);
- this.value = value;
- }
-
- @Override
- public LabelAt.Position value() {
- return value;
- }
-
- @Override
- protected String toStringValues() {
- return "position=" + value;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetInferredFromMultiLineFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetInferredFromMultiLineFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetInferredFromMultiLineFacet.java
deleted file mode 100644
index bdbce68..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtFacetInferredFromMultiLineFacet.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.propparam.labelat;
-
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-
-/**
- * If multi-line then position the label at the top.
- *
- * <p>
- * This can still be overridden using the {@link org.apache.isis.applib.annotation.LabelAt} annotation / layout.json.
- * </p>
- */
-public class LabelAtFacetInferredFromMultiLineFacet extends LabelAtFacetAbstract {
-
- public LabelAtFacetInferredFromMultiLineFacet(final FacetHolder holder) {
- super(LabelAt.Position.TOP, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacet.java
new file mode 100644
index 0000000..71a8f73
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacet.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.propparam.layout;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+
+/**
+ * Corresponds to either {@literal @}{@link org.apache.isis.applib.annotation.PropertyLayout} (for a property) or
+ *{@literal @}{@link org.apache.isis.applib.annotation.ParameterLayout} (for an action parameter).
+ */
+public interface PropParamLayoutFacet extends Facet {
+
+ /**
+ * The positioning of a property or action parameter's label.
+ */
+ public LabelPosition label();
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetAbstract.java
new file mode 100644
index 0000000..60c02f2
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetAbstract.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.propparam.layout;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.MultipleValueFacetAbstract;
+
+public abstract class PropParamLayoutFacetAbstract extends MultipleValueFacetAbstract implements PropParamLayoutFacet {
+
+ public static Class<? extends Facet> type() {
+ return PropParamLayoutFacet.class;
+ }
+
+ private final LabelPosition value;
+
+ public PropParamLayoutFacetAbstract(final LabelPosition value, final FacetHolder holder) {
+ super(type(), holder);
+ this.value = value;
+ }
+
+ @Override
+ public LabelPosition label() {
+ return value;
+ }
+
+ @Override
+ protected String toStringValues() {
+ return "position=" + value;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetInferredFromMultiLineFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetInferredFromMultiLineFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetInferredFromMultiLineFacet.java
new file mode 100644
index 0000000..ee6119e
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propparam/layout/PropParamLayoutFacetInferredFromMultiLineFacet.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.propparam.layout;
+
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+/**
+ * If multi-line then position the label at the top.
+ *
+ * <p>
+ * This can still be overridden using the {@link org.apache.isis.applib.annotation.PropertyLayout} annotation / layout.json.
+ * </p>
+ */
+public class PropParamLayoutFacetInferredFromMultiLineFacet extends PropParamLayoutFacetAbstract {
+
+ public PropParamLayoutFacetInferredFromMultiLineFacet(final FacetHolder holder) {
+ super(LabelPosition.TOP, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/LabelAtFacetRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/LabelAtFacetRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/LabelAtFacetRepr.java
deleted file mode 100644
index 945cfb3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/LabelAtFacetRepr.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.layoutmetadata;
-
-
-public class LabelAtFacetRepr {
- public String value;
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
index 14167bf..d5d2e7e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
@@ -37,5 +37,5 @@ public class MemberRepr {
// TODO mgrigorov: should we add public CssClassFaFacetRepr cssClassFa; ?
public TypicalLengthFacetRepr typicalLength;
public MultiLineFacetRepr multiLine;
- public LabelAtFacetRepr labelAt;
+ public PropertyLayoutFacetRepr propertyLayout;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/PropertyLayoutFacetRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/PropertyLayoutFacetRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/PropertyLayoutFacetRepr.java
new file mode 100644
index 0000000..59ca0b3
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/PropertyLayoutFacetRepr.java
@@ -0,0 +1,22 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.isis.core.metamodel.layoutmetadata;
+
+
+public class PropertyLayoutFacetRepr {
+ public String labelPosition;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
index 71cff36..d62db96 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
@@ -157,9 +157,9 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
if(multiLine!= null) {
props.setProperty("member." + memberName + ".multiLine.numberOfLines", ""+multiLine.numberOfLines);
}
- final LabelAtFacetRepr labelAt = memberRepr.labelAt;
- if(labelAt!= null) {
- props.setProperty("member." + memberName + ".labelAt.value", ""+labelAt.value);
+ final PropertyLayoutFacetRepr propertyLayout = memberRepr.propertyLayout;
+ if(propertyLayout!= null) {
+ props.setProperty("member." + memberName + ".propertyLayout.labelPosition", ""+propertyLayout.labelPosition);
}
final PagedFacetRepr paged = memberRepr.paged;
if(paged != null) {
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index 4030f20..ba149cb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -140,7 +140,7 @@ import org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParam
import org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFactory;
import org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethodFactory;
import org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory;
-import org.apache.isis.core.metamodel.facets.param.labelat.annotation.LabelAtFacetOnParameterAnnotationFactory;
+import org.apache.isis.core.metamodel.facets.param.layout.annotation.PropParamLayoutFacetForParameterLayoutAnnotationFactory;
import org.apache.isis.core.metamodel.facets.param.mandatory.annotation.MandatoryFacetOnParameterInvertedByOptionalAnnotationFactory;
import org.apache.isis.core.metamodel.facets.param.mandatory.dflt.MandatoryFacetOnParametersDefaultFactory;
import org.apache.isis.core.metamodel.facets.param.multiline.annotation.MultiLineFacetOnParameterAnnotationFactory;
@@ -162,7 +162,7 @@ import org.apache.isis.core.metamodel.facets.properties.defaults.method.Property
import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutableFactory;
import org.apache.isis.core.metamodel.facets.properties.disabled.inferred.DisabledFacetOnPropertyInferredFactory;
import org.apache.isis.core.metamodel.facets.properties.interaction.PropertyInteractionFacetFactory;
-import org.apache.isis.core.metamodel.facets.properties.labelat.annotation.LabelAtFacetOnPropertyFactory;
+import org.apache.isis.core.metamodel.facets.properties.layout.annotation.PropParamLayoutFacetForPropertyLayoutAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.mandatory.MandatoryFacetOnPropertyMandatoryAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.mandatory.annotation.optional.MandatoryFacetOnPropertyInvertedByOptionalAnnotationFactory;
import org.apache.isis.core.metamodel.facets.properties.mandatory.dflt.MandatoryFacetOnProperyDefaultFactory;
@@ -401,8 +401,8 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(MultiLineFacetOnParameterAnnotationFactory.class);
// must come after MultiLine
- addFactory(LabelAtFacetOnPropertyFactory.class);
- addFactory(LabelAtFacetOnParameterAnnotationFactory.class);
+ addFactory(PropParamLayoutFacetForPropertyLayoutAnnotationFactory.class);
+ addFactory(PropParamLayoutFacetForParameterLayoutAnnotationFactory.class);
addFactory(ActionLayoutFacetFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
index 3af9fe1..4982c10 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
@@ -33,11 +33,11 @@ public class ActionLayoutAnnotationFacetFactoryTest extends AbstractFacetFactory
class Customer {
@SuppressWarnings("unused")
@ActionLayout(position = ActionLayout.Position.PANEL)
- public String foo() {
+ public String foz() {
return null;
}
}
- final Method method = findMethod(Customer.class, "foo");
+ final Method method = findMethod(Customer.class, "foz");
facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactoryTest.java
new file mode 100644
index 0000000..7924a16
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/PropParamLayoutFacetForParameterLayoutAnnotationFactoryTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.param.layout.annotation;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacet;
+
+public class PropParamLayoutFacetForParameterLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+ public void testParameterLayoutAnnotationPickedUp() {
+ final PropParamLayoutFacetForParameterLayoutAnnotationFactory facetFactory = new PropParamLayoutFacetForParameterLayoutAnnotationFactory();
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction(@ParameterLayout(labelPosition = LabelPosition.LEFT) final String foo) {
+ }
+ }
+ final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
+
+ facetFactory.processParams(new FacetFactory.ProcessParameterContext(method, 0, facetedMethodParameter));
+
+ final Facet facet = facetedMethodParameter.getFacet(PropParamLayoutFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PropParamLayoutFacetForParameterLayoutAnnotation);
+ final PropParamLayoutFacetForParameterLayoutAnnotation layoutAnnotation = (PropParamLayoutFacetForParameterLayoutAnnotation) facet;
+ assertEquals(LabelPosition.LEFT, layoutAnnotation.label());
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactoryTest.java
new file mode 100644
index 0000000..e970bd7
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/PropParamLayoutFacetForPropertyLayoutAnnotationFactoryTest.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.properties.layout.annotation;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.LabelPosition;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.propparam.layout.PropParamLayoutFacet;
+
+public class PropParamLayoutFacetForPropertyLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+ public void testPropertyLayoutAnnotationPickedUp() {
+ final PropParamLayoutFacetForPropertyLayoutAnnotationFactory facetFactory = new PropParamLayoutFacetForPropertyLayoutAnnotationFactory();
+
+ class Customer {
+ @SuppressWarnings("unused")
+ @PropertyLayout(labelPosition = LabelPosition.LEFT)
+ public String getFirstName() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "getFirstName");
+
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(PropParamLayoutFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PropParamLayoutFacetForPropertyLayoutAnnotation);
+ final PropParamLayoutFacetForPropertyLayoutAnnotation layoutAnnotation = (PropParamLayoutFacetForPropertyLayoutAnnotation) facet;
+ assertEquals(LabelPosition.LEFT, layoutAnnotation.label());
+ }
+
+}
[14/15] isis git commit: ISIS-537: changing @LabelAt to
@PropertyLayout and @ParameterLayout.
Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtAnnotationFacetFactoryTest.java
deleted file mode 100644
index 83feb05..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/labelat/LabelAtAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.facets.propparam.labelat;
-
-import java.lang.reflect.Method;
-import org.apache.isis.applib.annotation.LabelAt;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
-import org.apache.isis.core.metamodel.facets.param.labelat.annotation.LabelAtFacetOnParameterAnnotation;
-import org.apache.isis.core.metamodel.facets.param.labelat.annotation.LabelAtFacetOnParameterAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.labelat.annotation.LabelAtFacetOnPropertyAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.labelat.annotation.LabelAtFacetOnPropertyFactory;
-
-public class LabelAtAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
-
- public void testLabelAtAnnotationPickedUpOnProperty() {
- final LabelAtFacetOnPropertyFactory facetFactory = new LabelAtFacetOnPropertyFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- @LabelAt(LabelAt.Position.LEFT)
- public String getFirstName() {
- return null;
- }
- }
- final Method method = findMethod(Customer.class, "getFirstName");
-
- facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(LabelAtFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof LabelAtFacetOnPropertyAnnotation);
- final LabelAtFacetOnPropertyAnnotation labelAtFacetAnnotation = (LabelAtFacetOnPropertyAnnotation) facet;
- assertEquals(LabelAt.Position.LEFT, labelAtFacetAnnotation.value());
- }
-
- public void testLabelAtAnnotationPickedUpOnActionParameter() {
- final LabelAtFacetOnParameterAnnotationFactory facetFactory = new LabelAtFacetOnParameterAnnotationFactory();
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction(@LabelAt(LabelAt.Position.LEFT) final String foo) {
- }
- }
- final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
-
- facetFactory.processParams(new ProcessParameterContext(method, 0, facetedMethodParameter));
-
- final Facet facet = facetedMethodParameter.getFacet(LabelAtFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof LabelAtFacetOnParameterAnnotation);
- final LabelAtFacetOnParameterAnnotation labelAtFacetAnnotation = (LabelAtFacetOnParameterAnnotation) facet;
- assertEquals(LabelAt.Position.LEFT, labelAtFacetAnnotation.value());
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
index 339bae3..f28d7e3 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -206,5 +206,5 @@ isis.fixtures=fixture.simple.scenario.SimpleObjectsFixture
#isis.viewers.paged.parented=10
-#isis.viewers.labelAt.property=LEFT
-#isis.viewers.labelAt.parameter=LEFT
+#isis.viewers.propertyLayout.labelPosition=LEFT
+#isis.viewers.parameterLayout.labelPosition=LEFT
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/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 9f8fb30..706e20e 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
@@ -23,13 +23,13 @@
"members": {
"description": {
"typicalLength": { "value": 50 },
- "labelAt": { "value": "TOP" }
+ "propertyLayout": { "labelPosition": "TOP" }
},
"category": {
- "labelAt": { "value": "TOP" }
+ "propertyLayout": { "labelPosition": "TOP" }
},
"subcategory": {
- "labelAt": { "value": "NONE" },
+ "propertyLayout": { "labelPosition": "NONE" },
"actions": {
"updateCategory": {
"named": {
@@ -125,7 +125,7 @@
"hidden": {
"where": "ALL_TABLES"
},
- "labelAt": { "value": "TOP" }
+ "propertyLayout": { "labelPosition": "TOP" }
},
"attachment": {
"hidden": {
http://git-wip-us.apache.org/repos/asf/isis/blob/3969f34c/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
index 494a818..c61481f 100644
--- a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/isis.properties
@@ -209,5 +209,5 @@ isis.fixtures=fixture.todo.scenarios.ToDoItemsRecreateForSven
#isis.viewers.paged.standalone=30
#isis.viewers.paged.parented=10
-#isis.viewers.labelAt.property=LEFT
-#isis.viewers.labelAt.parameter=LEFT
+#isis.viewers.propertyLayout.labelPosition=LEFT
+#isis.viewers.parameterLayout.labelPosition=LEFT
[07/15] isis git commit: ISIS-537: simplification of HTML for
StandaloneCollectionPanel;
remove "btn-group" class for div around additionalLinks id in
EntityPropertesPanel (not needed, that responsibility belongs to
AdditonalLinksPanel itself).
Posted by da...@apache.org.
ISIS-537: simplification of HTML for StandaloneCollectionPanel; remove "btn-group" class for div around additionalLinks id in EntityPropertesPanel (not needed, that responsibility belongs to AdditonalLinksPanel itself).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/db576993
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/db576993
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/db576993
Branch: refs/heads/master
Commit: db5769934fb6307744704d7c43811848acfce411
Parents: 36efbfb
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 16:27:16 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 16:27:16 2014 +0000
----------------------------------------------------------------------
.../ui/components/entity/properties/EntityPropertiesPanel.html | 6 +++---
.../standalonecollection/StandaloneCollectionPanel.html | 6 ++----
2 files changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/db576993/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index a33e201..36f8e01 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -29,7 +29,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="pull-right btn-group additionalLinks">
+ <div class="pull-right additionalLinks">
<div wicket:id="additionalLinks"></div>
</div>
</div>
@@ -56,7 +56,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="pull-right btn-group additionalLinks">
+ <div class="pull-right additionalLinks">
<div wicket:id="additionalLinks"></div>
</div>
</div>
@@ -75,7 +75,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="pull-right btn-group additionalLinks">
+ <div class="pull-right additionalLinks">
<div wicket:id="additionalLinks"></div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/db576993/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 a86f6cc..a76fcfe 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
@@ -34,10 +34,8 @@
<div wicket:id="additionalLinks"></div>
</div>
- <div class="pull-right">
- <div class="btn-group">
- <span wicket:id="selectorDropdown"/>
- </div>
+ <div class="pull-right btn-group selectorDropdown">
+ <span wicket:id="selectorDropdown"/>
</div>
</div>
[03/15] isis git commit: ISIS-537: simplifying markup in
EntityPropertiesPanel for additional links (same structure as
CollectionsPanel)
Posted by da...@apache.org.
ISIS-537: simplifying markup in EntityPropertiesPanel for additional links (same structure as CollectionsPanel)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/50c00d21
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/50c00d21
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/50c00d21
Branch: refs/heads/master
Commit: 50c00d218a556dfc073a0edafd4f42646bd9cc7e
Parents: e377ec8
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 06:05:59 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 06:05:59 2014 +0000
----------------------------------------------------------------------
.../entity/properties/EntityPropertiesPanel.html | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/50c00d21/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index 6306819..a33e201 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -29,10 +29,8 @@
<div class="panel panel-default">
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="additionalLinks pull-right">
- <div class="btn-group">
- <div wicket:id="additionalLinks"></div>
- </div>
+ <div class="pull-right btn-group additionalLinks">
+ <div wicket:id="additionalLinks"></div>
</div>
</div>
<div class="properties panel-body">
@@ -58,10 +56,8 @@
<div class="panel panel-default">
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="additionalLinks pull-right">
- <div class="btn-group">
- <div wicket:id="additionalLinks"></div>
- </div>
+ <div class="pull-right btn-group additionalLinks">
+ <div wicket:id="additionalLinks"></div>
</div>
</div>
<div class="properties panel-body">
@@ -79,10 +75,8 @@
<div class="panel panel-default">
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
- <div class="additionalLinks pull-right">
- <div class="btn-group">
- <div wicket:id="additionalLinks"></div>
- </div>
+ <div class="pull-right btn-group additionalLinks">
+ <div wicket:id="additionalLinks"></div>
</div>
</div>
<div class="properties panel-body">
[09/15] isis git commit: ISIS-537: float scalarValueWrapper left
instead of right (in preparation for additional additional links to right).
Posted by da...@apache.org.
ISIS-537: float scalarValueWrapper left instead of right (in preparation for additional additional links to right).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6ffdaf01
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6ffdaf01
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6ffdaf01
Branch: refs/heads/master
Commit: 6ffdaf0122a5514e1335b4b0de593f9734565f69
Parents: 53f364c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 17:28:30 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 17:28:30 2014 +0000
----------------------------------------------------------------------
.../org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/6ffdaf01/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 533d34c..3107426 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
@@ -127,7 +127,7 @@ div.label-none label.control-label {
div.label-left .scalarValueWrapper {
width: 70%;
- float: right;
+ float: left;
}
div.label-top .scalarValueWrapper,
[13/15] isis git commit: ISIS-537: width of icon column for
standalone collections with bulk actions (where the column is 2nd, not 1st).
Posted by da...@apache.org.
ISIS-537: width of icon column for standalone collections with bulk actions (where the column is 2nd, not 1st).
Also: change to use width: 3% rather than width: 30px.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f58902e2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f58902e2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f58902e2
Branch: refs/heads/master
Commit: f58902e288f62751ec532f6dace9f9f4f4232b03
Parents: 9517e5b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Nov 27 14:24:32 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Nov 27 14:24:32 2014 +0000
----------------------------------------------------------------------
.../ajaxtable/CollectionContentsAsAjaxTablePanel.css | 8 ++++++--
.../ajaxtable/columns/ObjectAdapterTitleColumn.java | 2 ++
.../ajaxtable/columns/ObjectAdapterToggleboxColumn.java | 6 +++++-
3 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/f58902e2/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
index acff569..275b27c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.css
@@ -85,8 +85,12 @@
height: 16px;
}
-.collectionContentsAsAjaxTablePanel table.contents tbody td:first-child {
- width: 30px;
+.collectionContentsAsAjaxTablePanel table.contents tbody .togglebox-column {
+ width: 2%;
+}
+.collectionContentsAsAjaxTablePanel table.contents tbody .title-column {
+ text-align: center;
+ width: 3%;
}
.collectionContentsAsAjaxTablePanel table.contents a:hover {
http://git-wip-us.apache.org/repos/asf/isis/blob/f58902e2/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
index f4fb00f..dc58532 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
@@ -30,6 +30,7 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.ComponentType;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
public class ObjectAdapterTitleColumn extends ColumnAbstract<ObjectAdapter> {
@@ -52,6 +53,7 @@ public class ObjectAdapterTitleColumn extends ColumnAbstract<ObjectAdapter> {
public void populateItem(final Item<ICellPopulator<ObjectAdapter>> cellItem, final String componentId, final IModel<ObjectAdapter> rowModel) {
final Component component = createComponent(componentId, rowModel);
cellItem.add(component);
+ cellItem.add(new CssClassAppender("title-column"));
}
private Component createComponent(final String id, final IModel<ObjectAdapter> rowModel) {
http://git-wip-us.apache.org/repos/asf/isis/blob/f58902e2/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
index 612abcd..8dde6ff 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
@@ -90,13 +90,17 @@ public final class ObjectAdapterToggleboxColumn extends ColumnAbstract<ObjectAda
}
}
};
- return toggle;
+ toggle.add(new CssClassAppender("title-column"));
+ return toggle;
}
private final List<ContainedToggleboxPanel> rowToggles = Lists.newArrayList();
@Override
public void populateItem(final Item<ICellPopulator<ObjectAdapter>> cellItem, final String componentId, final IModel<ObjectAdapter> rowModel) {
+
+ cellItem.add(new CssClassAppender("togglebox-column"));
+
final MarkupContainer row = cellItem.getParent().getParent();
row.setOutputMarkupId(true);
final EntityModel entityModel = (EntityModel) rowModel;
[05/15] isis git commit: ISIS-537: fixing CSS for additionalLinkList
class irrespective of whether applied to ul or to a div.
Posted by da...@apache.org.
ISIS-537: fixing CSS for additionalLinkList class irrespective of whether applied to ul or to a div.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e183bbf9
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e183bbf9
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e183bbf9
Branch: refs/heads/master
Commit: e183bbf9abccd55abb55a8f8648cf3c9a10dcecf
Parents: 8a0e45c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 06:08:51 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 06:08:51 2014 +0000
----------------------------------------------------------------------
.../ui/components/additionallinks/AdditionalLinksPanel.css | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/e183bbf9/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 67ea0db..1a4447d 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
@@ -28,10 +28,12 @@ span .fa {
list-style:none;
}
-ul.additionalLinkList {
+ul.additionalLinkList,
+div.additionalLinkList {
padding-bottom: 10px;
}
+.entityCollectionsPanel div.additionalLinkList,
.entityCollectionsPanel ul.additionalLinkList {
padding-bottom: 0px;
}
[12/15] isis git commit: ISIS-537: entity actions positioned on panel
are now rendered.
Posted by da...@apache.org.
ISIS-537: entity actions positioned on panel are now rendered.
Also:
- renaming IDs in ScalarPanelAbstract for associated entity actions, and updating HTML
- deleting unused (empty) CSS files.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9517e5b5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9517e5b5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9517e5b5
Branch: refs/heads/master
Commit: 9517e5b5451fb63e9ed1efe63e3b577e260f87b1
Parents: fd7be2a
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Nov 27 13:41:49 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Nov 27 14:12:04 2014 +0000
----------------------------------------------------------------------
.../wicket/viewer/IsisWicketApplication.java | 14 +++++++++----
.../viewer/wicket/model/links/LinkAndLabel.java | 13 ++++++++++--
.../entity/properties/EntityPropertiesForm.css | 18 ----------------
.../entity/properties/EntityPropertiesForm.java | 22 +++++++++++---------
.../entity/properties/EntityPropertiesPanel.css | 18 ----------------
.../properties/EntityPropertiesPanel.html | 9 +++++---
.../properties/EntityPropertiesPanel.java | 10 +--------
.../components/scalars/ScalarPanelAbstract.html | 4 ++--
.../components/scalars/ScalarPanelAbstract.java | 18 +++++++---------
.../isisapplib/IsisBlobOrClobPanelAbstract.html | 4 ++--
.../scalars/primitive/BooleanPanel.html | 4 ++--
.../scalars/reference/ReferencePanel.html | 4 ++--
.../valuechoices/ValueChoicesSelect2Panel.html | 4 ++--
.../wicket/ui/pages/bootstrap-overrides.css | 7 +++++++
14 files changed, 64 insertions(+), 85 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 706acea..e1ea9f0 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -28,7 +28,10 @@ import de.agilecoders.wicket.webjars.settings.IWebjarsSettings;
import de.agilecoders.wicket.webjars.settings.WebjarsSettings;
import net.ftlines.wicketsource.WicketSource;
-import java.util.*;
+import java.util.Collections;
+import java.util.List;
+import java.util.ServiceLoader;
+import java.util.Set;
import javax.servlet.ServletContext;
import com.google.common.base.Function;
import com.google.common.base.Throwables;
@@ -40,7 +43,12 @@ import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.vaynberg.wicket.select2.ApplicationSettings;
-import org.apache.wicket.*;
+import org.apache.wicket.Application;
+import org.apache.wicket.ConverterLocator;
+import org.apache.wicket.IConverterLocator;
+import org.apache.wicket.Page;
+import org.apache.wicket.RuntimeConfigurationType;
+import org.apache.wicket.SharedResources;
import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
import org.apache.wicket.core.request.mapper.MountedMapper;
@@ -85,7 +93,6 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel;
-import org.apache.isis.viewer.wicket.ui.components.entity.properties.EntityPropertiesForm;
import org.apache.isis.viewer.wicket.ui.components.scalars.string.MultiLineStringPanel;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItemPanel;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssSubMenuItemsPanel;
@@ -490,7 +497,6 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
references.add(PanelUtil.cssResourceReferenceFor(AdditionalLinksPanel.class));
references.add(PanelUtil.cssResourceReferenceFor(CssSubMenuItemsPanel.class));
references.add(PanelUtil.cssResourceReferenceFor(CssMenuItemPanel.class));
- references.add(PanelUtil.cssResourceReferenceFor(EntityPropertiesForm.class));
// non-conforming component factories
references.add(PanelUtil.cssResourceReferenceFor(MultiLineStringPanel.class));
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index 0c73f23..658317c 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -19,15 +19,24 @@
package org.apache.isis.viewer.wicket.model.links;
import java.io.Serializable;
-
+import java.util.List;
import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.isis.applib.annotation.ActionLayout;
public class LinkAndLabel implements Serializable {
private static final long serialVersionUID = 1L;
-
+
+ public static List<LinkAndLabel> positioned(
+ final List<LinkAndLabel> entityActionLinks,
+ final ActionLayout.Position position) {
+ return Lists.newArrayList(Iterables.filter(entityActionLinks, Predicates.positioned(position)));
+ }
+
+
private final AbstractLink link;
private final String label;
private final String disabledReasonIfAny;
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.css
deleted file mode 100644
index eaeea17..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.css
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 8474e4f..bad729d 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -44,6 +44,7 @@ import org.apache.wicket.request.Response;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.visit.IVisit;
import org.apache.wicket.util.visit.IVisitor;
+import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.MemberGroupLayout.ColumnSpans;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
@@ -91,7 +92,8 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
private static final String ID_MEMBER_GROUP = "memberGroup";
private static final String ID_MEMBER_GROUP_NAME = "memberGroupName";
- public static final String ID_ADDITIONAL_LINKS = "additionalLinks";
+ private static final String ID_ASSOCIATED_ACTION_LINKS_PANEL = "associatedActionLinksPanel";
+ private static final String ID_ASSOCIATED_ACTION_LINKS_PANEL_DROPDOWN = "associatedActionLinksPanelDropDown";
private static final String ID_LEFT_COLUMN = "leftColumn";
private static final String ID_MIDDLE_COLUMN = "middleColumn";
@@ -245,12 +247,17 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
addPropertyToForm(entityModel, (OneToOneAssociation) association, propertyRvContainer, memberGroupActions);
}
- // TODO: suppressing until sort out markup and figure out which should contribute etc via Facets.
- memberGroupActions.clear();
+ final List<LinkAndLabel> actionsPanel = LinkAndLabel.positioned(memberGroupActions, ActionLayout.Position.PANEL);
+ final List<LinkAndLabel> actionsPanelDropDown = LinkAndLabel.positioned(memberGroupActions, ActionLayout.Position.PANEL_DROPDOWN);
+
AdditionalLinksPanel.addAdditionalLinks(
- memberGroupRvContainer, ID_ADDITIONAL_LINKS,
- memberGroupActions,
+ memberGroupRvContainer, ID_ASSOCIATED_ACTION_LINKS_PANEL,
+ actionsPanel,
AdditionalLinksPanel.Style.INLINE_LIST);
+ AdditionalLinksPanel.addAdditionalLinks(
+ memberGroupRvContainer, ID_ASSOCIATED_ACTION_LINKS_PANEL_DROPDOWN,
+ actionsPanelDropDown,
+ AdditionalLinksPanel.Style.DROPDOWN);
}
addClassForSpan(markupContainer, span);
@@ -283,11 +290,6 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
}
}
-// protected void addAdditionalLinksTo(final MarkupContainer labelIfRegular) {
-// // ... and add them to the panel
-// AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions);
-// }
-
private List<ObjectAssociation> visibleProperties(final ObjectAdapter adapter, final ObjectSpecification objSpec, Where where) {
return objSpec.getAssociations(Contributed.INCLUDED, visiblePropertyFilter(adapter, where));
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
deleted file mode 100644
index eaeea17..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.css
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
index 36f8e01..e65c157 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.html
@@ -30,7 +30,8 @@
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
<div class="pull-right additionalLinks">
- <div wicket:id="additionalLinks"></div>
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
</div>
</div>
<div class="properties panel-body">
@@ -57,7 +58,8 @@
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
<div class="pull-right additionalLinks">
- <div wicket:id="additionalLinks"></div>
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
</div>
</div>
<div class="properties panel-body">
@@ -76,7 +78,8 @@
<div class="panel-heading">
<span wicket:id="memberGroupName" class="panel-title">[group name]</span>
<div class="pull-right additionalLinks">
- <div wicket:id="additionalLinks"></div>
+ <div wicket:id="associatedActionLinksPanel"></div>
+ <div wicket:id="associatedActionLinksPanelDropDown"></div>
</div>
</div>
<div class="properties panel-body">
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
index 63ad60b..0f49919 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesPanel.java
@@ -19,7 +19,6 @@
package org.apache.isis.viewer.wicket.ui.components.entity.properties;
-import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
@@ -42,16 +41,10 @@ public class EntityPropertiesPanel extends PanelAbstract<EntityModel> {
form.toViewMode(null);
}
- @Override
- public void renderHead(IHeaderResponse response) {
- super.renderHead(response);
-
- //PanelUtil.renderHead(response, getClass());
- }
private void buildGui() {
buildEntityPropertiesAndOrCollectionsGui();
- setOutputMarkupId(true); // so can repaint via ajax
+ setOutputMarkupId(true);
}
private void buildEntityPropertiesAndOrCollectionsGui() {
@@ -64,5 +57,4 @@ public class EntityPropertiesPanel extends PanelAbstract<EntityModel> {
permanentlyHide(ID_ENTITY_PROPERTIES);
}
}
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
index d4eee10..d03b88b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.html
@@ -30,9 +30,9 @@
<span class="scalarValueWrapper">
<wicket:child/>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinksBelow"></span>
+ <span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="additionalLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight"></span>
</div>
<wicket:container wicket:id="scalarIfCompact"></wicket:container>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 18ec1f8..c391f44 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -22,7 +22,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
import java.util.List;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -67,9 +66,10 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected static final String ID_SCALAR_IF_COMPACT = "scalarIfCompact";
+ private static final String ID_ASSOCIATED_ACTION_LINKS_BELOW = "associatedActionLinksBelow";
+ private static final String ID_ASSOCIATED_ACTION_LINKS_RIGHT = "associatedActionLinksRight";
+
protected static final String ID_ADDITIONAL_LINK = "additionalLink";
- protected static final String ID_ADDITIONAL_LINKS_BELOW = "additionalLinksBelow";
- protected static final String ID_ADDITIONAL_LINKS_RIGHT = "additionalLinksRight";
private static final String ID_FEEDBACK = "feedback";
@@ -324,15 +324,11 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
}
protected void addEntityActionLinksBelowAndRight(final MarkupContainer labelIfRegular, final List<LinkAndLabel> entityActions) {
- final List<LinkAndLabel> entityActionsBelow = positioned(entityActions, ActionLayout.Position.BELOW);
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS_BELOW, entityActionsBelow, AdditionalLinksPanel.Style.INLINE_LIST);
-
- final List<LinkAndLabel> entityActionsRight = positioned(entityActions, ActionLayout.Position.RIGHT);
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS_RIGHT, entityActionsRight, AdditionalLinksPanel.Style.DROPDOWN);
- }
+ final List<LinkAndLabel> entityActionsBelow = LinkAndLabel.positioned(entityActions, ActionLayout.Position.BELOW);
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ASSOCIATED_ACTION_LINKS_BELOW, entityActionsBelow, AdditionalLinksPanel.Style.INLINE_LIST);
- private static List<LinkAndLabel> positioned(final List<LinkAndLabel> entityActionLinks, final ActionLayout.Position position) {
- return Lists.newArrayList(Iterables.filter(entityActionLinks, LinkAndLabel.Predicates.positioned(position)));
+ final List<LinkAndLabel> entityActionsRight = LinkAndLabel.positioned(entityActions, ActionLayout.Position.RIGHT);
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ASSOCIATED_ACTION_LINKS_RIGHT, entityActionsRight, AdditionalLinksPanel.Style.DROPDOWN);
}
private static String determineLabelAtCss(ScalarModel model) {
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
index e7119d7..bd5724c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
@@ -36,9 +36,9 @@
<span class="fileName" wicket:id="fileName"></span>
</span>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinksBelow"></span>
+ <span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="additionalLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight"></span>
</div>
<span wicket:id="scalarIfCompact">
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
index 66eb735..b637358 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.html
@@ -30,9 +30,9 @@
<span class="scalarValueWrapper">
<input type="checkbox" name="scalarValue" class="form-control scalarValue" wicket:id="scalarValue" />
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinksBelow"></span>
+ <span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="additionalLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight"></span>
</div>
<input type="checkbox" wicket:id="scalarIfCompact" />
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
index 680ec67..0b92105 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
@@ -41,9 +41,9 @@
</div>
</span>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinksBelow"></span>
+ <span wicket:id="associatedActionLinksBelow"></span>
</span>
- <span wicket:id="additionalLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight"></span>
</div>
<div wicket:id="scalarIfCompact" class="scalarIfCompact">
<div class="scalarValue">
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/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 81cbc9e..f1ef0d8 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
@@ -32,9 +32,9 @@
<input wicket:id="scalarValue" type="hidden" class="choices form-control input-sm select2-remote" style="width: 99.8%;"/>
</div>
<span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="additionalLinksBelow"></span>
+ <span wicket:id="associatedActionLinksBelow"></span>
</div>
- <span wicket:id="additionalLinksRight"></span>
+ <span wicket:id="associatedActionLinksRight"></span>
</div>
<span wicket:id="scalarIfCompact"></span>
</div>
http://git-wip-us.apache.org/repos/asf/isis/blob/9517e5b5/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 2c68090..ce753b7 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
@@ -225,4 +225,11 @@ div.label-left .choicesPlaceholder {
padding-top: 20px;
}
+.additionalLinks.pull-right {
+ margin-right: 5px;
+}
+.additionalLinks.pull-right div {
+ display: inline-block;
+ margin-left: 5px;
+}
[08/15] isis git commit: ISIS-537: CSS positioning of additional
links in panel-headings for properties,
entity collections and standalone collections.
Posted by da...@apache.org.
ISIS-537: CSS positioning of additional links in panel-headings for properties, entity collections and standalone collections.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/53f364c1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/53f364c1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/53f364c1
Branch: refs/heads/master
Commit: 53f364c14ace508b245924d1d938e3cbd28b4f52
Parents: db57699
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 16:31:43 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 16:31:43 2014 +0000
----------------------------------------------------------------------
.../components/additionallinks/AdditionalLinksPanel.css | 2 ++
.../ui/components/widgets/cssmenu/CssMenuPanel.css | 10 ++++++++++
.../isis/viewer/wicket/ui/pages/bootstrap-overrides.css | 12 ++++++++----
3 files changed, 20 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/53f364c1/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 1a4447d..accd5ac 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
@@ -33,6 +33,8 @@ div.additionalLinkList {
padding-bottom: 10px;
}
+.standaloneCollectionPanel div.additionalLinkList,
+.standaloneCollectionPanel ul.additionalLinkList,
.entityCollectionsPanel div.additionalLinkList,
.entityCollectionsPanel ul.additionalLinkList {
padding-bottom: 0px;
http://git-wip-us.apache.org/repos/asf/isis/blob/53f364c1/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 9fc82f4..87bbf2b 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
@@ -227,8 +227,18 @@
list-style:none;
}
+.entityCollectionsPanel .panel-heading .additionalLinkList {
+ margin-right: 10px;
+}
+
.additionalLinkList li {
float:left;
margin-right:10px;
/* margin-bottom: 2px;*/
}
+.entityPropertiesPanel .additionalLinkList li {
+ margin-right:0px;
+}
+.entityPropertiesPanel .properties .panel-heading .additionalLinkList {
+ margin-right: -5px;
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/53f364c1/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 a902a0a..533d34c 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
@@ -181,13 +181,14 @@ div.label-left .choicesPlaceholder {
resize: none;
}
-.entityCollectionsPanel .panel-heading,
-.standaloneCollectionPanel .panel-heading {
- padding-bottom: 15px;
-}
.standaloneCollectionPanel .additionalLinkList {
margin-left: 50px;
+ margin-bottom: 0px;
+ margin-top: -4px;
+}
+.standaloneCollectionPanel .selectorDropdown {
+ margin-top: -4px;
}
.referencePanel .entityLinkSelect2Panel .entityImage {
@@ -206,6 +207,9 @@ div.label-left .choicesPlaceholder {
.entityCollectionsPanel .panel-heading {
padding-bottom: 10px;
}
+.standaloneCollectionPanel .panel-heading {
+ padding-bottom: 5px; /* different from entityCollectionsPanel because of display-inline ? of additionalLinks */
+}
#body {
padding-top: 20px;
[10/15] isis git commit: ISIS-537: new @ActionLayout annotation and
corresponding facet. Applies "actions-right" CSS if there are any actions
associated with property that have layout to the right.
Posted by da...@apache.org.
ISIS-537: new @ActionLayout annotation and corresponding facet. Applies "actions-right" CSS if there are any actions associated with property that have layout to the right.
Refactored the call to add additionalLinks so that can obtain the list of LinkAndLabel (representing the entity actions) in order to pass into the method that adds the CSS
* that method itself has been renamed/refactored: was previously called "applyLabelAtRule(MarkupContainer)", is now called "addPositioningCssTo(MarkupContainer, List<LinkAndLabel>)"
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6393ac92
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6393ac92
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6393ac92
Branch: refs/heads/master
Commit: 6393ac9217a3f3c5bc150e28ec54bef98cd19e5e
Parents: 6ffdaf0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Nov 27 11:23:06 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Nov 27 11:23:06 2014 +0000
----------------------------------------------------------------------
.../viewer/wicket/model/links/LinkAndLabel.java | 10 ++-
.../additionallinks/EntityActionUtil.java | 10 +--
.../collection/bulk/BulkActionsLinkFactory.java | 15 ++--
.../entity/EntityActionLinkFactory.java | 4 --
.../components/scalars/ScalarPanelAbstract.java | 73 ++++++++++++--------
.../scalars/ScalarPanelTextFieldAbstract.java | 18 ++++-
.../ScalarPanelTextFieldDatePickerAbstract.java | 2 -
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 17 ++++-
.../scalars/primitive/BooleanPanel.java | 15 +++-
.../scalars/reference/ReferencePanel.java | 15 +++-
.../cssmenu/ActionLinkFactoryAbstract.java | 18 ++---
.../components/widgets/cssmenu/CssMenuItem.java | 61 ++--------------
.../valuechoices/ValueChoicesSelect2Panel.java | 16 ++++-
.../wicket/ui/pages/bootstrap-overrides.css | 4 ++
.../viewer/wicket/ui/util/CssClassAppender.java | 16 +++++
.../isis/applib/annotation/ActionLayout.java | 44 ++++++++++++
.../isis/applib/annotation/MemberOrder.java | 17 +++--
.../actions/layout/ActionLayoutFacet.java | 45 ++++++++++++
.../layout/ActionLayoutFacetAbstract.java | 50 ++++++++++++++
.../layout/ActionLayoutFacetAnnotation.java | 31 +++++++++
.../layout/ActionLayoutFacetFactory.java | 65 +++++++++++++++++
.../layout/ActionLayoutFacetFallback.java | 31 +++++++++
.../layout/ActionLayoutFacetFromProperties.java | 36 ++++++++++
.../facets/members/order/MemberOrderFacet.java | 13 +++-
.../layoutmetadata/ActionLayoutFacetRepr.java | 22 ++++++
.../metamodel/layoutmetadata/ActionRepr.java | 1 +
.../json/LayoutMetadataReaderFromJson.java | 4 ++
.../metamodel/spec/feature/ObjectAction.java | 54 +++++++++++++++
.../dflt/ProgrammingModelFacetsJava5.java | 3 +
.../ActionLayoutAnnotationFacetFactoryTest.java | 70 +++++++++++++++++++
30 files changed, 649 insertions(+), 131 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index a961b1f..37a4704 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.model.links;
import java.io.Serializable;
import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.isis.applib.annotation.ActionLayout;
public class LinkAndLabel implements Serializable {
@@ -35,6 +36,7 @@ public class LinkAndLabel implements Serializable {
private final String actionIdentifier;
private final String cssClass;
private final String cssClassFa;
+ private final ActionLayout.Position position;
public LinkAndLabel(
final AbstractLink link,
@@ -45,7 +47,8 @@ public class LinkAndLabel implements Serializable {
final boolean prototype,
final String identifier,
final String cssClass,
- final String cssClassFa) {
+ final String cssClassFa,
+ final ActionLayout.Position position) {
this.link = link;
this.label = label;
this.disabledReasonIfAny = disabledReasonIfAny;
@@ -55,6 +58,7 @@ public class LinkAndLabel implements Serializable {
this.actionIdentifier = identifier;
this.cssClass = cssClass;
this.cssClassFa = cssClassFa;
+ this.position = position;
}
public AbstractLink getLink() {
@@ -92,4 +96,8 @@ public class LinkAndLabel implements Serializable {
public String getCssClassFa() {
return cssClassFa;
}
+
+ public ActionLayout.Position getPosition() {
+ return position;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
index 3dc5598..a2ff4bc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
@@ -53,21 +53,21 @@ public final class EntityActionUtil {
private final static MemberOrderFacetComparator memberOrderFacetComparator = new MemberOrderFacetComparator(false);
- public static void appendAdditionalLinksForAssociation(
+ public static List<LinkAndLabel> appendAdditionalLinksForAssociation(
final ScalarModel scalarModel,
final DeploymentType deploymentType,
final String id,
final List<LinkAndLabel> entityActionLinks) {
if (scalarModel.getKind() != ScalarModel.Kind.PROPERTY) {
- return;
+ return entityActionLinks;
}
final ObjectAdapterMemento parentMemento = scalarModel.getParentObjectAdapterMemento();
final EntityModel parentEntityModel = new EntityModel(parentMemento);
final OneToOneAssociation oneToOneAssociation = scalarModel.getPropertyMemento().getProperty();
- appendAdditionalLinksForAssociation(
+ return appendAdditionalLinksForAssociation(
parentEntityModel,
oneToOneAssociation,
deploymentType,
@@ -75,7 +75,7 @@ public final class EntityActionUtil {
entityActionLinks);
}
- public static void appendAdditionalLinksForAssociation(
+ public static List<LinkAndLabel> appendAdditionalLinksForAssociation(
final EntityModel entityModel,
final ObjectAssociation association,
final DeploymentType deploymentType,
@@ -110,6 +110,8 @@ public final class EntityActionUtil {
}
});
entityActionLinks.addAll(linkAndLabels);
+
+ return entityActionLinks;
}
private static List<ObjectAction> addActions(
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/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 1627c6d..f628014 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
@@ -26,6 +26,7 @@ import org.apache.wicket.Session;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.isis.applib.RecoverableException;
+import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.Bulk.InteractionContext.InvokedAs;
import org.apache.isis.applib.services.command.Command;
@@ -49,7 +50,6 @@ import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponse;
import org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponseType;
import org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.ObjectAdapterToggleboxColumn;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ActionLinkFactory;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem;
import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
public final class BulkActionsLinkFactory implements ActionLinkFactory {
@@ -199,13 +199,14 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
};
link.add(new JGrowlBehaviour());
- final boolean explorationOrPrototype = CssMenuItem.isExplorationOrPrototype(objectAction);
- final String actionIdentifier = CssMenuItem.actionIdentifierFor(objectAction);
- final String description = CssMenuItem.descriptionOf(objectAction);
- final String cssClass = CssMenuItem.cssClassFor(objectAction);
- final String cssClassFa = CssMenuItem.cssClassFaFor(objectAction);
+ final boolean explorationOrPrototype = ObjectAction.Utils.isExplorationOrPrototype(objectAction);
+ final String actionIdentifier = ObjectAction.Utils.actionIdentifierFor(objectAction);
+ final String description = ObjectAction.Utils.descriptionOf(objectAction);
+ final String cssClass = ObjectAction.Utils.cssClassFor(objectAction);
+ final String cssClassFa = ObjectAction.Utils.cssClassFaFor(objectAction);
+ final ActionLayout.Position position = ObjectAction.Utils.actionLayoutPositionOf(objectAction);
- return new LinkAndLabel(link, objectAction.getName(), null, description, false, explorationOrPrototype, actionIdentifier, cssClass, cssClassFa);
+ return new LinkAndLabel(link, objectAction.getName(), null, description, false, explorationOrPrototype, actionIdentifier, cssClass, cssClassFa, position);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
index cfafab7..17a55e4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
@@ -84,10 +84,6 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
// Dependencies (from IsisContext)
// ///////////////////////////////////////////////////////////////////
- protected IsisContext getIsisContext() {
- return IsisContext.getInstance();
- }
-
protected PersistenceSession getPersistenceSession() {
return IsisContext.getPersistenceSession();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 2d6ce7c..3aeb759 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -30,12 +30,13 @@ import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
-import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.Model;
+import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facets.actions.layout.ActionLayoutFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.propparam.labelat.LabelAtFacet;
import org.apache.isis.core.runtime.system.DeploymentType;
@@ -43,8 +44,6 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-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.TextFieldValueModel.ScalarModelProvider;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
@@ -67,8 +66,8 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected static final String ID_SCALAR_IF_COMPACT = "scalarIfCompact";
- private static final String ID_ADDITIONAL_LINKS = "additionalLinks";
- public static final String ID_ADDITIONAL_LINK = "additionalLink";
+ protected static final String ID_ADDITIONAL_LINKS = "additionalLinks";
+ protected static final String ID_ADDITIONAL_LINK = "additionalLink";
private static final String ID_FEEDBACK = "feedback";
@@ -274,7 +273,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
ScalarModel model = getModel();
final CssClassFacet facet = model.getFacet(CssClassFacet.class);
if(facet != null) {
- add(new CssClassAppender(facet.value()));
+ CssClassAppender.appendCssClassTo(this, facet.value());
}
}
@@ -289,15 +288,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected void addFeedbackTo(MarkupContainer markupContainer, Component component) {
markupContainer.addOrReplace(new NotificationPanel(ID_FEEDBACK, component, new ComponentFeedbackMessageFilter(component)));
}
-
- protected void addAdditionalLinksTo(final MarkupContainer labelIfRegular) {
- // find the links...
- final List<LinkAndLabel> entityActions = Lists.newArrayList();
-
- EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
- // ... and add them to the panel
- AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
- }
/**
@@ -319,33 +309,56 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
}
/**
- * Applies the {@literal @}{@link org.apache.isis.applib.annotation.LabelAt LabelAt} facet
+ * Applies the {@literal @}{@link org.apache.isis.applib.annotation.LabelAt LabelAt} facet and also CSS based on
+ * whether any of the associated actions have {@literal @}{@link org.apache.isis.applib.annotation.ActionLayout layout} positioned to
+ * the {@link org.apache.isis.applib.annotation.ActionLayout.Position#RIGHT right}.
*
- * @param scalarName The label for the input
- * @param formGroup The form group element
+ * @param markupContainer The form group element
+ * @param entityActionLinks
*/
- protected void applyLabelAtRule(Label scalarName, MarkupContainer formGroup) {
+ protected void addPositioningCssTo(final MarkupContainer markupContainer, final List<LinkAndLabel> entityActionLinks) {
+ CssClassAppender.appendCssClassTo(markupContainer, determineLabelAtCss(getModel()));
+ boolean actionsPositionedOnRight = hasActionsPositioned(entityActionLinks, ActionLayout.Position.RIGHT);
+ if(actionsPositionedOnRight) {
+ CssClassAppender.appendCssClassTo(markupContainer, "actions-right");
+ }
+ }
- final LabelAtFacet facet = getModel().getFacet(LabelAtFacet.class);
+ private static boolean hasActionsPositioned(final List<LinkAndLabel> entityActionLinks, final ActionLayout.Position position) {
+ for (LinkAndLabel entityActionLink : entityActionLinks) {
+ if(entityActionLink.getPosition() == position) {
+ return true;
+ }
+ }
+ return false;
+ }
+ private static String determineLabelAtCss(ScalarModel model) {
+ final LabelAtFacet facet = model.getFacet(LabelAtFacet.class);
if (facet != null) {
switch (facet.value()) {
case LEFT:
- formGroup.add(new CssClassAppender("label-left"));
- break;
+ return "label-left";
case NONE:
- formGroup.add(new CssClassAppender("label-none"));
- break;
+ return "label-none";
case TOP:
- formGroup.add(new CssClassAppender("label-top"));
- break;
- default:
- break;
+ return "label-top";
+ }
+ }
+ return "label-left";
+ }
+ private static String determineActionLayoutCss(ScalarModel model) {
+ final ActionLayoutFacet facet = model.getFacet(ActionLayoutFacet.class);
+ if (facet != null) {
+ switch (facet.position()) {
+ case BELOW:
+ return "action-below";
+ case RIGHT:
+ return "action-right";
}
- } else {
- formGroup.add(new CssClassAppender("label-left"));
}
+ return null;
}
// //////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index d17404d..5b65910 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -20,8 +20,10 @@
package org.apache.isis.viewer.wicket.ui.components.scalars;
import java.io.Serializable;
+import java.util.List;
import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -37,7 +39,10 @@ import org.apache.wicket.model.Model;
import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objpropparam.typicallen.TypicalLengthFacet;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+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.widgets.bootstrap.FormGroup;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
@@ -100,7 +105,12 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(textField));
- applyLabelAtRule(scalarName, labelIfRegular);
+ // find the links...
+ final List<LinkAndLabel> entityActions = Lists.newArrayList();
+
+ EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+
+ addPositioningCssTo(labelIfRegular, entityActions);
if(getModel().isRequired()) {
final String label = scalarName.getDefaultModelObjectAsString();
@@ -117,8 +127,10 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
}
addFeedbackTo(labelIfRegular, textField);
- addAdditionalLinksTo(labelIfRegular);
-
+
+ // ... and add them to the panel
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
index 79c37b5..9aeb23e 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
@@ -29,7 +29,6 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
@@ -40,7 +39,6 @@ import org.apache.isis.core.metamodel.facets.propparam.renderedadjusted.Rendered
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDatePicker;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
* Panel for rendering scalars representing dates, along with a date picker.
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index c122780..3a56411 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -26,6 +26,7 @@ import java.io.IOException;
import java.util.List;
import javax.activation.MimeType;
import javax.imageio.ImageIO;
+import com.google.common.collect.Lists;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -49,7 +50,10 @@ import org.apache.isis.applib.value.Blob;
import org.apache.isis.applib.value.NamedWithMimeType;
import org.apache.isis.core.commons.lang.CloseableExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+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.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
import org.apache.isis.viewer.wicket.ui.util.Components;
@@ -92,7 +96,12 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
final Label scalarName = new Label(ID_SCALAR_NAME, getModel().getName());
labelIfRegular.add(scalarName);
- applyLabelAtRule(scalarName, labelIfRegular);
+ // find the links...
+ final List<LinkAndLabel> entityActions = Lists.newArrayList();
+
+ EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+
+ addPositioningCssTo(labelIfRegular, entityActions);
wicketImage = asWicketImage(ID_IMAGE);
if(wicketImage != null) {
@@ -107,8 +116,10 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
addOrReplace(labelIfRegular);
addFeedbackTo(labelIfRegular, fileUploadField);
- addAdditionalLinksTo(labelIfRegular);
-
+
+ // ... and add them to the panel
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index 7e72963..efba774 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -22,6 +22,8 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.primitive;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.CheckBoxX;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.CheckBoxXConfig;
+import java.util.List;
+import com.google.common.collect.Lists;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -30,7 +32,10 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
+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.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
@@ -78,12 +83,16 @@ public class BooleanPanel extends ScalarPanelAbstract {
final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(checkBox));
labelIfRegular.add(scalarName);
- applyLabelAtRule(scalarName, labelIfRegular);
+ final List<LinkAndLabel> entityActions = Lists.newArrayList();
+ EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+
+ addPositioningCssTo(labelIfRegular, entityActions);
addOrReplace(labelIfRegular);
-
addFeedbackTo(labelIfRegular, checkBox);
- addAdditionalLinksTo(labelIfRegular);
+
+ // ... and add them to the panel
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index eca7b0e..be7921f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -42,12 +42,15 @@ 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.object.autocomplete.AutoCompleteFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
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.model.models.ScalarModelWithPending.Util;
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.additionallinks.EntityActionUtil;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.ObjectAdapterMementoProviderAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
@@ -126,13 +129,19 @@ public class ReferencePanel extends ScalarPanelAbstract {
final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(entityLink));
labelIfRegular.add(scalarName);
- applyLabelAtRule(scalarName, labelIfRegular);
+ // find the links...
+ final List<LinkAndLabel> entityActions = Lists.newArrayList();
+ EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+
+ addPositioningCssTo(labelIfRegular, entityActions);
addOrReplace(labelIfRegular);
addFeedbackTo(labelIfRegular, entityLink);
- addAdditionalLinksTo(labelIfRegular);
-
+
+ // ... and add them to the panel
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+
// add semantics
entityLink.setRequired(getModel().isRequired());
entityLink.add(new IValidator<ObjectAdapter>() {
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
index 5e41856..48eb9d2 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
@@ -36,6 +36,7 @@ import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.util.visit.IVisit;
import org.apache.wicket.util.visit.IVisitor;
import org.apache.isis.applib.RecoverableException;
+import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -244,14 +245,15 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
protected LinkAndLabel newLinkAndLabel(final ObjectAction objectAction, final AbstractLink link, final String disabledReasonIfAny) {
final String label = ObjectAction.Utils.nameFor(objectAction);
- final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(objectAction);
- final boolean prototype = CssMenuItem.isExplorationOrPrototype(objectAction);
- final String actionIdentifier = CssMenuItem.actionIdentifierFor(objectAction);
- final String description = CssMenuItem.descriptionOf(objectAction);
- final String cssClass = CssMenuItem.cssClassFor(objectAction);
- final String cssClassFa = CssMenuItem.cssClassFaFor(objectAction);
-
- return new LinkAndLabel(link, label, disabledReasonIfAny, description, blobOrClob, prototype, actionIdentifier, cssClass, cssClassFa);
+ final boolean blobOrClob = ObjectAction.Utils.returnsBlobOrClob(objectAction);
+ final boolean prototype = ObjectAction.Utils.isExplorationOrPrototype(objectAction);
+ final String actionIdentifier = ObjectAction.Utils.actionIdentifierFor(objectAction);
+ final String description = ObjectAction.Utils.descriptionOf(objectAction);
+ final ActionLayout.Position position = ObjectAction.Utils.actionLayoutPositionOf(objectAction);
+ final String cssClass = ObjectAction.Utils.cssClassFor(objectAction);
+ final String cssClassFa = ObjectAction.Utils.cssClassFaFor(objectAction);
+
+ return new LinkAndLabel(link, label, disabledReasonIfAny, description, blobOrClob, prototype, actionIdentifier, cssClass, cssClassFa, position);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
index b57c630..8d8c157 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
@@ -32,19 +32,14 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.SubmitLink;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.model.Model;
-import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.value.Blob;
-import org.apache.isis.applib.value.Clob;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.ensure.Ensure;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.consent.Consent;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -333,58 +328,16 @@ public class CssMenuItem implements Serializable {
.link(link)
.describedAs(descriptionIfAny)
.enabled(reasonDisabledIfAny)
- .returnsBlobOrClob(returnsBlobOrClob(objectAction))
- .prototyping(isExplorationOrPrototype(objectAction))
+ .returnsBlobOrClob(ObjectAction.Utils.returnsBlobOrClob(objectAction))
+ .prototyping(ObjectAction.Utils.isExplorationOrPrototype(objectAction))
.separator(separator)
- .withActionIdentifier(actionIdentifierFor(objectAction))
- .withCssClass(cssClassFor(objectAction))
- .withCssClassFa(cssClassFaFor(objectAction));
+ .withActionIdentifier(ObjectAction.Utils.actionIdentifierFor(objectAction))
+ .withCssClass(ObjectAction.Utils.cssClassFor(objectAction))
+ .withCssClassFa(ObjectAction.Utils.cssClassFaFor(objectAction));
return builder;
}
- public static boolean returnsBlobOrClob(final ObjectAction objectAction) {
- boolean blobOrClob = false;
- final ObjectSpecification returnType = objectAction.getReturnType();
- if(returnType != null) {
- Class<?> cls = returnType.getCorrespondingClass();
- if (Blob.class.isAssignableFrom(cls) || Clob.class.isAssignableFrom(cls)) {
- blobOrClob = true;
- }
- }
- return blobOrClob;
- }
-
- public static boolean isExplorationOrPrototype(final ObjectAction action) {
- return action.getType().isExploration() || action.getType().isPrototype();
- }
-
- public static String descriptionOf(ObjectAction action) {
- return action.getDescription();
- }
-
-
- public static String actionIdentifierFor(final ObjectAction action) {
- @SuppressWarnings("unused")
- final Identifier identifier = action.getIdentifier();
-
- final String className = action.getOnType().getShortIdentifier();
- final String actionId = action.getId();
- return className + "-" + actionId;
- }
-
- public static String cssClassFor(final ObjectAction action) {
- return facetValueIfAnyFor(action, CssClassFacet.class);
- }
-
- public static String cssClassFaFor(final ObjectAction action) {
- return facetValueIfAnyFor(action, CssClassFaFacet.class);
- }
-
- private static String facetValueIfAnyFor(ObjectAction action, Class<? extends SingleStringValueFacet> x) {
- final SingleStringValueFacet singleStringValueFacet = action.getFacet(x);
- return singleStringValueFacet != null ? singleStringValueFacet.value() : null;
- }
/**
* Creates a {@link Builder} for a submenu item where the provided {@link ActionLinkFactory} is able to provide the target adapter.
@@ -399,8 +352,8 @@ public class CssMenuItem implements Serializable {
final String actionLabel = linkAndLabel.getLabel();
Builder builder = this.newSubMenuItem(actionLabel)
.link(link)
- .prototyping(linkAndLabel.isPrototype())
- .returnsBlobOrClob(linkAndLabel.isBlobOrClob())
+ .prototyping(linkAndLabel.isPrototype())
+ .returnsBlobOrClob(linkAndLabel.isBlobOrClob())
.withFacet(objectAction.getFacet(CssClassFacet.class))
.withFacet(objectAction.getFacet(CssClassFaFacet.class));
return builder;
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/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 e30d698..5066334 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
@@ -34,9 +34,12 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
+import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModelWithPending;
+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.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.ObjectAdapterMementoProviderAbstract;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
@@ -82,11 +85,18 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(select2Field));
labelIfRegular.addOrReplace(scalarName);
- applyLabelAtRule(scalarName, labelIfRegular);
+ // find the links...
+ final List<LinkAndLabel> entityActions = Lists.newArrayList();
+
+ EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+
+ addPositioningCssTo(labelIfRegular, entityActions);
addFeedbackTo(labelIfRegular, select2Field);
- addAdditionalLinksTo(labelIfRegular);
-
+
+ // ... and add them to the panel
+ AdditionalLinksPanel.addAdditionalLinks(labelIfRegular, ID_ADDITIONAL_LINKS, entityActions, AdditionalLinksPanel.Style.INLINE_LIST);
+
return labelIfRegular;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/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 3107426..3010db3 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
@@ -130,6 +130,10 @@ div.label-left .scalarValueWrapper {
float: left;
}
+div.label-left.actions-right .scalarValueWrapper {
+ width: 62%;
+}
+
div.label-top .scalarValueWrapper,
div.label-none .scalarValueWrapper {
width: 99%;
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
index 8c4e1c0..28aeadc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
@@ -19,6 +19,7 @@
package org.apache.isis.viewer.wicket.ui.util;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
@@ -39,6 +40,21 @@ public class CssClassAppender extends AttributeAppender {
this(Model.of(append));
}
+ /**
+ * Adds CSS class to container (providing that the class is non-null.
+ */
+ public static void appendCssClassTo(
+ final MarkupContainer markupContainer,
+ final String cssClass) {
+ if(cssClass == null) {
+ return;
+ }
+ markupContainer.add(new CssClassAppender(cssClass));
+ }
+
+ /**
+ * Utility method to sanitize string into a single CSS class.
+ */
public static String asCssStyle(final String str) {
return str.toLowerCase().replaceAll("[^A-Za-z0-9- ]", "").replaceAll("\\s+", "-");
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
new file mode 100644
index 0000000..0614d1b
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/ActionLayout.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.applib.annotation;
+
+/**
+ * Layout hints for actions.
+ */
+public @interface ActionLayout {
+
+ /**
+ * If associated with a property, indicates the positioning of the
+ * action's button relative to the property.
+ *
+ * <p>
+ * Ignored if the action has not been associated with a property.
+ * </p>
+ */
+ Position position() default Position.BELOW;
+
+ enum Position {
+ BELOW,
+ RIGHT,
+ PANEL,
+ PANEL_DROPDOWN
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
index 3164278..a5b44ad 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/MemberOrder.java
@@ -34,12 +34,21 @@ import java.lang.annotation.Target;
public @interface MemberOrder {
/**
- * Number in Dewey Decimal format representing the order.
+ * Groups or associate members with each other.
+ *
+ * <ul>
+ * <li>For actions, indicates the property or collection to associate.</li>
+ * <li>For properties, indicates the property group</li>
+ * <li>For collections, currently has no meaning</li>
+ * </ul>
*/
- String sequence();
+ String name() default "";
/**
- * Name of the group this set should be known as.
+ * The order of this member relative to other members in the same group, in
+ * dewey-decimal notation. For collections this is relative to each other
+ * (collections aren't grouped).
*/
- String name() default "";
+ String sequence();
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacet.java
new file mode 100644
index 0000000..12d87e2
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacet.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+
+/**
+ * The preferred mechanism for determining the order in which the members of the
+ * object should be rendered.
+ *
+ * <p>
+ * In the standard Apache Isis Programming Model, corresponds to annotating each
+ * of the member methods with the <tt>@ActionLayout</tt>.
+ */
+public interface ActionLayoutFacet extends Facet {
+
+ /**
+ * If associated with a property, indicates the positioning of the
+ * action's button relative to the property.
+ *
+ * <p>
+ * Ignored if the action has not been associated with a property.
+ * </p>
+ */
+ public ActionLayout.Position position();
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAbstract.java
new file mode 100644
index 0000000..1b8a8b52
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAbstract.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+public abstract class ActionLayoutFacetAbstract extends FacetAbstract implements ActionLayoutFacet {
+
+ public static Class<? extends Facet> type() {
+ return ActionLayoutFacet.class;
+ }
+
+ private final ActionLayout.Position position;
+
+ public ActionLayoutFacetAbstract(final ActionLayout.Position position, final FacetHolder holder) {
+ super(type(), holder, Derivation.NOT_DERIVED);
+ this.position = position;
+ }
+
+ @Override
+ public ActionLayout.Position position() {
+ return position;
+ }
+
+ @Override
+ protected String toStringValues() {
+ return "position=" + position;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAnnotation.java
new file mode 100644
index 0000000..0ab9179
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetAnnotation.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+public class ActionLayoutFacetAnnotation extends ActionLayoutFacetAbstract {
+
+ public ActionLayoutFacetAnnotation(final ActionLayout.Position position, final FacetHolder holder) {
+ super(position, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
new file mode 100644
index 0000000..bf1b3de
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import java.util.Properties;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+
+public class ActionLayoutFacetFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+
+ public ActionLayoutFacetFactory() {
+ super(FeatureType.ACTIONS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ ActionLayoutFacet facet = createFromMetadataPropertiesIfPossible(processMethodContext);
+ if(facet == null) {
+ facet = createFromAnnotationIfPossible(processMethodContext);
+ }
+
+ // no-op if null
+ FacetUtil.addFacet(facet);
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ }
+
+ private static ActionLayoutFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("actionLayout");
+ return properties != null ? new ActionLayoutFacetFromProperties(properties, holder) : null;
+ }
+
+ private static ActionLayoutFacetAnnotation createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final ActionLayout annotation = Annotations.getAnnotation(processMethodContext.getMethod(), ActionLayout.class);
+ return (annotation != null) ? new ActionLayoutFacetAnnotation(annotation.position(), processMethodContext.getFacetHolder()) : null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFallback.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFallback.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFallback.java
new file mode 100644
index 0000000..d2909ad
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFallback.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+public class ActionLayoutFacetFallback extends ActionLayoutFacetAbstract {
+
+ public ActionLayoutFacetFallback(final FacetHolder holder) {
+ super(ActionLayout.Position.BELOW, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFromProperties.java
new file mode 100644
index 0000000..f3c7a3d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFromProperties.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import java.util.Properties;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+
+public class ActionLayoutFacetFromProperties extends ActionLayoutFacetAbstract {
+
+ public ActionLayoutFacetFromProperties(Properties properties, FacetHolder holder) {
+ super(valueFrom(properties), holder);
+ }
+
+ private static ActionLayout.Position valueFrom(Properties properties) {
+ return ActionLayout.Position.valueOf(properties.getProperty("position"));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
index 80e3f57..75d0414 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacet.java
@@ -39,13 +39,22 @@ import org.apache.isis.core.metamodel.facets.object.fieldorder.FieldOrderFacet;
public interface MemberOrderFacet extends MultipleValueFacet {
/**
- * To group members.
+ * Groups or associate members with each other.
+ *
+ * <ul>
+ * <li>For actions, indicates the property or collection to associate.</li>
+ * <li>For properties, indicates the property group</li>
+ * <li>For collections, currently has no meaning</li>
+ * </ul>
*/
public String name();
/**
- * The sequence, in dewey-decimal notation.
+ * The order of this member relative to other members in the same group, in
+ * dewey-decimal notation. For collections this is relative to each other
+ * (collections aren't grouped).
*/
public String sequence();
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionLayoutFacetRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionLayoutFacetRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionLayoutFacetRepr.java
new file mode 100644
index 0000000..61ead96
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionLayoutFacetRepr.java
@@ -0,0 +1,22 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.isis.core.metamodel.layoutmetadata;
+
+
+public class ActionLayoutFacetRepr {
+ public String position;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionRepr.java
index c88d2ca..77be27c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionRepr.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/ActionRepr.java
@@ -27,4 +27,5 @@ public class ActionRepr {
public DescribedAsFacetRepr describedAs;
public CssClassFacetRepr cssClass;
public CssClassFaFacetRepr cssClassFa;
+ public ActionLayoutFacetRepr actionLayout;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
index 927cd8c..71cff36 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
@@ -238,6 +238,10 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
if(cssClassFa != null) {
props.setProperty(prefix +"." + actionName + ".cssClassFa.value", cssClassFa.value);
}
+ final ActionLayoutFacetRepr actionLayout = actionRepr.actionLayout;
+ if(actionLayout != null) {
+ props.setProperty(prefix +"." + actionName + ".actionLayout.position", actionLayout.position);
+ }
}
public LayoutMetadata asLayoutMetadata(Class<?> domainClass) throws ReaderException {
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index ae99a25..db477a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -24,6 +24,8 @@ import com.google.common.base.Functions;
import com.google.common.base.Predicate;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
+import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.applib.annotation.Bulk;
import org.apache.isis.applib.annotation.When;
@@ -38,9 +40,13 @@ import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetFilters;
+import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
+import org.apache.isis.core.metamodel.facets.actions.layout.ActionLayoutFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
import org.apache.isis.core.metamodel.interactions.AccessContext;
@@ -215,6 +221,54 @@ public interface ObjectAction extends ObjectMember {
}
return "(no name)";
}
+
+ public static boolean returnsBlobOrClob(final ObjectAction objectAction) {
+ boolean blobOrClob = false;
+ final ObjectSpecification returnType = objectAction.getReturnType();
+ if(returnType != null) {
+ Class<?> cls = returnType.getCorrespondingClass();
+ if (Blob.class.isAssignableFrom(cls) || Clob.class.isAssignableFrom(cls)) {
+ blobOrClob = true;
+ }
+ }
+ return blobOrClob;
+ }
+
+ public static boolean isExplorationOrPrototype(final ObjectAction action) {
+ return action.getType().isExploration() || action.getType().isPrototype();
+ }
+
+ public static String actionIdentifierFor(final ObjectAction action) {
+ @SuppressWarnings("unused")
+ final Identifier identifier = action.getIdentifier();
+
+ final String className = action.getOnType().getShortIdentifier();
+ final String actionId = action.getId();
+ return className + "-" + actionId;
+ }
+
+ public static String descriptionOf(ObjectAction action) {
+ return action.getDescription();
+ }
+
+ public static ActionLayout.Position actionLayoutPositionOf(ObjectAction action) {
+ final ActionLayoutFacet layoutFacet = action.getFacet(ActionLayoutFacet.class);
+ return layoutFacet != null? layoutFacet.position(): ActionLayout.Position.BELOW;
+ }
+
+ public static String cssClassFaFor(final ObjectAction action) {
+ return facetValueIfAnyFor(action, CssClassFaFacet.class);
+ }
+
+ public static String cssClassFor(final ObjectAction action) {
+ return facetValueIfAnyFor(action, CssClassFacet.class);
+ }
+
+ private static String facetValueIfAnyFor(ObjectAction action, Class<? extends SingleStringValueFacet> facetType) {
+ final SingleStringValueFacet singleStringValueFacet = action.getFacet(facetType);
+ return singleStringValueFacet != null ? singleStringValueFacet.value() : null;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index c8bddbf..4030f20 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -27,6 +27,7 @@ import org.apache.isis.core.metamodel.facets.actions.defaults.method.ActionDefau
import org.apache.isis.core.metamodel.facets.actions.exploration.annotation.ExplorationFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.actions.homepage.annotation.HomePageFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.actions.interaction.ActionInteractionFacetFactory;
+import org.apache.isis.core.metamodel.facets.actions.layout.ActionLayoutFacetFactory;
import org.apache.isis.core.metamodel.facets.actions.notcontributed.annotation.NotContributedFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.annotation.NotInServiceMenuFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.method.NotInServiceMenuFacetViaMethodFactory;
@@ -403,6 +404,8 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(LabelAtFacetOnPropertyFactory.class);
addFactory(LabelAtFacetOnParameterAnnotationFactory.class);
+ addFactory(ActionLayoutFacetFactory.class);
+
addFactory(NamedFacetOnTypeAnnotationFactory.class);
addFactory(NamedFacetOnMemberFactory.class);
addFactory(NamedFacetOnParameterAnnotationFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/6393ac92/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
new file mode 100644
index 0000000..3af9fe1
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.actions.layout;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+
+public class ActionLayoutAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
+
+ public void testActionLayoutAnnotationPickedUp() {
+ final ActionLayoutFacetFactory facetFactory = new ActionLayoutFacetFactory();
+
+ class Customer {
+ @SuppressWarnings("unused")
+ @ActionLayout(position = ActionLayout.Position.PANEL)
+ public String foo() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "foo");
+
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(ActionLayoutFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof ActionLayoutFacetAnnotation);
+ final ActionLayoutFacetAnnotation actionLayoutFacetAnnotation = (ActionLayoutFacetAnnotation) facet;
+ assertEquals(ActionLayout.Position.PANEL, actionLayoutFacetAnnotation.position());
+ }
+
+ public void testActionLayoutFallbackPickedUp() {
+ final ActionLayoutFacetFactory facetFactory = new ActionLayoutFacetFactory();
+
+ class Customer {
+ @SuppressWarnings("unused")
+ // no @ActionLayout
+ public String foo() {
+ return null;
+ }
+ }
+ final Method method = findMethod(Customer.class, "foo");
+
+ facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(ActionLayoutFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof ActionLayoutFacetFallback);
+ }
+
+}
[04/15] isis git commit: ISIS-537: adjust margin-top of additional
links for .entityPropertiesPanel,
same way as we do for .entityCollectionsPanel
Posted by da...@apache.org.
ISIS-537: adjust margin-top of additional links for .entityPropertiesPanel, same way as we do for .entityCollectionsPanel
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/8a0e45cc
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/8a0e45cc
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/8a0e45cc
Branch: refs/heads/master
Commit: 8a0e45cc228476bbfa4fb789eb0343186cdba5a8
Parents: 50c00d2
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Nov 26 06:07:06 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Nov 26 06:07:06 2014 +0000
----------------------------------------------------------------------
.../org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/8a0e45cc/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 612dbfa..a902a0a 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
@@ -71,6 +71,7 @@
}
+.entityPropertiesPanel .additionalLinks,
.entityCollectionsPanel .additionalLinksAndSelectorDropDown {
margin-top: -4px;
}