This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new a3a3e41  ISIS-2013: adds support for h2 console menu
a3a3e41 is described below

commit a3a3e41c621d4266774654b9b88581154339e66e
Author: danhaywood <d...@haywood-associates.co.uk>
AuthorDate: Sat Oct 20 12:19:27 2018 +0100

    ISIS-2013: adds support for h2 console menu
---
 .../isis/applib/services/h2/H2ManagerMenu.java     | 74 ++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/h2/H2ManagerMenu.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/h2/H2ManagerMenu.java
new file mode 100644
index 0000000..9367944
--- /dev/null
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/h2/H2ManagerMenu.java
@@ -0,0 +1,74 @@
+/*
+ *  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.services.h2;
+
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.value.LocalResourcePath;
+import org.apache.isis.commons.internal.base._Strings;
+
+@DomainService(
+        nature = NatureOfService.VIEW_MENU_ONLY,
+        objectType = "isisApplib.H2ManagerMenu"
+        )
+@DomainServiceLayout(
+        named = "Prototyping",
+        menuOrder = "500.800",
+        menuBar = DomainServiceLayout.MenuBar.SECONDARY
+        )
+public class H2ManagerMenu {
+
+
+    private String url;
+
+    @PostConstruct
+    public void init(Map<String,String> properties) {
+        this.url = 
properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL");
+    }
+
+
+    public static class ActionDomainEvent extends 
IsisApplibModule.ActionDomainEvent<H2ManagerMenu>{ private static final long 
serialVersionUID = 1L; }
+
+    @Action(
+            semantics = SemanticsOf.SAFE,
+            restrictTo = RestrictTo.PROTOTYPING,
+            domainEvent = ActionDomainEvent.class
+            )
+    @ActionLayout(
+            named = "H2 Console",
+            cssClassFa = "database"
+            )
+    public LocalResourcePath openH2Console() {
+        return new LocalResourcePath("/db/");
+    }
+    public boolean hideHsqlDbManager() {
+        return _Strings.isNullOrEmpty(url) || !url.contains("h2:mem");
+    }
+
+}

Reply via email to