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 2015/11/13 18:57:21 UTC
[10/11] isis git commit: ISIS-1252: adding support for
CssClassUiEvent. Also adding in concept of Noop events to suppress (and
making these the default); also...
ISIS-1252: adding support for CssClassUiEvent. Also adding in concept of Noop events to suppress (and making these the default); also...
... some cosmetic UI changes for the downloadXml and downloadXsd mixin actions.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/99c55b8c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/99c55b8c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/99c55b8c
Branch: refs/heads/master
Commit: 99c55b8c343f77baa796c59128d89c6fdd1f0d78
Parents: d556d51
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Nov 13 17:56:05 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Nov 13 17:56:05 2015 +0000
----------------------------------------------------------------------
.../applib/annotation/DomainObjectLayout.java | 16 +--
.../services/eventbus/CssClassFaUiEvent.java | 108 -------------------
.../services/eventbus/CssClassUiEvent.java | 15 ++-
.../applib/services/eventbus/IconUiEvent.java | 15 ++-
.../applib/services/eventbus/TitleUiEvent.java | 15 ++-
.../applib/services/jaxb/Dto_downloadXml.java | 8 +-
.../applib/services/jaxb/Dto_downloadXsd.java | 8 +-
...ectLayoutAnnotationUsingCssClassUiEvent.java | 99 +++++++++++++++++
.../DomainObjectLayoutFacetFactory.java | 3 +
...nObjectLayoutAnnotationUsingIconUiEvent.java | 16 +--
...ObjectLayoutAnnotationUsingTitleUiEvent.java | 3 +
.../dflt/ProgrammingModelFacetsJava5.java | 1 -
12 files changed, 165 insertions(+), 142 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
index 535248d..d65dc2f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainObjectLayout.java
@@ -25,7 +25,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import org.apache.isis.applib.services.eventbus.CssClassFaUiEvent;
import org.apache.isis.applib.services.eventbus.CssClassUiEvent;
import org.apache.isis.applib.services.eventbus.IconUiEvent;
import org.apache.isis.applib.services.eventbus.TitleUiEvent;
@@ -46,7 +45,7 @@ public @interface DomainObjectLayout {
* This subclass must provide a no-arg constructor; the fields are set reflectively.
* </p>
*/
- Class<? extends TitleUiEvent<?>> titleUiEvent() default TitleUiEvent.Default.class;
+ Class<? extends TitleUiEvent<?>> titleUiEvent() default TitleUiEvent.Noop.class;
// //////////////////////////////////////
@@ -57,7 +56,7 @@ public @interface DomainObjectLayout {
* This subclass must provide a no-arg constructor; the fields are set reflectively.
* </p>
*/
- Class<? extends IconUiEvent<?>> iconUiEvent() default IconUiEvent.Default.class;
+ Class<? extends IconUiEvent<?>> iconUiEvent() default IconUiEvent.Noop.class;
// //////////////////////////////////////
@@ -68,7 +67,7 @@ public @interface DomainObjectLayout {
* This subclass must provide a no-arg constructor; the fields are set reflectively.
* </p>
*/
- Class<? extends CssClassUiEvent<?>> cssClassUiEvent() default CssClassUiEvent.Default.class;
+ Class<? extends CssClassUiEvent<?>> cssClassUiEvent() default CssClassUiEvent.Noop.class;
/**
* Indicates the css class that a domain class (type) should have.
@@ -78,15 +77,6 @@ public @interface DomainObjectLayout {
// //////////////////////////////////////
/**
- * Which subclass of {@link CssClassFaUiEvent} should be used to obtain a CSS font-awesome class and position.
- *
- * <p>
- * This subclass must provide a no-arg constructor; the fields are set reflectively.
- * </p>
- */
- Class<? extends CssClassFaUiEvent<?>> cssClassFaUiEvent() default CssClassFaUiEvent.Default.class;
-
- /**
* Indicates the <a href="http://fortawesome.github.io/Font-Awesome/">Font Awesome</a> CSS class to decorate an
* domain object.
*/
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassFaUiEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassFaUiEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassFaUiEvent.java
deleted file mode 100644
index 54cf2b7..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassFaUiEvent.java
+++ /dev/null
@@ -1,108 +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.services.eventbus;
-
-import java.util.EventObject;
-
-import org.apache.isis.applib.annotation.DomainObjectLayout;
-
-/**
- * Emitted for subscribers to obtain a cssClassFa hint (equivalent to the {@link DomainObjectLayout#cssClassFa()} attribute), providing the CSS class for a font-awesome
- * icon for this domain object.
- */
-public abstract class CssClassFaUiEvent<S> extends AbstractUiEvent<S> {
-
- private static final long serialVersionUID = 1L;
-
- //region > constructors
- /**
- * If used then the framework will set state via (non-API) setters.
- *
- * <p>
- * Because the {@link EventObject} superclass prohibits a null source, a dummy value is temporarily used.
- * </p>
- */
- public CssClassFaUiEvent() {
- this(null);
- }
-
- public CssClassFaUiEvent(final S source) {
- super(source);
- }
-
- //endregion
-
- //region > Default class
-
- /**
- * Propagated if no custom subclass was specified using
- * {@link org.apache.isis.applib.annotation.DomainObjectLayout#iconUiEvent()} annotation attribute.
- */
- public static class Default extends CssClassFaUiEvent<Object> {
- private static final long serialVersionUID = 1L;
- }
- //endregion
-
- //region > cssClassFa
- private String cssClassFa;
-
- /**
- * The CSS class for a font-awesome icon for this domain object, as provided by a subscriber using {@link #setCssClassFa(String)}.
- */
- public String getCssClassFa() {
- return cssClassFa;
- }
-
-
- /**
- * For subscribers to call to provide a CSS class for a font-awesome icon for this object.
- */
- public void setCssClassFa(final String cssClass) {
- this.cssClassFa = cssClass;
- }
- //endregion
-
- //region > cssClassFaPosition
- private DomainObjectLayout.CssClassFaPosition cssClassFaPosition;
-
- /**
- * The {@link DomainObjectLayout.CssClassFaPosition position} as provided by a subscriber using {@link #setCssClassFaPosition(org.apache.isis.applib.annotation.DomainObjectLayout.CssClassFaPosition)}.
- *
- * <p>
- * This attribute is currently ignored by Isis viewers.
- * </p>
- */
- public DomainObjectLayout.CssClassFaPosition getCssClassFaPosition() {
- return cssClassFaPosition;
- }
-
- /**
- * For subscribers to call to provide the positioning of the font-awesome icon for this object.
- *
- * <p>
- * This attribute is currently ignored by Isis viewers.
- * </p>
- */
- public void setCssClassFaPosition(
- final DomainObjectLayout.CssClassFaPosition cssClassFaPosition) {
- this.cssClassFaPosition = cssClassFaPosition;
- }
- //endregion
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassUiEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassUiEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassUiEvent.java
index f43c603..49c41ec 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassUiEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CssClassUiEvent.java
@@ -50,14 +50,25 @@ public abstract class CssClassUiEvent<S> extends AbstractUiEvent<S> {
//region > Default class
/**
- * Propagated if no custom subclass was specified using
- * {@link org.apache.isis.applib.annotation.DomainObjectLayout#iconUiEvent()} annotation attribute.
+ * Implementation provided as a convenience for domain objects that have no custom subclass.
*/
public static class Default extends CssClassUiEvent<Object> {
private static final long serialVersionUID = 1L;
}
//endregion
+ //region > Noop class
+
+ /**
+ * Marker class that is the default for
+ * {@link org.apache.isis.applib.annotation.DomainObjectLayout#cssClassUiEvent()} annotation attribute, meaning that
+ * an event should <i>not</i> be emitted by default.
+ */
+ public static class Noop extends CssClassUiEvent<Object> {
+ private static final long serialVersionUID = 1L;
+ }
+ //endregion
+
//region > cssClass
private String cssClass;
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/IconUiEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/IconUiEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/IconUiEvent.java
index 5924a95..2a777e2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/IconUiEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/IconUiEvent.java
@@ -48,14 +48,25 @@ public abstract class IconUiEvent<S> extends AbstractUiEvent<S> {
//region > Default class
/**
- * Propagated if no custom subclass was specified using
- * {@link org.apache.isis.applib.annotation.DomainObjectLayout#iconUiEvent()} annotation attribute.
+ * Implementation provided as a convenience for domain objects that have no custom subclass.
*/
public static class Default extends IconUiEvent<Object> {
private static final long serialVersionUID = 1L;
}
//endregion
+ //region > Noop class
+
+ /**
+ * Marker class that is the default for
+ * {@link org.apache.isis.applib.annotation.DomainObjectLayout#iconUiEvent()} annotation attribute, meaning that
+ * an event should <i>not</i> be emitted by default.
+ */
+ public static class Noop extends IconUiEvent<Object> {
+ private static final long serialVersionUID = 1L;
+ }
+ //endregion
+
//region > iconName
private String iconName;
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/TitleUiEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/TitleUiEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/TitleUiEvent.java
index 181015d..0bb9b91 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/TitleUiEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/TitleUiEvent.java
@@ -32,14 +32,25 @@ public abstract class TitleUiEvent<S> extends AbstractUiEvent<S> {
//region > Default class
/**
- * Propagated if no custom subclass was specified using
- * {@link org.apache.isis.applib.annotation.DomainObjectLayout#titleUiEvent()} annotation attribute.
+ * Implementation provided as a convenience for domain objects that have no custom subclass.
*/
public static class Default extends TitleUiEvent<Object> {
private static final long serialVersionUID = 1L;
}
//endregion
+ //region > Noop class
+
+ /**
+ * Marker class that is the default for
+ * {@link org.apache.isis.applib.annotation.DomainObjectLayout#titleUiEvent()} annotation attribute, meaning that
+ * an event should <i>not</i> be emitted by default.
+ */
+ public static class Noop extends TitleUiEvent<Object> {
+ private static final long serialVersionUID = 1L;
+ }
+ //endregion
+
//region > constructors
/**
* If used then the framework will set state via (non-API) setters.
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXml.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXml.java b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXml.java
index 91332b3..79c4006 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXml.java
@@ -25,8 +25,10 @@ import javax.xml.bind.JAXBException;
import org.apache.isis.applib.FatalException;
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.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.value.Clob;
@@ -50,7 +52,11 @@ public class Dto_downloadXml {
@Action(
domainEvent = ActionDomainEvent.class,
- semantics = SemanticsOf.SAFE
+ semantics = SemanticsOf.SAFE,
+ restrictTo = RestrictTo.PROTOTYPING
+ )
+ @ActionLayout(
+ cssClassFa = "fa-download"
)
@MemberOrder(sequence = "500.1")
public Object $$(final String fileName) throws JAXBException, IOException {
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXsd.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXsd.java b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXsd.java
index ce10bb1..dfb4c90 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXsd.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/Dto_downloadXsd.java
@@ -30,8 +30,10 @@ import javax.inject.Inject;
import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.FatalException;
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.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.value.Blob;
import org.apache.isis.applib.value.Clob;
@@ -56,7 +58,11 @@ public class Dto_downloadXsd {
@Action(
domainEvent = ActionDomainEvent.class,
- semantics = SemanticsOf.SAFE
+ semantics = SemanticsOf.SAFE,
+ restrictTo = RestrictTo.PROTOTYPING
+ )
+ @ActionLayout(
+ cssClassFa = "fa-download"
)
@MemberOrder(sequence = "500.2")
public Object $$(final String fileName) {
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
new file mode 100644
index 0000000..9f21e51
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
@@ -0,0 +1,99 @@
+/*
+ * 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.object.domainobjectlayout;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.isis.applib.NonRecoverableException;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.applib.services.eventbus.CssClassUiEvent;
+import org.apache.isis.applib.services.eventbus.EventBusService;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+
+public class CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent extends FacetAbstract implements
+ CssClassFacet {
+
+ private static final Logger LOG = LoggerFactory.getLogger(CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.class);
+
+ public static Facet create(
+ final DomainObjectLayout domainObjectLayout,
+ final ServicesInjector servicesInjector,
+ final FacetHolder facetHolder) {
+ if(domainObjectLayout == null) {
+ return null;
+ }
+ final Class<? extends CssClassUiEvent<?>> cssClassUiEventClass = domainObjectLayout.cssClassUiEvent();
+ if(CssClassUiEvent.Noop.class.isAssignableFrom(cssClassUiEventClass)) {
+ return null;
+ }
+
+ final EventBusService eventBusService = servicesInjector.lookupService(EventBusService.class);
+
+ return new CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent(
+ cssClassUiEventClass, eventBusService, facetHolder);
+ }
+
+ private final Class<? extends CssClassUiEvent<?>> cssClassUiEventClass;
+ private final EventBusService eventBusService;
+
+ public CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent(
+ final Class<? extends CssClassUiEvent<?>> cssClassUiEventClass,
+ final EventBusService eventBusService,
+ final FacetHolder holder) {
+ super(CssClassFacetAbstract.type(), holder, Derivation.NOT_DERIVED);
+ this.cssClassUiEventClass = cssClassUiEventClass;
+ this.eventBusService = eventBusService;
+ }
+
+ @Override
+ public String cssClass(final ObjectAdapter objectAdapter) {
+
+ final CssClassUiEvent<Object> cssClassUiEvent = newCssClassUiEvent(objectAdapter);
+
+ eventBusService.post(cssClassUiEvent);
+
+ final String cssClass = cssClassUiEvent.getCssClass();
+ return cssClass; // could be null
+ }
+
+ private CssClassUiEvent<Object> newCssClassUiEvent(final ObjectAdapter owningAdapter) {
+ final Object domainObject = owningAdapter.getObject();
+ return newCssClassUiEvent(domainObject);
+ }
+
+ private CssClassUiEvent<Object> newCssClassUiEvent(final Object domainObject) {
+ try {
+ final CssClassUiEvent<Object> cssClassUiEvent = (CssClassUiEvent<Object>) cssClassUiEventClass.newInstance();
+ cssClassUiEvent.setSource(domainObject);
+ return cssClassUiEvent;
+ } catch (InstantiationException | IllegalAccessException ex) {
+ throw new NonRecoverableException(ex);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
index 7bb700e..51e952d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
@@ -48,6 +48,9 @@ public class DomainObjectLayoutFacetFactory extends FacetFactoryAbstract impleme
FacetUtil.addFacet(
IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.create(
domainObjectLayout, servicesInjector, facetHolder));
+ FacetUtil.addFacet(
+ CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.create(
+ domainObjectLayout, servicesInjector, facetHolder));
FacetUtil.addFacet(
CssClassFacetForDomainObjectLayoutAnnotation.create(domainObjectLayout, facetHolder));
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
index ffe01b9..4036892 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
@@ -26,13 +26,11 @@ import org.apache.isis.applib.NonRecoverableException;
import org.apache.isis.applib.annotation.DomainObjectLayout;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.applib.services.eventbus.IconUiEvent;
-import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacetAbstract;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent extends IconFacetAbstract {
@@ -46,31 +44,25 @@ public class IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent extends Ic
return null;
}
final Class<? extends IconUiEvent<?>> iconUiEventClass = domainObjectLayout.iconUiEvent();
+ if(IconUiEvent.Noop.class.isAssignableFrom(iconUiEventClass)) {
+ return null;
+ }
- final TranslationService translationService = servicesInjector.lookupService(TranslationService.class);
- final ObjectSpecification facetHolderAsSpec = (ObjectSpecification) facetHolder; // bit naughty...
- final String translationContext = facetHolderAsSpec.getCorrespondingClass().getCanonicalName();
final EventBusService eventBusService = servicesInjector.lookupService(EventBusService.class);
return new IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent(
- iconUiEventClass, translationService, translationContext, eventBusService, facetHolder);
+ iconUiEventClass, eventBusService, facetHolder);
}
private final Class<? extends IconUiEvent<?>> iconUiEventClass;
- private final TranslationService translationService;
- private final String translationContext;
private final EventBusService eventBusService;
public IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent(
final Class<? extends IconUiEvent<?>> iconUiEventClass,
- final TranslationService translationService,
- final String translationContext,
final EventBusService eventBusService,
final FacetHolder holder) {
super(holder);
this.iconUiEventClass = iconUiEventClass;
- this.translationService = translationService;
- this.translationContext = translationContext;
this.eventBusService = eventBusService;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
index 55f0b0d..dd8c457 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
@@ -49,6 +49,9 @@ public class TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent extends
}
final Class<? extends TitleUiEvent<?>> titleUiEventClass = domainObjectLayout.titleUiEvent();
+ if(TitleUiEvent.Noop.class.isAssignableFrom(titleUiEventClass)) {
+ return null;
+ }
final TranslationService translationService = servicesInjector.lookupService(TranslationService.class);
final ObjectSpecification facetHolderAsSpec = (ObjectSpecification) facetHolder; // bit naughty...
final String translationContext = facetHolderAsSpec.getCorrespondingClass().getCanonicalName();
http://git-wip-us.apache.org/repos/asf/isis/blob/99c55b8c/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 417297f..3ce5e46 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
@@ -399,7 +399,6 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
// must come after DomainObjectLayoutFacetFactory
addFactory(TitleAnnotationFacetFactory.class);
addFactory(TitleFacetViaMethodsFactory.class);
-
addFactory(IconFacetMethodFactory.class);
addFactory(CssClassFacetMethodFactory.class);