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;
+
+}