You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2016/03/25 15:17:46 UTC
[08/50] isis git commit: ISIS-1332: added mixin to allow end-users to
clear UI hints for a domain object.
ISIS-1332: added mixin to allow end-users to clear UI hints for a domain object.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ba402093
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ba402093
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ba402093
Branch: refs/heads/ISIS-1224-select2-v4
Commit: ba4020935f82053fcb24a897010223f45cf2f682
Parents: 46bbbed
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Mar 19 13:58:03 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Mar 19 13:58:03 2016 +0000
----------------------------------------------------------------------
.../viewer/services/Object_clearHints.java | 62 ++++++++++++++++++++
1 file changed, 62 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ba402093/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
new file mode 100644
index 0000000..61b8df1
--- /dev/null
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/Object_clearHints.java
@@ -0,0 +1,62 @@
+package org.apache.isis.viewer.wicket.viewer.services;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Mixin;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.bookmark.BookmarkService;
+import org.apache.isis.applib.services.hint.HintStore;
+
+@Mixin
+public class Object_clearHints {
+
+ public static class ActionDomainEvent
+ extends org.apache.isis.applib.services.eventbus.ActionDomainEvent<Object> {
+ }
+
+ private final Object object;
+
+ public Object_clearHints(Object object) {
+ this.object = object;
+ }
+
+ public static class ClearHintsDomainEvent extends ActionDomainEvent { }
+
+ @Action(
+ domainEvent = ClearHintsDomainEvent.class,
+ semantics = SemanticsOf.IDEMPOTENT
+ )
+ @ActionLayout(
+ cssClassFa = "fa-trash",
+ position = ActionLayout.Position.PANEL_DROPDOWN
+ )
+ @MemberOrder(name = "Metadata", sequence = "400.1")
+ public Object $$() {
+ if (getHintStoreUsingWicketSession() != null) {
+ final Bookmark bookmark = bookmarkService.bookmarkFor(object);
+ getHintStoreUsingWicketSession().removeAll(bookmark);
+ }
+ return object;
+ }
+
+ public boolean hide$$() {
+ return getHintStoreUsingWicketSession() == null;
+ }
+
+ private HintStoreUsingWicketSession getHintStoreUsingWicketSession() {
+ return hintStore instanceof HintStoreUsingWicketSession
+ ? (HintStoreUsingWicketSession) hintStore
+ : null;
+ }
+
+ @Inject
+ HintStore hintStore;
+
+ @Inject
+ BookmarkService bookmarkService;
+
+}