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/28 18:44:56 UTC
[1/5] isis git commit: ISIS-537: pattern matching of CSS classes
based on action name (similar to FA icons)
Repository: isis
Updated Branches:
refs/heads/master 2aa0df30a -> 0a447948a
ISIS-537: pattern matching of CSS classes based on action name (similar to FA icons)
Also: required to inject ServicesInjector into facet factory to query whether a method was from a service or not. To support this, refactored so that ServicesInjectorDefault is basically has global scope as opposed to session/request scope. Implementation adapted from that already used for SpecificationLoader (aka the ObjectReflector). A bit hacky, but a move in the right general direction.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3d836959
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3d836959
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3d836959
Branch: refs/heads/master
Commit: 3d836959677bacba1db426e0cf5192c576608f3d
Parents: 2aa0df3
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Nov 28 00:20:14 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Nov 28 16:10:53 2014 +0000
----------------------------------------------------------------------
.../isis/core/metamodel/app/IsisMetaModel.java | 2 +-
...ssClassFacetOnActionFromConfiguredRegex.java | 30 ++++
...FacetOnActionFromConfiguredRegexFactory.java | 174 +++++++++++++++++++
.../annotprop/CssClassFacetOnMemberFactory.java | 21 ++-
.../CssClassFaFacetOnMemberFactory.java | 6 +-
.../runtimecontext/RuntimeContext.java | 2 +-
.../runtimecontext/RuntimeContextAbstract.java | 24 ++-
.../noruntime/RuntimeContextNoRuntime.java | 3 +-
.../services/ServicesInjectorDelegator.java | 67 +++++++
.../specloader/ObjectReflectorDefault.java | 11 +-
.../dflt/ProgrammingModelFacetsJava5.java | 3 +
.../metamodel/app/IsisMetaModelTest_init.java | 2 +-
.../internal/RuntimeContextFromSession.java | 57 ++----
.../IsisSystemAbstract.java | 2 +-
.../src/main/webapp/WEB-INF/isis.properties | 24 ++-
.../src/main/webapp/WEB-INF/isis.properties | 22 ++-
16 files changed, 386 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
index f0cd890..ad8a6a1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
@@ -181,7 +181,7 @@ public class IsisMetaModel implements ApplicationScopedComponent {
*/
public ServicesInjector getDependencyInjector() {
ensureInitialized();
- return runtimeContext.getDependencyInjector();
+ return runtimeContext.getServicesInjector();
}
// ///////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegex.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegex.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegex.java
new file mode 100644
index 0000000..32c1c93
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegex.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.members.cssclass.annotprop;
+
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
+
+public class CssClassFacetOnActionFromConfiguredRegex extends CssClassFacetAbstract {
+
+ public CssClassFacetOnActionFromConfiguredRegex(final String value, final FacetHolder holder) {
+ super(value, holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
new file mode 100644
index 0000000..b6b19ba
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
@@ -0,0 +1,174 @@
+/*
+ * 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.members.cssclass.annotprop;
+
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import com.google.common.base.Strings;
+import com.google.common.collect.Maps;
+import org.apache.isis.core.commons.config.ConfigurationConstants;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationAware;
+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.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+
+public class CssClassFacetOnActionFromConfiguredRegexFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory, IsisConfigurationAware, ServicesInjectorAware {
+
+ public CssClassFacetOnActionFromConfiguredRegexFactory() {
+ super(FeatureType.ACTIONS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ final FacetedMethod facetHolder = processMethodContext.getFacetHolder();
+ if(facetHolder.containsDoOpFacet(CssClassFacet.class)) {
+ return;
+ }
+
+ final Method method = processMethodContext.getMethod();
+ final String name = method.getName();
+
+ // bit of a bodge... we want to ignore any service actions; any contributed actions will be picked up below
+ // in process(final ProcessContributeeMemberContext processMemberContext)
+ //
+ // if we don't do this, then any contributed properties or collections end up picking up the CssClass; almost
+ // certainly not what is expected/required.
+ final Class<?> owningType = facetHolder.getOwningType();
+ final Object service = servicesInjector.lookupService(owningType);
+ if(service != null) {
+ return;
+ }
+ CssClassFacet cssClassFacet = createFromConfiguredRegexIfPossible(name, facetHolder);
+
+ // no-op if null
+ FacetUtil.addFacet(cssClassFacet);
+ }
+
+
+ @Override
+ public void process(final ProcessContributeeMemberContext processMemberContext) {
+
+ final ObjectMember objectMember = processMemberContext.getFacetHolder();
+ if(!(objectMember instanceof ObjectAction)) {
+ return;
+ }
+ if(objectMember.containsDoOpFacet(CssClassFacet.class)) {
+ return;
+ }
+
+ final String id = objectMember.getId();
+ CssClassFacet cssClassFacet = createFromConfiguredRegexIfPossible(id, objectMember);
+
+ // no-op if null
+ FacetUtil.addFacet(cssClassFacet);
+ }
+
+ //region > cssClassFromPattern
+
+ private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
+
+ private CssClassFacet createFromConfiguredRegexIfPossible(String name, FacetHolder facetHolder) {
+ String value = cssIfAnyFor(name);
+ return value != null
+ ? new CssClassFacetOnActionFromConfiguredRegex(value, facetHolder)
+ : null;
+ }
+
+ private String cssIfAnyFor(String name) {
+ final Map<Pattern, String> cssClassByPattern = getCssClassByPattern();
+
+ for (Map.Entry<Pattern, String> entry : cssClassByPattern.entrySet()) {
+ final Pattern pattern = entry.getKey();
+ final String cssClass = entry.getValue();
+ if(pattern.matcher(name).matches()) {
+ return cssClass;
+ }
+ }
+ return null;
+ }
+
+ private Map<Pattern,String> cssClassByPattern;
+
+ private Map<Pattern, String> getCssClassByPattern() {
+ if (cssClassByPattern == null) {
+ // build lazily
+ final String cssClassPatterns = configuration.getString("isis.reflector.facet.cssClass.patterns");
+ this.cssClassByPattern = buildCssClassByPattern(cssClassPatterns);
+ }
+ return cssClassByPattern;
+ }
+
+ private static Map<Pattern, String> buildCssClassByPattern(String cssClassPatterns) {
+ final Map<Pattern,String> cssClassByPattern = Maps.newLinkedHashMap();
+ if(cssClassPatterns != null) {
+ final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
+ final Map<String,String> cssClassByRegex = Maps.newLinkedHashMap();
+ while (regexToCssClasses.hasMoreTokens()) {
+ String regexToCssClass = regexToCssClasses.nextToken().trim();
+ if (Strings.isNullOrEmpty(regexToCssClass)) {
+ continue;
+ }
+ final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
+ if(matcher.matches()) {
+ cssClassByRegex.put(matcher.group(1), matcher.group(2));
+ }
+ }
+ for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
+ final String regex = entry.getKey();
+ final String faIcon = entry.getValue();
+ cssClassByPattern.put(Pattern.compile(regex), faIcon);
+ }
+ }
+ return cssClassByPattern;
+ }
+ //endregion
+
+
+ //region > injected
+ private IsisConfiguration configuration;
+
+ @Override
+ public void setConfiguration(final IsisConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ private ServicesInjector servicesInjector;
+ @Override
+ public void setServicesInjector(ServicesInjector servicesInjector) {
+ this.servicesInjector = servicesInjector;
+ }
+
+ //endregion
+
+}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
index b645220..35cc1b3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
@@ -20,8 +20,9 @@
package org.apache.isis.core.metamodel.facets.members.cssclass.annotprop;
import java.util.Properties;
-
import org.apache.isis.applib.annotation.CssClass;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationAware;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,7 +31,7 @@ import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-public class CssClassFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
+public class CssClassFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory, IsisConfigurationAware {
public CssClassFacetOnMemberFactory() {
super(FeatureType.MEMBERS);
@@ -42,15 +43,16 @@ public class CssClassFacetOnMemberFactory extends FacetFactoryAbstract implement
if(cssClassFacet == null) {
cssClassFacet = createFromAnnotationIfPossible(processMethodContext);
}
-
+
// no-op if null
FacetUtil.addFacet(cssClassFacet);
}
@Override
- public void process(ProcessContributeeMemberContext processMemberContext) {
+ public void process(final ProcessContributeeMemberContext processMemberContext) {
CssClassFacet cssClassFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+
// no-op if null
FacetUtil.addFacet(cssClassFacet);
}
@@ -64,10 +66,21 @@ public class CssClassFacetOnMemberFactory extends FacetFactoryAbstract implement
return properties != null ? new CssClassFacetOnMemberFromProperties(properties, holder) : null;
}
+
private CssClassFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
final CssClass annotation = Annotations.getAnnotation(processMethodContext.getMethod(), CssClass.class);
return annotation != null ? new CssClassFacetOnMemberAnnotation(annotation.value(), processMethodContext.getFacetHolder()) : null;
}
+
+ //region > injected
+ private IsisConfiguration configuration;
+
+ @Override
+ public void setConfiguration(final IsisConfiguration configuration) {
+ this.configuration = configuration;
+ }
+ //endregion
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
index 6e8dd1d..09ec8d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -39,9 +39,8 @@ import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
-public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory, IsisConfigurationAware{
+public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory, IsisConfigurationAware {
- private IsisConfiguration configuration;
public CssClassFaFacetOnMemberFactory() {
super(FeatureType.ACTIONS_ONLY);
@@ -85,7 +84,6 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
//region > faIconFromPattern
-
private final static Pattern FA_ICON_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
private CssClassFaFacet createFromConfiguredRegexIfPossible(final ProcessMethodContext processMethodContext) {
@@ -153,6 +151,8 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
//endregion
//region > injected
+ private IsisConfiguration configuration;
+
@Override
public void setConfiguration(final IsisConfiguration configuration) {
this.configuration = configuration;
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 696812b..60605ea 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -66,7 +66,7 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
/**
* aka the ServicesInjector...
*/
- public ServicesInjector getDependencyInjector();
+ public ServicesInjector getServicesInjector();
public ObjectDirtier getObjectDirtier();
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 333986f..7cba2ba 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -24,12 +24,20 @@ import java.util.Collection;
import java.util.List;
import java.util.Properties;
import com.google.common.collect.Lists;
-import org.apache.isis.core.metamodel.spec.*;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
+import org.apache.isis.core.metamodel.services.ServicesInjectorDelegator;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderDelegator;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
-public abstract class RuntimeContextAbstract implements RuntimeContext, SpecificationLoaderSpiAware {
+public abstract class RuntimeContextAbstract implements RuntimeContext, SpecificationLoaderSpiAware, ServicesInjectorAware {
private final SpecificationLoaderDelegator specificationLookupDelegator = new SpecificationLoaderDelegator();
-
+ protected final ServicesInjectorDelegator servicesInjectorDelegator = new ServicesInjectorDelegator();
+
private Properties properties;
@@ -54,7 +62,7 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
protected void injectSubcomponentsInto(final Object candidate) {
getAdapterManager().injectInto(candidate);
getAuthenticationSessionProvider().injectInto(candidate);
- getDependencyInjector().injectInto(candidate);
+ getServicesInjector().injectInto(candidate);
getDomainObjectServices().injectInto(candidate);
getLocalizationProvider().injectInto(candidate);
getObjectInstantiator().injectInto(candidate);
@@ -160,4 +168,12 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
return list;
}
+
+ //region > injected services
+ @Override
+ public void setServicesInjector(ServicesInjector servicesInjector) {
+ this.servicesInjectorDelegator.setServicesInjectorSpi((ServicesInjectorSpi) servicesInjector);
+ }
+ //endregion
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index 8e19839..36a25b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -336,7 +336,7 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
@Override
- public ServicesInjector getDependencyInjector() {
+ public ServicesInjector getServicesInjector() {
return servicesInjector;
}
@@ -384,5 +384,4 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
public TransactionState getTransactionState() {
throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
}
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java
new file mode 100644
index 0000000..6a9f168
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java
@@ -0,0 +1,67 @@
+/*
+ * 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.services;
+
+import java.util.List;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class ServicesInjectorDelegator implements ServicesInjector {
+
+ private ServicesInjectorSpi servicesInjectorSpi;
+
+ public void setServicesInjectorSpi(ServicesInjectorSpi servicesInjectorSpi) {
+ this.servicesInjectorSpi = servicesInjectorSpi;
+ servicesInjectorSpi.init();
+ }
+
+ @Override
+ public List<Object> getRegisteredServices() {
+ return servicesInjectorSpi.getRegisteredServices();
+ }
+
+ @Override
+ public void injectServicesInto(Object domainObject) {
+ servicesInjectorSpi.injectServicesInto(domainObject);
+ }
+
+ @Override
+ public void injectServicesInto(List<Object> domainObjects) {
+ servicesInjectorSpi.injectServicesInto(domainObjects);
+ }
+
+ @Override
+ public <T> T lookupService(Class<T> serviceClass) {
+ return servicesInjectorSpi.lookupService(serviceClass);
+ }
+
+ @Override
+ public <T> List<T> lookupServices(Class<T> serviceClass) {
+ return servicesInjectorSpi.lookupServices(serviceClass);
+ }
+
+ @Override
+ public void injectInto(Object candidate) {
+ if (ServicesInjectorAware.class.isAssignableFrom(candidate.getClass())) {
+ final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
+ cast.setServicesInjector(this);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 8634828..1a7d340 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -47,7 +47,9 @@ import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
+import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
import org.apache.isis.core.metamodel.spec.*;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
@@ -440,7 +442,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
return new ObjectSpecificationOnStandaloneList(specContext, objectMemberContext);
} else {
final SpecificationLoaderSpi specificationLoader = this;
- final ServicesInjector dependencyInjector = getRuntimeContext().getDependencyInjector();
+ final ServicesInjector dependencyInjector = getRuntimeContext().getServicesInjector();
final CreateObjectContext createObjectContext = new CreateObjectContext(adapterMap, dependencyInjector);
final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, facetProcessor);
return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, specContext, objectMemberContext, createObjectContext);
@@ -532,6 +534,13 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
final SpecificationLoaderAware cast = SpecificationLoaderAware.class.cast(candidate);
cast.setSpecificationLookup(this);
}
+ if (ServicesInjectorAware.class.isAssignableFrom(candidateClass)) {
+ final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
+ final ServicesInjectorDefault servicesInjector = new ServicesInjectorDefault();
+ servicesInjector.setSpecificationLookup(this);
+ servicesInjector.setServices(this.services);
+ cast.setServicesInjector(servicesInjector);
+ }
}
// /////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/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 ba149cb..6b8b96e 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
@@ -53,6 +53,7 @@ import org.apache.isis.core.metamodel.facets.collections.parented.ParentedFacetS
import org.apache.isis.core.metamodel.facets.collections.sortedby.annotation.SortedByFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.collections.typeof.annotation.TypeOfFacetOnCollectionAnnotationFactory;
import org.apache.isis.core.metamodel.facets.fallback.FallbackFacetFactory;
+import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnActionFromConfiguredRegexFactory;
import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
@@ -362,6 +363,8 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(CssClassFacetOnTypeAnnotationFactory.class);
addFactory(CssClassFacetOnMemberFactory.class);
+ // must come after CssClassFacetOnMemberFactory
+ addFactory(CssClassFacetOnActionFromConfiguredRegexFactory.class);
addFactory(CssClassFaFacetOnTypeAnnotationFactory.class);
addFactory(CssClassFaFacetOnMemberFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
index fb3ba4c..889c8e8 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
@@ -98,7 +98,7 @@ public class IsisMetaModelTest_init {
allowing(mockRuntimeContext).getQuerySubmitter();
will(returnValue(mockQuerySubmitter));
- allowing(mockRuntimeContext).getDependencyInjector();
+ allowing(mockRuntimeContext).getServicesInjector();
will(returnValue(mockDependencyInjector));
allowing(mockRuntimeContext).getServicesProvider();
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index bc0d459..a8bf011 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -28,7 +28,18 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAbstract;
import org.apache.isis.core.commons.authentication.MessageBroker;
-import org.apache.isis.core.metamodel.adapter.*;
+import org.apache.isis.core.metamodel.adapter.DomainObjectServices;
+import org.apache.isis.core.metamodel.adapter.DomainObjectServicesAbstract;
+import org.apache.isis.core.metamodel.adapter.LocalizationProviderAbstract;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.ObjectDirtier;
+import org.apache.isis.core.metamodel.adapter.ObjectDirtierAbstract;
+import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
+import org.apache.isis.core.metamodel.adapter.ObjectPersistorAbstract;
+import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
+import org.apache.isis.core.metamodel.adapter.QuerySubmitterAbstract;
+import org.apache.isis.core.metamodel.adapter.ServicesProvider;
+import org.apache.isis.core.metamodel.adapter.ServicesProviderAbstract;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
@@ -37,7 +48,6 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
@@ -64,7 +74,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
private final ObjectInstantiator objectInstantiator;
private final ObjectPersistor objectPersistor;
private final ServicesProvider servicesProvider;
- private final ServicesInjector servicesInjector;
private final QuerySubmitter querySubmitter;
private final DomainObjectServices domainObjectServices;
private final LocalizationProviderAbstract localizationProvider;
@@ -177,7 +186,7 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
@Override
public <T> T lookupService(Class<T> cls) {
- return getPersistenceSession().getServicesInjector().lookupService(cls);
+ return servicesInjectorDelegator.lookupService(cls);
}
};
this.domainObjectServices = new DomainObjectServicesAbstract() {
@@ -281,42 +290,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
return list.size() > 0 ? list.get(0) : null;
}
};
- this.servicesInjector = new ServicesInjector() {
-
- @Override
- public void injectServicesInto(final Object object) {
- getPersistenceSession().getServicesInjector().injectServicesInto(object);
- }
-
- @Override
- public void injectServicesInto(List<Object> objects) {
- getPersistenceSession().getServicesInjector().injectServicesInto(objects);
- }
-
- @Override
- public <T> T lookupService(Class<T> serviceClass) {
- return getPersistenceSession().getServicesInjector().lookupService(serviceClass);
- }
-
- @Override
- public <T> List<T> lookupServices(Class<T> serviceClass) {
- return getPersistenceSession().getServicesInjector().lookupServices(serviceClass);
- }
-
- @Override
- public void injectInto(Object candidate) {
- if (ServicesInjectorAware.class.isAssignableFrom(candidate.getClass())) {
- final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
- cast.setServicesInjector(this);
- }
- }
-
- @Override
- public List<Object> getRegisteredServices() {
- return getPersistenceSession().getServicesInjector().getRegisteredServices();
- }
-
- };
this.localizationProvider = new LocalizationProviderAbstract() {
@Override
@@ -371,8 +344,8 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
@Override
- public ServicesInjector getDependencyInjector() {
- return servicesInjector;
+ public ServicesInjector getServicesInjector() {
+ return servicesInjectorDelegator;
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemAbstract.java
index 5cfcd50..2b2b62f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisSystemAbstract.java
@@ -66,7 +66,7 @@ public abstract class IsisSystemAbstract extends IsisSystemFixturesHookAbstract
// ///////////////////////////////////////////
public IsisSystemAbstract(final DeploymentType deploymentType) {
- super(deploymentType, new IsisLocaleInitializer(), new IsisTimeZoneInitializer());
+ this(deploymentType, new IsisLocaleInitializer(), new IsisTimeZoneInitializer());
}
public IsisSystemAbstract(final DeploymentType deploymentType, final IsisLocaleInitializer localeInitializer, final IsisTimeZoneInitializer timeZoneInitializer) {
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/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 f28d7e3..2b39844 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
@@ -99,17 +99,37 @@ isis.authorization=shiro
# patterns for applying CssClassFa facet (font-awesome icons) to member names
#
isis.reflector.facet.cssClassFa.patterns=\
+ new.*:fa-plus,\
+ add.*:fa-plus-square,\
create.*:fa-plus,\
update.*:fa-edit,\
- add.*:fa-plus-square,\
+ change.*:fa-edit,\
remove.*:fa-minus-square,\
move.*:fa-exchange,\
first.*:fa-star,\
find.*:fa-search,\
+ lookup.*:fa-search,\
clear.*:fa-remove,\
previous.*:fa-step-backward,\
next.*:fa-step-forward,\
- list.*:fa-list
+ list.*:fa-list, \
+ all.*:fa-list, \
+ download.*:fa-download, \
+ upload.*:fa-upload, \
+ execute.*:fa-bolt, \
+ run.*:fa-bolt, \
+ calculate.*:fa-calculator, \
+ verify.*:fa-check-circle, \
+ refresh.*:fa-refresh, \
+ install.*:fa-wrench
+
+
+isis.reflector.facet.cssClass.patterns=\
+ update.*:btn-default,\
+ delete.*:btn-warning,\
+ .*:btn-primary
+
+
#################################################################################
#
http://git-wip-us.apache.org/repos/asf/isis/blob/3d836959/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 c61481f..3b53f77 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
@@ -99,17 +99,35 @@ isis.authorization=shiro
# patterns for applying CssClassFa facet (font-awesome icons) to member names
#
isis.reflector.facet.cssClassFa.patterns=\
+ new.*:fa-plus,\
+ add.*:fa-plus-square,\
create.*:fa-plus,\
update.*:fa-edit,\
- add.*:fa-plus-square,\
+ change.*:fa-edit,\
remove.*:fa-minus-square,\
move.*:fa-exchange,\
first.*:fa-star,\
find.*:fa-search,\
+ lookup.*:fa-search,\
clear.*:fa-remove,\
previous.*:fa-step-backward,\
next.*:fa-step-forward,\
- list.*:fa-list
+ list.*:fa-list, \
+ all.*:fa-list, \
+ download.*:fa-download, \
+ upload.*:fa-upload, \
+ execute.*:fa-bolt, \
+ run.*:fa-bolt, \
+ calculate.*:fa-calculator, \
+ verify.*:fa-check-circle, \
+ refresh.*:fa-refresh, \
+ install.*:fa-wrench
+
+isis.reflector.facet.cssClass.patterns=\
+ update.*:btn-default,\
+ delete.*:btn-warning,\
+ .*:btn-primary
+
#################################################################################
#
[5/5] isis git commit: ISIS-537: fixing up ServicesInjectorDefault
initialization,
responsibility for instantiation now solely in PersistenceSessionFactory,
and ObjectReflectorDefault (SpecficationLoaderSpi) is handed a copy rather
than instantiate its o
Posted by da...@apache.org.
ISIS-537: fixing up ServicesInjectorDefault initialization, responsibility for instantiation now solely in PersistenceSessionFactory, and ObjectReflectorDefault (SpecficationLoaderSpi) is handed a copy rather than instantiate its own instance.
There's plenty of scope to improve matters further, but the test that was failing is at least now passing.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/0a447948
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/0a447948
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/0a447948
Branch: refs/heads/master
Commit: 0a447948ae84b9bc172563012eb94dae8526fa6f
Parents: fd3e6ee
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Nov 28 17:27:18 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Nov 28 17:43:54 2014 +0000
----------------------------------------------------------------------
.../isis/core/metamodel/app/IsisMetaModel.java | 5 +-
.../annotation/ViewModelFacetAnnotation.java | 1 -
.../runtimecontext/RuntimeContext.java | 1 -
.../runtimecontext/RuntimeContextAbstract.java | 7 +-
.../services/ServicesInjectorDefault.java | 8 ++-
.../services/ServicesInjectorDelegator.java | 67 --------------------
.../metamodel/services/ServicesInjectorSpi.java | 3 +-
.../services/ServicesInjectorSpiDelegator.java | 67 ++++++++++++++++++++
.../metamodel/spec/SpecificationLoaderSpi.java | 5 +-
.../specloader/ObjectReflectorDefault.java | 28 +++-----
.../metamodel/facets/ProgrammableReflector.java | 3 +-
.../ObjectReflectorDefaultTestAbstract.java | 3 +-
.../session/IsisSessionFactoryDefault.java | 6 +-
13 files changed, 104 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
index ad8a6a1..5218540 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/app/IsisMetaModel.java
@@ -29,6 +29,7 @@ import org.apache.isis.core.metamodel.metamodelvalidator.dflt.MetaModelValidator
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -134,7 +135,9 @@ public class IsisMetaModel implements ApplicationScopedComponent {
ensureNotInitialized();
reflector = new ObjectReflectorDefault(configuration, programmingModel, facetDecorators, metaModelValidator);
- reflector.setServices(services);
+ final ServicesInjectorDefault servicesInjector = new ServicesInjectorDefault();
+ servicesInjector.setServices(services);
+ reflector.setServiceInjector(servicesInjector);
runtimeContext.injectInto(reflector);
reflector.injectInto(runtimeContext);
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/annotation/ViewModelFacetAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/annotation/ViewModelFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/annotation/ViewModelFacetAnnotation.java
index 0b5d11e..d5f00b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/annotation/ViewModelFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/annotation/ViewModelFacetAnnotation.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.object.viewmodel.annotation;
import java.util.List;
import java.util.Set;
import java.util.UUID;
-import org.apache.isis.applib.ViewModel;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
import org.apache.isis.applib.services.memento.MementoService;
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 60605ea..57dea94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.runtimecontext;
-import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 7cba2ba..93751bc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -24,8 +24,7 @@ import java.util.Collection;
import java.util.List;
import java.util.Properties;
import com.google.common.collect.Lists;
-import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.metamodel.services.ServicesInjectorDelegator;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpiDelegator;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
@@ -36,7 +35,7 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
public abstract class RuntimeContextAbstract implements RuntimeContext, SpecificationLoaderSpiAware, ServicesInjectorAware {
private final SpecificationLoaderDelegator specificationLookupDelegator = new SpecificationLoaderDelegator();
- protected final ServicesInjectorDelegator servicesInjectorDelegator = new ServicesInjectorDelegator();
+ protected final ServicesInjectorSpiDelegator servicesInjectorDelegator = new ServicesInjectorSpiDelegator();
private Properties properties;
@@ -172,7 +171,7 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
//region > injected services
@Override
public void setServicesInjector(ServicesInjector servicesInjector) {
- this.servicesInjectorDelegator.setServicesInjectorSpi((ServicesInjectorSpi) servicesInjector);
+ this.servicesInjectorDelegator.setServicesInjectorSpi((org.apache.isis.core.metamodel.services.ServicesInjectorSpi) servicesInjector);
}
//endregion
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java
index dd34686..da67329 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefault.java
@@ -41,6 +41,7 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.spec.InjectorMethodEvaluator;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
+import org.apache.isis.core.metamodel.specloader.InjectorMethodEvaluatorDefault;
/**
* Must be a thread-safe.
@@ -71,7 +72,7 @@ public class ServicesInjectorDefault implements ServicesInjectorSpi, Specificati
* @param injectorMethodEvaluator
*/
public ServicesInjectorDefault(InjectorMethodEvaluator injectorMethodEvaluator) {
- this.injectorMethodEvaluator = injectorMethodEvaluator;
+ this.injectorMethodEvaluator = injectorMethodEvaluator != null ? injectorMethodEvaluator : new InjectorMethodEvaluatorDefault();
}
//region > init, shutdown
@@ -96,6 +97,11 @@ public class ServicesInjectorDefault implements ServicesInjectorSpi, Specificati
autowireServicesAndContainer();
}
+ public ServicesInjectorDefault withServices(final List<Object> services) {
+ setServices(services);
+ return this;
+ }
+
@Override
public <T> void replaceService(final T existingService, final T replacementService) {
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java
deleted file mode 100644
index 6a9f168..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorDelegator.java
+++ /dev/null
@@ -1,67 +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.services;
-
-import java.util.List;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
-
-public class ServicesInjectorDelegator implements ServicesInjector {
-
- private ServicesInjectorSpi servicesInjectorSpi;
-
- public void setServicesInjectorSpi(ServicesInjectorSpi servicesInjectorSpi) {
- this.servicesInjectorSpi = servicesInjectorSpi;
- servicesInjectorSpi.init();
- }
-
- @Override
- public List<Object> getRegisteredServices() {
- return servicesInjectorSpi.getRegisteredServices();
- }
-
- @Override
- public void injectServicesInto(Object domainObject) {
- servicesInjectorSpi.injectServicesInto(domainObject);
- }
-
- @Override
- public void injectServicesInto(List<Object> domainObjects) {
- servicesInjectorSpi.injectServicesInto(domainObjects);
- }
-
- @Override
- public <T> T lookupService(Class<T> serviceClass) {
- return servicesInjectorSpi.lookupService(serviceClass);
- }
-
- @Override
- public <T> List<T> lookupServices(Class<T> serviceClass) {
- return servicesInjectorSpi.lookupServices(serviceClass);
- }
-
- @Override
- public void injectInto(Object candidate) {
- if (ServicesInjectorAware.class.isAssignableFrom(candidate.getClass())) {
- final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
- cast.setServicesInjector(this);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java
index 4a9d444..e50e2b8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpi.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.services;
import java.util.List;
-import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.components.Injectable;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -30,7 +29,7 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
* The repository of services, also able to inject into any object.
*
* <p>
- * Can be considered a mutable SPI to the {@link ServicesInjector} immutable API.
+ * Can be considered a mutable SPI to the {@link org.apache.isis.core.metamodel.runtimecontext.ServicesInjector} immutable API.
*/
public interface ServicesInjectorSpi extends ApplicationScopedComponent, Injectable, ServicesInjector {
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpiDelegator.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpiDelegator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpiDelegator.java
new file mode 100644
index 0000000..5cdf24a
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjectorSpiDelegator.java
@@ -0,0 +1,67 @@
+/*
+ * 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.services;
+
+import java.util.List;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
+
+public class ServicesInjectorSpiDelegator implements ServicesInjector {
+
+ private org.apache.isis.core.metamodel.services.ServicesInjectorSpi servicesInjectorSpi;
+
+ public void setServicesInjectorSpi(org.apache.isis.core.metamodel.services.ServicesInjectorSpi servicesInjectorSpi) {
+ this.servicesInjectorSpi = servicesInjectorSpi;
+ servicesInjectorSpi.init();
+ }
+
+ @Override
+ public List<Object> getRegisteredServices() {
+ return servicesInjectorSpi.getRegisteredServices();
+ }
+
+ @Override
+ public void injectServicesInto(Object domainObject) {
+ servicesInjectorSpi.injectServicesInto(domainObject);
+ }
+
+ @Override
+ public void injectServicesInto(List<Object> domainObjects) {
+ servicesInjectorSpi.injectServicesInto(domainObjects);
+ }
+
+ @Override
+ public <T> T lookupService(Class<T> serviceClass) {
+ return servicesInjectorSpi.lookupService(serviceClass);
+ }
+
+ @Override
+ public <T> List<T> lookupServices(Class<T> serviceClass) {
+ return servicesInjectorSpi.lookupServices(serviceClass);
+ }
+
+ @Override
+ public void injectInto(Object candidate) {
+ if (ServicesInjectorAware.class.isAssignableFrom(candidate.getClass())) {
+ final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
+ cast.setServicesInjector(this);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
index 32f44b8..049fee3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationLoaderSpi.java
@@ -19,17 +19,18 @@
package org.apache.isis.core.metamodel.spec;
-import java.util.List;
import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
public interface SpecificationLoaderSpi extends ApplicationScopedComponent, DebuggableWithTitle, SpecificationLoader {
/**
* Specify the services to pro-actively prime the cache, and to initialize them also.
+ * @param services
*/
- void setServices(List<Object> services);
+ void setServiceInjector(ServicesInjectorSpi services);
/**
* Populated as a result of running metamodel validation after all specs have been loaded.
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 1a7d340..6e0c9cd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -49,7 +49,7 @@ import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
-import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.*;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
@@ -140,15 +140,14 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
private final SpecificationTraverser specificationTraverser = new SpecificationTraverser();
- /**
- * @see #setServices(List)
- */
- private List<Object> services;
-
private final MetaModelValidator metaModelValidator;
private final SpecificationCacheDefault cache = new SpecificationCacheDefault();
private boolean initialized = false;
+ /**
+ * Populated in {@link SpecificationLoaderSpi#setServiceInjector(org.apache.isis.core.metamodel.services.ServicesInjectorSpi)}.
+ */
+ private ServicesInjectorSpi servicesInjector;
// /////////////////////////////////////////////////////////////
@@ -190,7 +189,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
/**
* Initializes and wires up, and primes the cache based on any service
- * classes that may have been {@link #setServices(List) injected}.
+ * classes that may have been {@link SpecificationLoaderSpi#setServiceInjector(org.apache.isis.core.metamodel.services.ServicesInjectorSpi) injected}.
*/
@Override
public void init() {
@@ -536,10 +535,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
}
if (ServicesInjectorAware.class.isAssignableFrom(candidateClass)) {
final ServicesInjectorAware cast = ServicesInjectorAware.class.cast(candidate);
- final ServicesInjectorDefault servicesInjector = new ServicesInjectorDefault();
- servicesInjector.setSpecificationLookup(this);
- servicesInjector.setServices(this.services);
- cast.setServicesInjector(servicesInjector);
+ cast.setServicesInjector(this.servicesInjector);
}
}
@@ -619,7 +615,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
// ////////////////////////////////////////////////////////////////////
public List<Class<?>> getServiceClasses() {
- List<Class<?>> serviceClasses = Lists.transform(services, new Function<Object, Class<?>>(){
+ List<Class<?>> serviceClasses = Lists.transform(this.servicesInjector.getRegisteredServices(), new Function<Object, Class<?>>(){
public Class<?> apply(Object o) {
return o.getClass();
}
@@ -627,13 +623,9 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
return Collections.unmodifiableList(serviceClasses);
}
- private List<Object> getServices() {
- return services;
- }
-
@Override
- public void setServices(final List<Object> services) {
- this.services = services;
+ public void setServiceInjector(final ServicesInjectorSpi services) {
+ servicesInjector = services;
}
// ////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/ProgrammableReflector.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/ProgrammableReflector.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/ProgrammableReflector.java
index 3222efb..7529a44 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/ProgrammableReflector.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/ProgrammableReflector.java
@@ -29,6 +29,7 @@ import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.exceptions.NotYetImplementedException;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAbstract;
@@ -121,7 +122,7 @@ public class ProgrammableReflector extends SpecificationLoaderAbstract implement
}
@Override
- public void setServices(final List<Object> services) {
+ public void setServiceInjector(final ServicesInjectorSpi serviceInjector) {
throw new NotYetImplementedException();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
index 2346a2e..4478638 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefaultTestAbstract.java
@@ -38,6 +38,7 @@ import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
import org.apache.isis.core.metamodel.metamodelvalidator.dflt.MetaModelValidatorDefault;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
+import org.apache.isis.core.metamodel.services.ServicesInjectorDefault;
import org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.unittestsupport.jmocking.InjectIntoJMockAction;
@@ -79,7 +80,7 @@ public abstract class ObjectReflectorDefaultTestAbstract {
new HashSet<FacetDecorator>(),
new MetaModelValidatorDefault());
reflector.setRuntimeContext(runtimeContext);
- reflector.setServices(Collections.<Object>singletonList(new DomainObjectContainerDefault()));
+ reflector.setServiceInjector(new ServicesInjectorDefault().withServices(Collections.<Object>singletonList(new DomainObjectContainerDefault())));
reflector.init();
specification = loadSpecification(reflector);
http://git-wip-us.apache.org/repos/asf/isis/blob/0a447948/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
index 31b7b3b..d575c6f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
@@ -35,6 +35,7 @@ import org.apache.isis.core.commons.components.ApplicationScopedComponent;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.services.ServiceUtil;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.specloader.ServiceInitializer;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
@@ -184,7 +185,10 @@ public class IsisSessionFactoryDefault implements IsisSessionFactory {
*/
@Override
public void init() {
- specificationLoaderSpi.setServices(serviceList);
+ final ServicesInjectorSpi servicesInjector = persistenceSessionFactory.getServicesInjector();
+ servicesInjector.setServices(serviceList);
+ specificationLoaderSpi.setServiceInjector(servicesInjector);
+
specificationLoaderSpi.init();
// must come after init of spec loader.
[3/5] isis git commit: ISIS-537: deleting the defunct parts of
CssMenu panel and items etc
Posted by da...@apache.org.
ISIS-537: deleting the defunct parts of CssMenu panel and items etc
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/d9a3775a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/d9a3775a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/d9a3775a
Branch: refs/heads/master
Commit: d9a3775a14d395a898da937ad7d7c5f3d2cb870c
Parents: de0cc86
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Nov 28 11:26:18 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Nov 28 16:10:55 2014 +0000
----------------------------------------------------------------------
.../cssmenu/AppActionsCssMenuFactory.java | 10 +-
.../entity/header/EntityHeaderPanel.java | 12 -
.../widgets/cssmenu/ApplicationActionsPanel.css | 236 +++++++++++++++++++
.../widgets/cssmenu/CssMenuBuilder.java | 178 --------------
.../components/widgets/cssmenu/CssMenuItem.java | 26 +-
.../components/widgets/cssmenu/CssMenuPanel.css | 226 ------------------
.../widgets/cssmenu/CssMenuPanel.java | 42 +---
7 files changed, 245 insertions(+), 485 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/d9a3775a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
index 0c27eee..4c7d806 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
@@ -44,7 +44,6 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ActionLinkFactory;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ApplicationActionsPanel;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem.Builder;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel;
@@ -80,7 +79,8 @@ public class AppActionsCssMenuFactory extends ComponentFactoryAbstract {
private final static ActionLinkFactory cssMenuLinkFactory = new AppActionsCssMenuLinkFactory();
public AppActionsCssMenuFactory() {
- super(ComponentType.APPLICATION_ACTIONS, CssMenuPanel.class);
+ super(ComponentType.APPLICATION_ACTIONS, ApplicationActionsPanel.class);
+ //super(ComponentType.APPLICATION_ACTIONS, CssMenuPanel.class);
}
/**
@@ -113,7 +113,7 @@ public class AppActionsCssMenuFactory extends ComponentFactoryAbstract {
// prune any service names that have no service actions
serviceNamesInOrder.retainAll(serviceActionsByName.keySet());
- return buildMenuItems(serviceNamesInOrder, serviceActionsByName, new CssMenuBuilder.CssMenuContext(cssMenuLinkFactory, appActionsModel.getActionPromptProvider()));
+ return buildMenuItems(serviceNamesInOrder, serviceActionsByName, cssMenuLinkFactory);
}
/**
@@ -122,7 +122,7 @@ public class AppActionsCssMenuFactory extends ComponentFactoryAbstract {
private List<CssMenuItem> buildMenuItems(
final Set<String> serviceNamesInOrder,
final Map<String, List<LogicalServiceAction>> serviceActionsByName,
- final CssMenuBuilder.CssMenuContext cssMenuContext) {
+ final ActionLinkFactory actionLinkFactory) {
final List<CssMenuItem> menuItems = Lists.newArrayList();
for (String serviceName : serviceNamesInOrder) {
@@ -137,7 +137,7 @@ public class AppActionsCssMenuFactory extends ComponentFactoryAbstract {
final ObjectAdapterMemento serviceAdapterMemento = logicalServiceAction.serviceAdapterMemento;
final ObjectAction objectAction = logicalServiceAction.objectAction;
final boolean separator = logicalServiceAction.separator;
- final Builder subMenuItemBuilder = serviceMenuItem.newSubMenuItem(serviceAdapterMemento, objectAction, separator, cssMenuContext);
+ final Builder subMenuItemBuilder = serviceMenuItem.newSubMenuItem(serviceAdapterMemento, objectAction, separator, actionLinkFactory);
if (subMenuItemBuilder == null) {
// not visible
continue;
http://git-wip-us.apache.org/repos/asf/isis/blob/d9a3775a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index 509e6a1..6edd1af 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -90,18 +90,6 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> {
final List<LinkAndLabel> entityActionLinks = EntityActionUtil.asLinkAndLabelsForAdditionalLinksPanel(model, topLevelActions);
AdditionalLinksPanel.addAdditionalLinks(this, ID_ENTITY_ACTIONS, entityActionLinks, AdditionalLinksPanel.Style.INLINE_LIST);
-// if(!topLevelActions.isEmpty()) {
-//
-//
-// final ActionPromptProvider actionPromptProvider = ActionPromptProvider.Util.getFrom(this);
-// final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(
-// adapterMemento, topLevelActions, linkFactory, actionPromptProvider, null);
-// final CssMenuPanel cssMenuPanel = cssMenuBuilder.buildPanel(ID_ENTITY_ACTIONS, "Actions");
-//
-// this.addOrReplace(cssMenuPanel);
-// } else {
-// permanentlyHide(ID_ENTITY_ACTIONS);
-// }
} else {
permanentlyHide(ID_ENTITY_ACTIONS);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/d9a3775a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.css
index 9367e66..87a8864 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.css
@@ -17,6 +17,242 @@
* under the License.
*/
+
+/* copied from CssMenuPanel.css (since deleted that panel */
+
+
+
+.cssMenuPanel span.clear {
+ line-height: 3px;
+}
+
+.cssMenuPanel .menuh .small {
+ float: none;
+ display: inline;
+}
+
+.cssMenuPanel .menuh p .small {
+ float: none;
+ display: inline;
+}
+
+.menuh a,.menuh p {
+ text-align: left;
+ display: block;
+ white-space: nowrap;
+ margin: 0;
+ padding: 1px;
+ padding-right: 1.6em;
+ padding-left: 0.4em;
+ font-weight: normal;
+ cursor: default;
+}
+
+.cssMenuPanel .menuh a:hover {
+ text-decoration: underline;
+}
+
+.cssMenuPanel .menuh a.top-parent,.cssMenuPanel .menuh p.top-parent {
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+.cssMenuPanel .menuh a.top-parent:hover,.cssMenuPanel .menuh p.top-parent:hover {
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+.cssMenuPanel .menuh a.parent,.cssMenuPanel .menuh p.parent {
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+.cssMenuPanel .menuh a.parent:hover,.cssMenuPanel .menuh p.parent:hover {
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+.cssMenuPanel .menuh ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ float: left;
+ display: inline;
+}
+
+.cssMenuPanel .menuh li {
+ position: relative;
+ min-height: 1px;
+}
+
+.cssMenuPanel .menuh ul ul {
+ position: absolute;
+ z-index: 500;
+ top: auto;
+ display: none;
+ padding: 1em;
+ margin: -1em 0 0 -1em;
+}
+
+.cssMenuPanel .menuh ul ul ul {
+ top: 0;
+ left: 100%;
+}
+
+.cssMenuPanel span.menuh a:hover {
+ cursor: pointer;
+ z-index: 100;
+}
+
+.cssMenuPanel span.menuh li:hover ul ul,.cssMenuPanel span.menuh li li:hover ul ul,.cssMenuPanel span.menuh li li li:hover ul ul,.cssMenuPanel span.menuh li li li li:hover ul ul {
+ display: none;
+}
+
+.cssMenuPanel span.menuh li:hover ul,.cssMenuPanel span.menuh li li:hover ul,.cssMenuPanel span.menuh li li li:hover ul,.cssMenuPanel span.menuh li li li li:hover ul {
+ display: block;
+}
+
+.cssMenuPanel li.cssSubMenuItem p.disabled {
+ cursor: not-allowed;
+}
+
+.cssMenuPanel li.cssSubMenuItem {
+ margin-left:0;
+}
+
+/******** overrides for grouped actions and entity actions ***************/
+.groupedActions .cssMenuPanel li.cssMenuItemPanel>p.top-parent {
+ display: none;
+}
+
+.groupedActions .cssMenuPanel .menuh ul {
+ position: relative;
+ display: block;
+ float: right;
+ margin: 0;
+ padding: 0;
+}
+
+.groupedActions .cssMenuPanel .menuh ul ul {
+ position: relative;
+ display: block;
+ float: right;
+ margin: 0;
+ padding: 0;
+}
+
+.groupedActions .cssMenuPanel .menuh li,
+.groupedActions .cssMenuPanel .menuh li p {
+ float:left;
+ display:block;
+ margin-left:10px;
+}
+
+.groupedActions .cssMenuPanel .menuh a,.groupedActions .cssMenuPanel .menuh p
+{
+ display: inline-block;
+ border: none;
+}
+
+.groupedActions .cssMenuPanel .menuh a:link,
+.groupedActions .cssMenuPanel .menuh a:visited,
+.groupedActions .cssMenuPanel .menuh a:active,
+.groupedActions .cssMenuPanel .menuh p {
+ display: block;
+ float: left;
+ height: 30px;
+ line-height: 30px;
+ padding: 0 10px;
+ font-weight: bold;
+ /*font-size: 0.85em;*/
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ text-decoration: none;
+}
+
+.entityActions .cssMenuPanel li.cssMenuItemPanel>p.top-parent {
+ display: none;
+}
+
+.entityActions .cssMenuPanel .menuh ul {
+ position: relative;
+ display: block;
+ float: right;
+ margin: 0 0 10px;
+ padding: 0;
+}
+
+.entityActions .cssMenuPanel .menuh ul ul {
+ position: relative;
+ display: block;
+ float: right;
+ margin: 0;
+ padding: 0;
+}
+
+.entityActions .cssMenuPanel .menuh li {
+ float:left;
+ display:block;
+ margin-left:10px;
+}
+
+.entityActions .cssMenuPanel .menuh li p {
+ float:left;
+ display:block;
+ margin-left:0;
+}
+
+.entityActions .cssMenuPanel .menuh a,
+.entityActions .cssMenuPanel .menuh p {
+ display: inline-block;
+ /*border: none;*/
+}
+
+.entityActions .cssMenuPanel .menuh a,
+.entityActions .cssMenuPanel .menuh a:link,
+.entityActions .cssMenuPanel .menuh a:visited,
+.entityActions .cssMenuPanel .menuh a:active,
+.entityActions .cssMenuPanel .menuh p {
+ display: block;
+ float: left;
+ height: 30px;
+ /*line-height: 30px;*/
+ padding: 4px 10px 0;
+ /*font-size:0.85em;*/
+ border-radius:4px;
+ -moz-border-radius:4px;
+ -webkit-border-radius:4px;
+ text-decoration:none;
+}
+
+.additionalLinkList {
+ float:left;
+ margin:0;
+ padding:0;
+ 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;
+}
+
+
+
+
+
/**
* Borrowed from http://bootsnipp.com/snippets/featured/multi-level-dropdown-menu-bs3
*/
http://git-wip-us.apache.org/repos/asf/isis/blob/d9a3775a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
deleted file mode 100644
index 0b12d23..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
+++ /dev/null
@@ -1,178 +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.widgets.cssmenu;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import org.apache.isis.applib.filter.Filters;
-import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem.Builder;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel.Style;
-
-/**
- * Used to build a {@link CssMenuItem} hierarchy from a
- * {@link ObjectAdapterMemento object adapter}'s actions and any contributed
- * actions from services.
- */
-public class CssMenuBuilder {
-
- /**
- * The target to invoke upon; may be null in case of bulk actions; not used if a contributed action.
- */
- private final ObjectAdapterMemento adapterMemento;
- private final List<ObjectAction> actions;
- private final CssMenuContext cssMenuContext;
-
- public static class CssMenuContext {
- private final ActionLinkFactory cssMenuLinkFactory;
- private final ActionPromptProvider actionPromptProvider;
- private final Predicate<ObjectAction> objectActionPredicate;
-
- public CssMenuContext(
- final ActionLinkFactory cssMenuLinkFactory,
- final ActionPromptProvider actionPromptProvider,
- final Predicate<ObjectAction> objectActionPredicate) {
- this.cssMenuLinkFactory = cssMenuLinkFactory;
- this.actionPromptProvider = actionPromptProvider;
- this.objectActionPredicate = objectActionPredicate != null? objectActionPredicate: Predicates.<ObjectAction>alwaysTrue();
- }
-
- public CssMenuContext(ActionLinkFactory cssMenuLinkFactory, ActionPromptProvider actionPromptProvider) {
- this(cssMenuLinkFactory, actionPromptProvider, null);
- }
-
- public ActionLinkFactory getCssMenuLinkFactory() {
- return cssMenuLinkFactory;
- }
- public ActionPromptProvider getActionPromptProvider() {
- return actionPromptProvider;
- }
- public Predicate<ObjectAction> getObjectActionPredicate() {
- return objectActionPredicate;
- }
- }
-
- public CssMenuBuilder(
- final ObjectAdapterMemento adapterMemento,
- final List<ObjectAction> actions,
- final ActionLinkFactory cssMenuLinkFactory,
- final ActionPromptProvider actionPromptProvider,
- final Predicate<ObjectAction> objectActionPredicate) {
- this.adapterMemento = adapterMemento; // may be null
- this.actions = actions;
- this.cssMenuContext = new CssMenuContext(cssMenuLinkFactory, actionPromptProvider, objectActionPredicate);
- }
-
- public CssMenuPanel buildPanel(
- final String wicketId,
- final String rootName) {
- final CssMenuItem root = CssMenuItem.newMenuItem(rootName).build();
- addMenuItems(root, actions);
- final CssMenuPanel cssMenuPanel = new CssMenuPanel(wicketId, Style.SMALL, Collections.singletonList(root));
- return cssMenuPanel;
- }
-
- private void addMenuItems(
- final CssMenuItem parent,
- final List<ObjectAction> actions) {
- addMenuItemsForActionsOfType(parent, actions, ActionType.USER);
- if ( isExploring() || isPrototyping()) {
- addMenuItemsForActionsOfType(parent, actions, ActionType.EXPLORATION);
- addMenuItemsForActionsOfType(parent, actions, ActionType.PROTOTYPE);
- }
- if (isDebugMode()) {
- addMenuItemsForActionsOfType(parent, actions, ActionType.DEBUG);
- }
- }
-
- public boolean isExploring() {
- return IsisContext.getDeploymentType().isExploring();
- }
- public boolean isPrototyping() {
- return IsisContext.getDeploymentType().isPrototyping();
- }
-
- /**
- * Protected so can be overridden in testing if required.
- */
- protected boolean isDebugMode() {
- // TODO: need to figure out how to switch into debug mode;
- // probably call a Debug toggle page, and stuff into
- // Session.getMetaData()
- return true;
- }
-
- private void addMenuItemsForActionsOfType(
- final CssMenuItem parent,
- final List<ObjectAction> actions,
- final ActionType type) {
- final Collection<ObjectAction> filterActionsOfType = Collections2.filter(actions, Filters.asPredicate(ObjectAction.Filters.ofType(type)));
- for (final ObjectAction action : filterActionsOfType) {
- addMenuItem(parent, action);
- }
- }
-
- private void addMenuItem(
- final CssMenuItem parent,
- final ObjectAction action) {
- addMenuItemForAction(parent, action);
- }
-
- private void addMenuItemForAction(
- final CssMenuItem parent,
- final ObjectAction action) {
-
- final NotContributedFacet notContributed = action.getFacet(NotContributedFacet.class);
- if (notContributed != null && notContributed.toActions()) {
- // skip if is an action that has been annotated to not be contributed
- return;
- }
-
- Builder subMenuItemBuilder = null;
-
- final ObjectAdapterMemento targetAdapterMemento = adapterMemento; // determineAdapterFor(action);
- if(targetAdapterMemento != null) {
- // against an entity or a service (if a contributed action)
- subMenuItemBuilder = parent.newSubMenuItem(targetAdapterMemento, action, false, cssMenuContext);
- } else {
- if (action.containsDoOpFacet(BulkFacet.class)) {
- // ignore fact have no target action;
- // we expect that the link factory is able to handle this
- // (ie will iterate through all objects from a list and invoke in bulk)
- subMenuItemBuilder = parent.newSubMenuItem(action, cssMenuContext);
- }
- }
-
- if (subMenuItemBuilder != null) {
- subMenuItemBuilder.build();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/d9a3775a/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 8d8c157..88caef5 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
@@ -72,7 +72,7 @@ public class CssMenuItem implements Serializable {
return this;
}
- public <T extends Page> Builder link(final Class<T> pageClass) {
+ public <T extends Page> Builder link() {
final AbstractLink link = new SubmitLink(ID_MENU_LINK);
return link(link);
}
@@ -297,7 +297,7 @@ public class CssMenuItem implements Serializable {
final ObjectAdapterMemento targetAdapterMemento,
final ObjectAction objectAction,
final boolean separator,
- final CssMenuBuilder.CssMenuContext cssMenuContext) {
+ final ActionLinkFactory actionLinkFactory) {
// check visibility
final AuthenticationSession session = getAuthenticationSession();
@@ -308,7 +308,7 @@ public class CssMenuItem implements Serializable {
}
// build the link
- final LinkAndLabel linkAndLabel = cssMenuContext.getCssMenuLinkFactory().newLink(
+ final LinkAndLabel linkAndLabel = actionLinkFactory.newLink(
targetAdapterMemento, objectAction, PageAbstract.ID_MENU_LINK
);
if(linkAndLabel==null) {
@@ -339,26 +339,6 @@ public class CssMenuItem implements Serializable {
}
- /**
- * Creates a {@link Builder} for a submenu item where the provided {@link ActionLinkFactory} is able to provide the target adapter.
- */
- public Builder newSubMenuItem(
- final ObjectAction objectAction,
- final CssMenuBuilder.CssMenuContext cssMenuContext) {
-
- final LinkAndLabel linkAndLabel = cssMenuContext.getCssMenuLinkFactory().newLink(null, objectAction, PageAbstract.ID_MENU_LINK);
-
- final AbstractLink link = linkAndLabel.getLink();
- final String actionLabel = linkAndLabel.getLabel();
- Builder builder = this.newSubMenuItem(actionLabel)
- .link(link)
- .prototyping(linkAndLabel.isPrototype())
- .returnsBlobOrClob(linkAndLabel.isBlobOrClob())
- .withFacet(objectAction.getFacet(CssClassFacet.class))
- .withFacet(objectAction.getFacet(CssClassFaFacet.class));
- return builder;
- }
-
// //////////////////////////////////////////////////////////////
// Build wicket components from the menu item.
// //////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/d9a3775a/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 87bbf2b..eaeea17 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
@@ -16,229 +16,3 @@
* specific language governing permissions and limitations
* under the License.
*/
-.cssMenuPanel span.clear {
- line-height: 3px;
-}
-
-.cssMenuPanel .menuh .small {
- float: none;
- display: inline;
-}
-
-.cssMenuPanel .menuh p .small {
- float: none;
- display: inline;
-}
-
-.menuh a,.menuh p {
- text-align: left;
- display: block;
- white-space: nowrap;
- margin: 0;
- padding: 1px;
- padding-right: 1.6em;
- padding-left: 0.4em;
- font-weight: normal;
- cursor: default;
-}
-
-.cssMenuPanel .menuh a:hover {
- text-decoration: underline;
-}
-
-.cssMenuPanel .menuh a.top-parent,.cssMenuPanel .menuh p.top-parent {
- background-position: right center;
- background-repeat: no-repeat;
-}
-
-.cssMenuPanel .menuh a.top-parent:hover,.cssMenuPanel .menuh p.top-parent:hover {
- background-position: right center;
- background-repeat: no-repeat;
-}
-
-.cssMenuPanel .menuh a.parent,.cssMenuPanel .menuh p.parent {
- background-position: right center;
- background-repeat: no-repeat;
-}
-
-.cssMenuPanel .menuh a.parent:hover,.cssMenuPanel .menuh p.parent:hover {
- background-position: right center;
- background-repeat: no-repeat;
-}
-
-.cssMenuPanel .menuh ul {
- list-style: none;
- margin: 0;
- padding: 0;
- float: left;
- display: inline;
-}
-
-.cssMenuPanel .menuh li {
- position: relative;
- min-height: 1px;
-}
-
-.cssMenuPanel .menuh ul ul {
- position: absolute;
- z-index: 500;
- top: auto;
- display: none;
- padding: 1em;
- margin: -1em 0 0 -1em;
-}
-
-.cssMenuPanel .menuh ul ul ul {
- top: 0;
- left: 100%;
-}
-
-.cssMenuPanel span.menuh a:hover {
- cursor: pointer;
- z-index: 100;
-}
-
-.cssMenuPanel span.menuh li:hover ul ul,.cssMenuPanel span.menuh li li:hover ul ul,.cssMenuPanel span.menuh li li li:hover ul ul,.cssMenuPanel span.menuh li li li li:hover ul ul {
- display: none;
-}
-
-.cssMenuPanel span.menuh li:hover ul,.cssMenuPanel span.menuh li li:hover ul,.cssMenuPanel span.menuh li li li:hover ul,.cssMenuPanel span.menuh li li li li:hover ul {
- display: block;
-}
-
-.cssMenuPanel li.cssSubMenuItem p.disabled {
- cursor: not-allowed;
-}
-
-.cssMenuPanel li.cssSubMenuItem {
- margin-left:0;
-}
-
-/******** overrides for grouped actions and entity actions ***************/
-.groupedActions .cssMenuPanel li.cssMenuItemPanel>p.top-parent {
- display: none;
-}
-
-.groupedActions .cssMenuPanel .menuh ul {
- position: relative;
- display: block;
- float: right;
- margin: 0;
- padding: 0;
-}
-
-.groupedActions .cssMenuPanel .menuh ul ul {
- position: relative;
- display: block;
- float: right;
- margin: 0;
- padding: 0;
-}
-
-.groupedActions .cssMenuPanel .menuh li,
-.groupedActions .cssMenuPanel .menuh li p {
- float:left;
- display:block;
- margin-left:10px;
-}
-
-.groupedActions .cssMenuPanel .menuh a,.groupedActions .cssMenuPanel .menuh p
- {
- display: inline-block;
- border: none;
-}
-
-.groupedActions .cssMenuPanel .menuh a:link,
-.groupedActions .cssMenuPanel .menuh a:visited,
-.groupedActions .cssMenuPanel .menuh a:active,
-.groupedActions .cssMenuPanel .menuh p {
- display: block;
- float: left;
- height: 30px;
- line-height: 30px;
- padding: 0 10px;
- font-weight: bold;
- /*font-size: 0.85em;*/
- border-radius: 4px;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- text-decoration: none;
-}
-
-.entityActions .cssMenuPanel li.cssMenuItemPanel>p.top-parent {
- display: none;
-}
-
-.entityActions .cssMenuPanel .menuh ul {
- position: relative;
- display: block;
- float: right;
- margin: 0 0 10px;
- padding: 0;
-}
-
-.entityActions .cssMenuPanel .menuh ul ul {
- position: relative;
- display: block;
- float: right;
- margin: 0;
- padding: 0;
-}
-
-.entityActions .cssMenuPanel .menuh li {
- float:left;
- display:block;
- margin-left:10px;
-}
-
-.entityActions .cssMenuPanel .menuh li p {
- float:left;
- display:block;
- margin-left:0;
-}
-
-.entityActions .cssMenuPanel .menuh a,
-.entityActions .cssMenuPanel .menuh p {
- display: inline-block;
- /*border: none;*/
-}
-
-.entityActions .cssMenuPanel .menuh a,
-.entityActions .cssMenuPanel .menuh a:link,
-.entityActions .cssMenuPanel .menuh a:visited,
-.entityActions .cssMenuPanel .menuh a:active,
-.entityActions .cssMenuPanel .menuh p {
- display: block;
- float: left;
- height: 30px;
- /*line-height: 30px;*/
- padding: 4px 10px 0;
- /*font-size:0.85em;*/
- border-radius:4px;
- -moz-border-radius:4px;
- -webkit-border-radius:4px;
- text-decoration:none;
-}
-
-.additionalLinkList {
- float:left;
- margin:0;
- padding:0;
- 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/d9a3775a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
index 7717c68..742f343 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
@@ -24,45 +24,18 @@ import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.util.ListModel;
-import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
* Top level panel for a CSS menu, consisting of a number of unparented
* {@link CssMenuItem}s.
- *
- * <p>
- * The {@link Style} enum allows the presentation to be altered.
*/
public class CssMenuPanel extends PanelAbstract<CssMenuPanel.ListOfCssMenuItemsModel> {
private static final long serialVersionUID = 1L;
- public enum Style {
- REGULAR {
- @Override
- public String getAppendValue() {
- return null; // ie, append nothing
- }
- },
- SMALL {
- @Override
- public String getAppendValue() {
- return toString();
- }
- };
- @Override
- public String toString() {
- return StringExtensions.toCamelCase(name());
- }
-
- public String getAppendValue() {
- return toString();
- }
- }
static class ListOfCssMenuItemsModel extends ListModel<CssMenuItem> {
@@ -73,15 +46,11 @@ public class CssMenuPanel extends PanelAbstract<CssMenuPanel.ListOfCssMenuItemsM
}
}
- private final StyleAppender styleAppender;
static final String ID_MENU_ITEMS = "menuItems";
static final String ID_MENU_ITEM = "menuItem";
- public CssMenuPanel(final String id, final Style style, final List<CssMenuItem> topLevelMenuItems) {
+ private CssMenuPanel(final String id, final List<CssMenuItem> topLevelMenuItems) {
super(id, new ListOfCssMenuItemsModel(topLevelMenuItems));
- this.styleAppender = new StyleAppender(style);
-
- //add(styleAppender);
final RepeatingView menuItemRv = new RepeatingView(CssMenuPanel.ID_MENU_ITEMS);
add(menuItemRv);
@@ -95,15 +64,6 @@ public class CssMenuPanel extends PanelAbstract<CssMenuPanel.ListOfCssMenuItemsM
}
- static final class StyleAppender extends CssClassAppender {
-
- private static final long serialVersionUID = 1L;
-
- public StyleAppender(final Style style) {
- super(style.getAppendValue());
- }
- }
-
/**
* Because there is no {@link ComponentFactory} for this component,
* its CSS must be contributed in this way instead (also meaning its CSS is not bundled).
[2/5] isis git commit: ISIS-537: refactored EntityHeaderPanel to use
additional links instead of CssMenuBuilder.
Posted by da...@apache.org.
ISIS-537: refactored EntityHeaderPanel to use additional links instead of CssMenuBuilder.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/de0cc868
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/de0cc868
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/de0cc868
Branch: refs/heads/master
Commit: de0cc868fb520403c9fc9f574fe1b740d03d2e3b
Parents: 3d83695
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Nov 28 09:01:50 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Nov 28 16:10:54 2014 +0000
----------------------------------------------------------------------
.../additionallinks/AdditionalLinksPanel.java | 2 +
.../additionallinks/EntityActionUtil.java | 79 ++++++++++++-----
.../components/collection/CollectionPanel.java | 5 +-
.../entity/header/EntityHeaderPanel.java | 93 +++++---------------
.../entity/properties/EntityPropertiesForm.java | 12 +--
.../components/scalars/ScalarPanelAbstract.java | 2 -
.../scalars/ScalarPanelTextFieldAbstract.java | 9 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 5 +-
.../scalars/primitive/BooleanPanel.java | 4 +-
.../scalars/reference/ReferencePanel.java | 3 +-
.../valuechoices/ValueChoicesSelect2Panel.java | 5 +-
.../src/main/java/dom/todo/ToDoItem.layout.json | 11 ++-
.../src/main/webapp/WEB-INF/isis.properties | 1 -
13 files changed, 99 insertions(+), 132 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 81d1954..68f4df5 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
@@ -47,6 +47,8 @@ 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 final String ID_ADDITIONAL_LINK = "additionalLink";
+
public enum Style {
INLINE_LIST {
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 a2ff4bc..bd44fbc 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,34 +53,29 @@ public final class EntityActionUtil {
private final static MemberOrderFacetComparator memberOrderFacetComparator = new MemberOrderFacetComparator(false);
- public static List<LinkAndLabel> appendAdditionalLinksForAssociation(
+ public static List<LinkAndLabel> getEntityActionLinksForAssociation(
final ScalarModel scalarModel,
- final DeploymentType deploymentType,
- final String id,
- final List<LinkAndLabel> entityActionLinks) {
+ final DeploymentType deploymentType) {
+ final List<LinkAndLabel> entityActions = Lists.newArrayList();
if (scalarModel.getKind() != ScalarModel.Kind.PROPERTY) {
- return entityActionLinks;
- }
+ return entityActions;
+ } else {
+ final ObjectAdapterMemento parentMemento = scalarModel.getParentObjectAdapterMemento();
+ final EntityModel parentEntityModel = new EntityModel(parentMemento);
+ final OneToOneAssociation oneToOneAssociation = scalarModel.getPropertyMemento().getProperty();
- final ObjectAdapterMemento parentMemento = scalarModel.getParentObjectAdapterMemento();
- final EntityModel parentEntityModel = new EntityModel(parentMemento);
- final OneToOneAssociation oneToOneAssociation = scalarModel.getPropertyMemento().getProperty();
+ final List<ObjectAction> associatedActions = getObjectActionsForAssociation(parentEntityModel, oneToOneAssociation, deploymentType);
- return appendAdditionalLinksForAssociation(
- parentEntityModel,
- oneToOneAssociation,
- deploymentType,
- id,
- entityActionLinks);
+ entityActions.addAll(asLinkAndLabelsForAdditionalLinksPanel(parentEntityModel, associatedActions));
+ return entityActions;
+ }
}
- public static List<LinkAndLabel> appendAdditionalLinksForAssociation(
+ public static List<ObjectAction> getObjectActionsForAssociation(
final EntityModel entityModel,
final ObjectAssociation association,
- final DeploymentType deploymentType,
- final String linkId,
- final List<LinkAndLabel> entityActionLinks) {
+ final DeploymentType deploymentType) {
final List<ObjectAction> associatedActions = Lists.newArrayList();
addActions(ActionType.USER, entityModel, association, associatedActions);
@@ -98,20 +93,29 @@ public final class EntityActionUtil {
return memberOrderFacetComparator.compare(m1, m2);
}
});
+ return associatedActions;
+ }
+
+ /**
+ * Converts an {@link org.apache.isis.viewer.wicket.model.models.EntityModel} and a (subset of its) {@link org.apache.isis.core.metamodel.spec.feature.ObjectAction}s into a
+ * list of {@link org.apache.isis.viewer.wicket.model.links.LinkAndLabel}s intended to be apassed
+ * to the {@link org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel}.
+ */
+ public static List<LinkAndLabel> asLinkAndLabelsForAdditionalLinksPanel(
+ final EntityModel entityModel,
+ final List<ObjectAction> actions) {
+ final String linkId = AdditionalLinksPanel.ID_ADDITIONAL_LINK;
final ActionLinkFactory linkFactory = new EntityActionLinkFactory(entityModel);
final ObjectAdapterMemento adapterMemento = entityModel.getObjectAdapterMemento();
- final List<LinkAndLabel> linkAndLabels = Lists.transform(associatedActions, new Function<ObjectAction, LinkAndLabel>() {
+ return Lists.transform(actions, new Function<ObjectAction, LinkAndLabel>() {
@Override
public LinkAndLabel apply(ObjectAction objectAction) {
return linkFactory.newLink(adapterMemento, objectAction, linkId);
}
});
- entityActionLinks.addAll(linkAndLabels);
-
- return entityActionLinks;
}
private static List<ObjectAction> addActions(
@@ -139,4 +143,33 @@ public final class EntityActionUtil {
}
+ public static void addTopLevelActions(
+ final ObjectAdapter adapter,
+ final ActionType actionType,
+ final List<ObjectAction> topLevelActions,
+ final AuthenticationSession authenticationSession) {
+
+ final ObjectSpecification adapterSpec = adapter.getSpecification();
+
+ @SuppressWarnings({ "unchecked", "deprecation" })
+ Filter<ObjectAction> filter = Filters.and(
+ ObjectAction.Filters.memberOrderNotAssociationOf(adapterSpec),
+ ObjectAction.Filters.dynamicallyVisible(authenticationSession, adapter, Where.ANYWHERE),
+ ObjectAction.Filters.notBulkOnly(),
+ ObjectAction.Filters.excludeWizardActions(adapterSpec));
+
+ final List<ObjectAction> userActions = adapterSpec.getObjectActions(actionType, Contributed.INCLUDED, filter);
+ topLevelActions.addAll(userActions);
+ }
+
+ public static List<ObjectAction> getTopLevelActions(final ObjectAdapter adapter, final DeploymentType deploymentType, final AuthenticationSession authenticationSession) {
+ final List<ObjectAction> topLevelActions = Lists.newArrayList();
+
+ addTopLevelActions(adapter, ActionType.USER, topLevelActions, authenticationSession);
+ if(deploymentType.isPrototyping()) {
+ addTopLevelActions(adapter, ActionType.EXPLORATION, topLevelActions, authenticationSession);
+ addTopLevelActions(adapter, ActionType.PROTOTYPE, topLevelActions, authenticationSession);
+ }
+ return topLevelActions;
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
index 2f116f9..5609289 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -26,6 +26,7 @@ import com.google.common.collect.Lists;
import org.apache.wicket.Component;
import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
import org.apache.wicket.markup.html.basic.Label;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.runtime.system.DeploymentType;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -78,7 +79,9 @@ public class CollectionPanel extends PanelAbstract<EntityCollectionModel> implem
final List<LinkAndLabel> entityActionLinks = Lists.newArrayList();
- EntityActionUtil.appendAdditionalLinksForAssociation(entityModel, otma, getDeploymentType(), "additionalLink", entityActionLinks);
+ final List<ObjectAction> associatedActions = EntityActionUtil.getObjectActionsForAssociation(entityModel, otma, getDeploymentType());
+
+ entityActionLinks.addAll(EntityActionUtil.asLinkAndLabelsForAdditionalLinksPanel(entityModel, associatedActions));
collectionModel.addEntityActions(entityActionLinks);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index 8ee749c..509e6a1 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -20,32 +20,20 @@
package org.apache.isis.viewer.wicket.ui.components.entity.header;
import java.util.List;
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
import org.apache.wicket.Component;
import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.filter.Filter;
-import org.apache.isis.applib.filter.Filters;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
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;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
-import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
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.entity.EntityActionLinkFactory;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuBuilder;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel;
-import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
-import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
@@ -97,53 +85,28 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> {
final ObjectAdapter adapter = model.getObject();
final ObjectAdapterMemento adapterMemento = model.getObjectAdapterMemento();
if (adapter != null) {
- final List<ObjectAction> topLevelActions = getTopLevelActions(adapter);
-
- if(!topLevelActions.isEmpty()) {
- final ActionPromptProvider actionPromptProvider = ActionPromptProvider.Util.getFrom(this);
- final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(
- adapterMemento, topLevelActions, linkFactory, actionPromptProvider, null);
- final CssMenuPanel cssMenuPanel = cssMenuBuilder.buildPanel(ID_ENTITY_ACTIONS, "Actions");
-
- this.addOrReplace(cssMenuPanel);
- } else {
- permanentlyHide(ID_ENTITY_ACTIONS);
- }
+ final List<ObjectAction> topLevelActions = EntityActionUtil.getTopLevelActions(adapter, getDeploymentType(), getAuthenticationSession());
+
+ final List<LinkAndLabel> entityActionLinks = EntityActionUtil.asLinkAndLabelsForAdditionalLinksPanel(model, topLevelActions);
+
+ AdditionalLinksPanel.addAdditionalLinks(this, ID_ENTITY_ACTIONS, entityActionLinks, AdditionalLinksPanel.Style.INLINE_LIST);
+// if(!topLevelActions.isEmpty()) {
+//
+//
+// final ActionPromptProvider actionPromptProvider = ActionPromptProvider.Util.getFrom(this);
+// final CssMenuBuilder cssMenuBuilder = new CssMenuBuilder(
+// adapterMemento, topLevelActions, linkFactory, actionPromptProvider, null);
+// final CssMenuPanel cssMenuPanel = cssMenuBuilder.buildPanel(ID_ENTITY_ACTIONS, "Actions");
+//
+// this.addOrReplace(cssMenuPanel);
+// } else {
+// permanentlyHide(ID_ENTITY_ACTIONS);
+// }
} else {
permanentlyHide(ID_ENTITY_ACTIONS);
}
}
- private List<ObjectAction> getTopLevelActions(final ObjectAdapter adapter) {
- final List<ObjectAction> topLevelActions = Lists.newArrayList();
-
- addTopLevelActions(adapter, ActionType.USER, topLevelActions);
- if(getDeploymentType().isPrototyping()) {
- addTopLevelActions(adapter, ActionType.EXPLORATION, topLevelActions);
- addTopLevelActions(adapter, ActionType.PROTOTYPE, topLevelActions);
- }
- return topLevelActions;
- }
-
- private void addTopLevelActions(
- final ObjectAdapter adapter,
- final ActionType actionType,
- final List<ObjectAction> topLevelActions) {
-
- final ObjectSpecification adapterSpec = adapter.getSpecification();
- final AuthenticationSession authenticationSession = getAuthenticationSession();
-
- @SuppressWarnings({ "unchecked", "deprecation" })
- Filter<ObjectAction> filter = Filters.and(
- ObjectAction.Filters.memberOrderNotAssociationOf(adapterSpec),
- ObjectAction.Filters.dynamicallyVisible(authenticationSession, adapter, Where.ANYWHERE),
- ObjectAction.Filters.notBulkOnly(),
- ObjectAction.Filters.excludeWizardActions(adapterSpec));
-
- final List<ObjectAction> userActions = adapterSpec.getObjectActions(actionType, Contributed.INCLUDED, filter);
- topLevelActions.addAll(userActions);
- }
-
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
@@ -151,28 +114,12 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> {
PanelUtil.renderHead(response, getClass());
}
- // ///////////////////////////////////////////////////////////////////
- // Convenience
- // ///////////////////////////////////////////////////////////////////
-
- protected PageClassRegistry getPageClassRegistry() {
- final PageClassRegistryAccessor pcra = (PageClassRegistryAccessor) getApplication();
- return pcra.getPageClassRegistry();
- }
// ///////////////////////////////////////////////
// Dependency Injection
// ///////////////////////////////////////////////
- @Inject
- private ImageResourceCache imageCache;
-
- protected ImageResourceCache getImageCache() {
- return imageCache;
- }
-
-
protected DeploymentType getDeploymentType() {
return IsisContext.getDeploymentType();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 bad729d..aa40774 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
@@ -61,6 +61,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.memento.Memento;
@@ -264,9 +265,6 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
return !groupNames.isEmpty();
}
- public static final String ID_ADDITIONAL_LINK = "additionalLink";
-
-
private void addPropertyToForm(
final EntityModel entityModel,
final OneToOneAssociation association,
@@ -278,11 +276,9 @@ public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> implements
final ScalarModel scalarModel = entityModel.getPropertyModel(pm);
final Component component = getComponentFactoryRegistry().addOrReplaceComponent(container, ID_PROPERTY, ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
- EntityActionUtil.appendAdditionalLinksForAssociation(
- entityModel, otoa,
- getDeploymentType(),
- ID_ADDITIONAL_LINK,
- entityActions);
+ final List<ObjectAction> associatedActions = EntityActionUtil.getObjectActionsForAssociation(entityModel, otoa, getDeploymentType());
+
+ entityActions.addAll(EntityActionUtil.asLinkAndLabelsForAdditionalLinksPanel(entityModel, associatedActions));
if(!renderedFirstField) {
component.add(new CssClassAppender("first-field"));
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 2edf2ea..ad93822 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
@@ -69,8 +69,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
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";
-
private static final String ID_FEEDBACK = "feedback";
public enum CompactType {
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 1e1ba98..f47e54d 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
@@ -21,9 +21,7 @@ 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;
@@ -35,13 +33,11 @@ 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.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.core.metamodel.facets.propparam.maxlen.MaxLengthFacet;
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;
@@ -106,9 +102,8 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(textField));
// find the links...
- final List<LinkAndLabel> entityActions = Lists.newArrayList();
- EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+ final List<LinkAndLabel> entityActions = EntityActionUtil.getEntityActionLinksForAssociation(this.scalarModel, getDeploymentType());
addPositioningCssTo(labelIfRegular, entityActions);
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 f78b265..b6c6c8e 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,7 +26,6 @@ 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;
@@ -96,9 +95,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
labelIfRegular.add(scalarName);
// find the links...
- final List<LinkAndLabel> entityActions = Lists.newArrayList();
-
- EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+ final List<LinkAndLabel> entityActions = EntityActionUtil.getEntityActionLinksForAssociation(this.scalarModel, getDeploymentType());
addPositioningCssTo(labelIfRegular, entityActions);
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 71d2508..cd57534 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
@@ -23,7 +23,6 @@ import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.Che
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;
@@ -82,8 +81,7 @@ public class BooleanPanel extends ScalarPanelAbstract {
final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(checkBox));
labelIfRegular.add(scalarName);
- final List<LinkAndLabel> entityActions = Lists.newArrayList();
- EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+ final List<LinkAndLabel> entityActions = EntityActionUtil.getEntityActionLinksForAssociation(this.scalarModel, getDeploymentType());
addPositioningCssTo(labelIfRegular, entityActions);
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 0a9e692..e580d77 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
@@ -126,8 +126,7 @@ public class ReferencePanel extends ScalarPanelAbstract {
labelIfRegular.add(scalarName);
// find the links...
- final List<LinkAndLabel> entityActions = Lists.newArrayList();
- EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+ final List<LinkAndLabel> entityActions = EntityActionUtil.getEntityActionLinksForAssociation(this.scalarModel, getDeploymentType());
addPositioningCssTo(labelIfRegular, entityActions);
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 699865b..346a40f 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
@@ -38,7 +38,6 @@ 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;
@@ -86,9 +85,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
labelIfRegular.addOrReplace(scalarName);
// find the links...
- final List<LinkAndLabel> entityActions = Lists.newArrayList();
-
- EntityActionUtil.appendAdditionalLinksForAssociation(this.scalarModel, getDeploymentType(), ID_ADDITIONAL_LINK, entityActions);
+ final List<LinkAndLabel> entityActions = EntityActionUtil.getEntityActionLinksForAssociation(this.scalarModel, getDeploymentType());
addPositioningCssTo(labelIfRegular, entityActions);
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 706e20e..0619d46 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
@@ -37,9 +37,8 @@
}
},
"analyseCategory": {
- "cssClassFa": {
- "value": "fa fa-pie-chart"
- }
+ "cssClass": { "value": "btn-default" },
+ "cssClassFa": { "value": "fa fa-pie-chart" }
}
}
},
@@ -53,6 +52,7 @@
"describedAs": {
"value": "Update this todo item as complete"
},
+ "cssClass": { "value": "btn-success" },
"cssClassFa": { "value": "fa fa-thumbs-up" }
},
"notYetCompleted": {
@@ -60,6 +60,7 @@
"describedAs": {
"value": "Update this todo item as not yet complete"
},
+ "cssClass": { "value": "btn-info" },
"cssClassFa": { "value": "fa fa-thumbs-down" }
},
"scheduleExplicitly": {
@@ -151,10 +152,11 @@
"disabled": {},
"actions": {
"add":{
+ "cssClass": { "value": "btn-default" },
"cssClassFa": { "value": "fa fa-plus-square" }
},
"remove": {
- "cssClass": { "value": "x-caution btn-danger" },
+ "cssClass": { "value": "x-caution btn-default" },
"cssClassFa": { "value": "fa fa-minus-square" }
}
},
@@ -190,6 +192,7 @@
"describedAs": {
"value": "Create a new todo item from this one"
},
+ "cssClass": { "value": "btn-default" },
"cssClassFa": { "value": "fa fa-copy fa-lg" }
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/de0cc868/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 3b53f77..e2f1027 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
@@ -124,7 +124,6 @@ isis.reflector.facet.cssClassFa.patterns=\
install.*:fa-wrench
isis.reflector.facet.cssClass.patterns=\
- update.*:btn-default,\
delete.*:btn-warning,\
.*:btn-primary
[4/5] isis git commit: ISIS-537: further deletion of unused
CssMenuItem stuff.
Posted by da...@apache.org.
ISIS-537: further deletion of unused CssMenuItem stuff.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fd3e6eef
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fd3e6eef
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fd3e6eef
Branch: refs/heads/master
Commit: fd3e6eeff930b7a9d8a5a3db6ea7e881f18c388f
Parents: d9a3775
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Nov 28 13:30:17 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Nov 28 16:10:56 2014 +0000
----------------------------------------------------------------------
.../wicket/viewer/IsisWicketApplication.java | 4 --
.../cssmenu/AppActionsCssMenuFactory.java | 3 +-
.../cssmenu/ApplicationActionsPanel.java | 17 ++---
.../widgets/cssmenu/CssMenuItemPanel.css | 20 ------
.../widgets/cssmenu/CssMenuItemPanel.html | 34 ---------
.../widgets/cssmenu/CssMenuItemPanel.java | 44 ------------
.../cssmenu/CssMenuItemPanelAbstract.java | 8 ---
.../components/widgets/cssmenu/CssMenuPanel.css | 18 -----
.../widgets/cssmenu/CssMenuPanel.html | 32 ---------
.../widgets/cssmenu/CssMenuPanel.java | 76 --------------------
.../widgets/cssmenu/CssSubMenuItemsPanel.css | 20 ------
11 files changed, 10 insertions(+), 266 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/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 e1ea9f0..332a7d7 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
@@ -94,8 +94,6 @@ 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.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;
import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2BootstrapCssReference;
import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2JsReference;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
@@ -495,8 +493,6 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
// components without factories
references.add(PanelUtil.cssResourceReferenceFor(AdditionalLinksPanel.class));
- references.add(PanelUtil.cssResourceReferenceFor(CssSubMenuItemsPanel.class));
- references.add(PanelUtil.cssResourceReferenceFor(CssMenuItemPanel.class));
// non-conforming component factories
references.add(PanelUtil.cssResourceReferenceFor(MultiLineStringPanel.class));
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
index 4c7d806..29a604a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuFactory.java
@@ -46,10 +46,9 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ActionLinkFac
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ApplicationActionsPanel;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem;
import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItem.Builder;
-import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuPanel;
/**
- * {@link ComponentFactory} for a {@link CssMenuPanel} to represent the
+ * {@link ComponentFactory} for a {@link org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.ApplicationActionsPanel} to represent the
* {@link ApplicationActionsModel application action}s.
*/
public class AppActionsCssMenuFactory extends ComponentFactoryAbstract {
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.java
index d2c3f05..656af3a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ApplicationActionsPanel.java
@@ -14,6 +14,7 @@ import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Fragment;
@@ -59,14 +60,14 @@ public class ApplicationActionsPanel extends Panel {
// fake data to test multi-level menus
-// if (menuItem.getName().equals("Text")) {
-// CssMenuItem fakeItem = menuItem.newSubMenuItem("Fake item").build();
-//
-// fakeItem.newSubMenuItem("Fake item 1").link(new ExternalLink("menuLink", "http://abv.bg")).build();
-// CssMenuItem fakeMenu12 = fakeItem.newSubMenuItem("Fake item 2").link(new ExternalLink("menuLink", "http://google.com")).build();
-//
-// fakeMenu12.newSubMenuItem("Fake item 2.1").link(new ExternalLink("menuLink", "http://web.de")).build();
-// }
+ if (menuItem.getName().equals("ToDos")) {
+ CssMenuItem fakeItem = menuItem.newSubMenuItem("Fake item").build();
+
+ fakeItem.newSubMenuItem("Fake item 1").link(new ExternalLink("menuLink", "http://abv.bg")).build();
+ CssMenuItem fakeMenu12 = fakeItem.newSubMenuItem("Fake item 2").link(new ExternalLink("menuLink", "http://google.com")).build();
+
+ fakeMenu12.newSubMenuItem("Fake item 2.1").link(new ExternalLink("menuLink", "http://web.de")).build();
+ }
ListView<CssMenuItem> subMenuItemsView = new ListView<CssMenuItem>("subMenuItems", subMenuItems) {
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.css
deleted file mode 100644
index 5921aeb..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.css
+++ /dev/null
@@ -1,20 +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.
- */
-
-
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.html
deleted file mode 100644
index 7d80c8e..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.html
+++ /dev/null
@@ -1,34 +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.
--->
-<html xmlns:wicket="http://wicket.apache.org">
- <body>
- <wicket:panel>
- <li class="cssMenuItemPanel">
- <a wicket:id="menuLink" class="btn">
- <span class="fontAwesomeIcon" wicket:id="menuLinkFontAwesome"></span>
- <span class="menuLabel" wicket:id="menuLabel">[menu label]</span>
- </a>
-
- <p wicket:id="menuLabel">[menu label]</p>
- <span wicket:id="subMenuItems">[subMenuItems]</span>
- </li>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
deleted file mode 100644
index 3a6792c..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
+++ /dev/null
@@ -1,44 +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.widgets.cssmenu;
-
-import org.apache.wicket.model.Model;
-
-/**
- * Panel containing a single {@link CssMenuItem}.
- */
-public class CssMenuItemPanel extends CssMenuItemPanelAbstract<CssMenuItemPanel.MyModel> {
-
- private static final long serialVersionUID = 1L;
-
- static class MyModel extends Model<CssMenuItem> {
- private static final long serialVersionUID = 1L;
-
- public MyModel(final CssMenuItem cssMenuItem) {
- super(cssMenuItem);
- }
- }
-
- public CssMenuItemPanel(final String id, final CssMenuItem cssMenuItem) {
- super(id, new MyModel(cssMenuItem));
-
- addSubMenuItems(this, getModel().getObject());
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanelAbstract.java
index f6f922c..832515b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanelAbstract.java
@@ -43,13 +43,5 @@ abstract class CssMenuItemPanelAbstract<T extends IModel<?>> extends PanelAbstra
cssMenuItem.addTo(markupContainer);
}
- /**
- * Because there is no {@link ComponentFactory} for (the subclasses of) this component,
- * its CSS must be contributed in this way instead (also meaning its CSS is not bundled).
- */
- @Override
- public void renderHead(final IHeaderResponse response) {
- PanelUtil.renderHead(response, this.getClass());
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/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
deleted file mode 100644
index eaeea17..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.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/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.html
deleted file mode 100644
index d53c012..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.html
+++ /dev/null
@@ -1,32 +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.
--->
-<html xmlns:wicket="http://wicket.apache.org">
- <body>
- <wicket:panel>
- <span class="cssMenuPanel">
- <span class="menuh">
- <ul wicket:id="menuItems" class="cssMenuItems">
- <span wicket:id="menuItem">[menuItem here]</span>
- </ul>
- </span>
- </span>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
deleted file mode 100644
index 742f343..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuPanel.java
+++ /dev/null
@@ -1,76 +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.widgets.cssmenu;
-
-import java.util.List;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.repeater.RepeatingView;
-import org.apache.wicket.model.util.ListModel;
-import org.apache.isis.viewer.wicket.ui.ComponentFactory;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
-
-/**
- * Top level panel for a CSS menu, consisting of a number of unparented
- * {@link CssMenuItem}s.
- */
-public class CssMenuPanel extends PanelAbstract<CssMenuPanel.ListOfCssMenuItemsModel> {
-
- private static final long serialVersionUID = 1L;
-
-
- static class ListOfCssMenuItemsModel extends ListModel<CssMenuItem> {
-
- private static final long serialVersionUID = 1L;
-
- public ListOfCssMenuItemsModel(final List<CssMenuItem> cssMenuItems) {
- super(cssMenuItems);
- }
- }
-
- static final String ID_MENU_ITEMS = "menuItems";
- static final String ID_MENU_ITEM = "menuItem";
-
- private CssMenuPanel(final String id, final List<CssMenuItem> topLevelMenuItems) {
- super(id, new ListOfCssMenuItemsModel(topLevelMenuItems));
-
- final RepeatingView menuItemRv = new RepeatingView(CssMenuPanel.ID_MENU_ITEMS);
- add(menuItemRv);
-
- for (final CssMenuItem cssMenuItem : this.getModel().getObject()) {
- final WebMarkupContainer menuItemMarkup = new WebMarkupContainer(menuItemRv.newChildId());
- menuItemRv.add(menuItemMarkup);
-
- menuItemMarkup.add(new CssMenuItemPanel(CssMenuPanel.ID_MENU_ITEM, cssMenuItem));
- }
-
- }
-
- /**
- * Because there is no {@link ComponentFactory} for this component,
- * its CSS must be contributed in this way instead (also meaning its CSS is not bundled).
- */
- @Override
- public void renderHead(final IHeaderResponse response) {
- PanelUtil.renderHead(response, this.getClass());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/fd3e6eef/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssSubMenuItemsPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssSubMenuItemsPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssSubMenuItemsPanel.css
deleted file mode 100644
index 5921aeb..0000000
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssSubMenuItemsPanel.css
+++ /dev/null
@@ -1,20 +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.
- */
-
-
\ No newline at end of file