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/10/27 12:55:59 UTC
git commit: ISIS-537: moving CssClassFaFacets into correct package.
Repository: isis
Updated Branches:
refs/heads/master 6668fb41e -> dcaf3f51f
ISIS-537: moving CssClassFaFacets into correct package.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/dcaf3f51
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/dcaf3f51
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/dcaf3f51
Branch: refs/heads/master
Commit: dcaf3f51f358fd55aa5b9eb7ae5c63c310372b97
Parents: 6668fb4
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Oct 27 11:42:51 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Oct 27 11:42:51 2014 +0000
----------------------------------------------------------------------
.../icontitle/EntityIconAndTitlePanel.java | 2 +-
.../components/widgets/cssmenu/CssMenuItem.java | 16 +++--
.../members/cssclassfa/CssClassFaFacet.java | 32 +++++++++
.../cssclassfa/CssClassFaFacetAbstract.java | 56 +++++++++++++++
.../CssClassFaFacetOnMemberAnnotation.java | 30 ++++++++
.../CssClassFaFacetOnMemberFactory.java | 72 ++++++++++++++++++++
.../CssClassFaFacetOnMemberFromProperties.java | 35 ++++++++++
.../cssclassfa/cssclass/CssClassFaFacet.java | 32 ---------
.../cssclass/CssClassFaFacetAbstract.java | 56 ---------------
.../CssClassFaFacetOnMemberAnnotation.java | 30 --------
.../CssClassFaFacetOnMemberFactory.java | 72 --------------------
.../CssClassFaFacetOnMemberFromProperties.java | 35 ----------
.../CssClassFaFacetOnTypeAnnotation.java | 2 +-
.../CssClassFaFacetOnTypeAnnotationFactory.java | 2 +-
.../dflt/ProgrammingModelFacetsJava5.java | 2 +-
...assFaAnnotationOnMemberFacetFactoryTest.java | 6 +-
.../cssclassfa/CssClassFaFacetAbstractTest.java | 28 ++++++++
.../cssclass/CssClassFaFacetAbstractTest.java | 28 --------
...ClassFaFacetOnTypeAnnotationFactoryTest.java | 4 +-
19 files changed, 272 insertions(+), 268 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 867def7..36e7f44 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -30,7 +30,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/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 d640805..41f8e89 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
@@ -40,9 +40,10 @@ import org.apache.isis.core.commons.ensure.Ensure;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.consent.Consent;
+import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -55,6 +56,8 @@ import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import static org.hamcrest.CoreMatchers.is;
+;
+
public class CssMenuItem implements Serializable {
@@ -355,13 +358,16 @@ public class CssMenuItem implements Serializable {
}
public static String cssClassFor(final ObjectAction action) {
- CssClassFacet cssClassFacet = action.getFacet(CssClassFacet.class);
- return cssClassFacet != null ? cssClassFacet.value() : null;
+ return facetValueIfAnyFor(action, CssClassFacet.class);
}
public static String cssClassFaFor(final ObjectAction action) {
- CssClassFaFacet cssClassFaFacet = action.getFacet(CssClassFaFacet.class);
- return cssClassFaFacet != null ? cssClassFaFacet.value() : null;
+ return facetValueIfAnyFor(action, CssClassFaFacet.class);
+ }
+
+ private static String facetValueIfAnyFor(ObjectAction action, Class<? extends SingleStringValueFacet> x) {
+ final SingleStringValueFacet singleStringValueFacet = action.getFacet(x);
+ return singleStringValueFacet != null ? singleStringValueFacet.value() : null;
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacet.java
new file mode 100644
index 0000000..85a7da3
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacet.java
@@ -0,0 +1,32 @@
+/*
+ * 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.cssclassfa;
+
+import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
+
+/**
+ * The <a href="http://fortawesome.github.io/Font-Awesome/">Font Awesome</a> css class(es) for an action.
+ *
+ * <p>
+ * In the standard Apache Isis Programming Model, corresponds to annotating the
+ * member with <tt>{@literal @}{@link org.apache.isis.applib.annotation.CssClassFa CssClassFa}</tt>.
+ */
+public interface CssClassFaFacet extends SingleStringValueFacet {
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java
new file mode 100644
index 0000000..c19a374
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java
@@ -0,0 +1,56 @@
+/*
+ * 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.cssclassfa;
+
+import java.util.Set;
+import java.util.regex.Pattern;
+import com.google.common.base.Joiner;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Sets;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
+
+public class CssClassFaFacetAbstract extends SingleStringValueFacetAbstract implements CssClassFaFacet {
+
+ private static final Pattern WHITESPACE = Pattern.compile("\\s+");
+
+ public CssClassFaFacetAbstract(final String value, final FacetHolder holder) {
+ super(type(), holder, sanitize(value));
+ }
+
+ /**
+ * Adds the optional <em>fa</em> and <em>fa-fw</em> FontAwesome classes
+ *
+ * @param value The original CSS classes defined with {@literal @}{@link org.apache.isis.applib.annotation.CssClassFa CssClassFa}
+ * @return The original CSS classes plus <em>fa</em> and <em>fa-fw</em> if not already provided
+ */
+ static String sanitize(String value) {
+ Iterable<String> classes = Splitter.on(WHITESPACE).split(value);
+ Set<String> cssClassesSet = Sets.newHashSet(classes);
+ cssClassesSet.add("fa");
+ cssClassesSet.add("fa-fw");
+ return Joiner.on(' ').join(cssClassesSet);
+ }
+
+ public static Class<? extends Facet> type() {
+ return CssClassFaFacet.class;
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberAnnotation.java
new file mode 100644
index 0000000..dbb3441
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberAnnotation.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.cssclassfa.annotprop;
+
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
+
+public class CssClassFaFacetOnMemberAnnotation extends CssClassFaFacetAbstract {
+
+ public CssClassFaFacetOnMemberAnnotation(final String value, final FacetHolder holder) {
+ super(value, holder);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/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
new file mode 100644
index 0000000..5a835a7
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -0,0 +1,72 @@
+/*
+ * 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.cssclassfa.annotprop;
+
+import java.util.Properties;
+import org.apache.isis.applib.annotation.CssClassFa;
+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.Annotations;
+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 {
+
+ public CssClassFaFacetOnMemberFactory() {
+ super(FeatureType.ACTIONS_ONLY);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ CssClassFaFacet cssClassFaFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
+ if(cssClassFaFacet == null) {
+ cssClassFaFacet = createFromAnnotationIfPossible(processMethodContext);
+ }
+
+ // no-op if null
+ FacetUtil.addFacet(cssClassFaFacet);
+ }
+
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ CssClassFaFacet cssClassFaFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+ // no-op if null
+ FacetUtil.addFacet(cssClassFaFacet);
+ }
+
+ private static CssClassFaFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("cssClassFa");
+ return properties != null ? new CssClassFaFacetOnMemberFromProperties(properties, holder) : null;
+ }
+
+ private CssClassFaFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final CssClassFa annotation = Annotations.getAnnotation(processMethodContext.getMethod(), CssClassFa.class);
+ return annotation != null ? new CssClassFaFacetOnMemberAnnotation(annotation.value(), processMethodContext.getFacetHolder()) : null;
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromProperties.java
new file mode 100644
index 0000000..6d29f16
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromProperties.java
@@ -0,0 +1,35 @@
+/*
+ * 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.cssclassfa.annotprop;
+
+import java.util.Properties;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
+
+public class CssClassFaFacetOnMemberFromProperties extends CssClassFaFacetAbstract {
+
+ public CssClassFaFacetOnMemberFromProperties(final Properties properties, final FacetHolder holder) {
+ super(valueFrom(properties), holder);
+ }
+
+ private static String valueFrom(Properties properties) {
+ return properties.getProperty("value");
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacet.java
deleted file mode 100644
index 6546395..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacet.java
+++ /dev/null
@@ -1,32 +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.facets.members.cssclassfa.cssclass;
-
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
-
-/**
- * The <a href="http://fortawesome.github.io/Font-Awesome/">Font Awesome</a> css class(es) for an action.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to annotating the
- * member with <tt>{@literal @}{@link org.apache.isis.applib.annotation.CssClassFa CssClassFa}</tt>.
- */
-public interface CssClassFaFacet extends SingleStringValueFacet {
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstract.java
deleted file mode 100644
index 8d28563..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstract.java
+++ /dev/null
@@ -1,56 +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.facets.members.cssclassfa.cssclass;
-
-import java.util.Set;
-import java.util.regex.Pattern;
-import com.google.common.base.Joiner;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Sets;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-
-public class CssClassFaFacetAbstract extends SingleStringValueFacetAbstract implements CssClassFaFacet {
-
- private static final Pattern WHITESPACE = Pattern.compile("\\s+");
-
- public CssClassFaFacetAbstract(final String value, final FacetHolder holder) {
- super(type(), holder, sanitize(value));
- }
-
- /**
- * Adds the optional <em>fa</em> and <em>fa-fw</em> FontAwesome classes
- *
- * @param value The original CSS classes defined with {@literal @}{@link org.apache.isis.applib.annotation.CssClassFa CssClassFa}
- * @return The original CSS classes plus <em>fa</em> and <em>fa-fw</em> if not already provided
- */
- static String sanitize(String value) {
- Iterable<String> classes = Splitter.on(WHITESPACE).split(value);
- Set<String> cssClassesSet = Sets.newHashSet(classes);
- cssClassesSet.add("fa");
- cssClassesSet.add("fa-fw");
- return Joiner.on(' ').join(cssClassesSet);
- }
-
- public static Class<? extends Facet> type() {
- return CssClassFaFacet.class;
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberAnnotation.java
deleted file mode 100644
index 7884a7b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberAnnotation.java
+++ /dev/null
@@ -1,30 +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.facets.members.cssclassfa.cssclass.annotprop;
-
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacetAbstract;
-
-public class CssClassFaFacetOnMemberAnnotation extends CssClassFaFacetAbstract {
-
- public CssClassFaFacetOnMemberAnnotation(final String value, final FacetHolder holder) {
- super(value, holder);
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFactory.java
deleted file mode 100644
index c5f6e35..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFactory.java
+++ /dev/null
@@ -1,72 +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.facets.members.cssclassfa.cssclass.annotprop;
-
-import java.util.Properties;
-import org.apache.isis.applib.annotation.CssClassFa;
-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.Annotations;
-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.cssclass.CssClassFaFacet;
-
-public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory {
-
- public CssClassFaFacetOnMemberFactory() {
- super(FeatureType.ACTIONS_ONLY);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- CssClassFaFacet cssClassFaFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
- if(cssClassFaFacet == null) {
- cssClassFaFacet = createFromAnnotationIfPossible(processMethodContext);
- }
-
- // no-op if null
- FacetUtil.addFacet(cssClassFaFacet);
- }
-
-
- @Override
- public void process(ProcessContributeeMemberContext processMemberContext) {
- CssClassFaFacet cssClassFaFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
- // no-op if null
- FacetUtil.addFacet(cssClassFaFacet);
- }
-
- private static CssClassFaFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("cssClassFa");
- return properties != null ? new CssClassFaFacetOnMemberFromProperties(properties, holder) : null;
- }
-
- private CssClassFaFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- final CssClassFa annotation = Annotations.getAnnotation(processMethodContext.getMethod(), CssClassFa.class);
- return annotation != null ? new CssClassFaFacetOnMemberAnnotation(annotation.value(), processMethodContext.getFacetHolder()) : null;
- }
-
-}
-
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFromProperties.java
deleted file mode 100644
index ccae3f2..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/annotprop/CssClassFaFacetOnMemberFromProperties.java
+++ /dev/null
@@ -1,35 +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.facets.members.cssclassfa.cssclass.annotprop;
-
-import java.util.Properties;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacetAbstract;
-
-public class CssClassFaFacetOnMemberFromProperties extends CssClassFaFacetAbstract {
-
- public CssClassFaFacetOnMemberFromProperties(final Properties properties, final FacetHolder holder) {
- super(valueFrom(properties), holder);
- }
-
- private static String valueFrom(Properties properties) {
- return properties.getProperty("value");
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotation.java
index fcf62c8..ad61151 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotation.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation.annot
import org.apache.isis.applib.annotation.CssClassFa;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacetAbstract;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
public class CssClassFaFacetOnTypeAnnotation extends CssClassFaFacetAbstract {
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
index e94410e..eb3ca60 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/annotation/CssClassFaFacetOnTypeAnnotationFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.Annotations;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
public class CssClassFaFacetOnTypeAnnotationFactory extends FacetFactoryAbstract {
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/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 d9f3053..c8bddbf 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,7 +53,7 @@ import org.apache.isis.core.metamodel.facets.collections.sortedby.annotation.Sor
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.CssClassFacetOnMemberFactory;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.annotprop.CssClassFaFacetOnMemberFactory;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
import org.apache.isis.core.metamodel.facets.members.describedas.staticmethod.DescribedAsFacetStaticMethodFactory;
import org.apache.isis.core.metamodel.facets.members.disabled.annotprop.DisabledFacetFactory;
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaAnnotationOnMemberFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaAnnotationOnMemberFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaAnnotationOnMemberFacetFactoryTest.java
index 35d599f..c90a04d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaAnnotationOnMemberFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaAnnotationOnMemberFacetFactoryTest.java
@@ -25,9 +25,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacetAbstract;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.annotprop.CssClassFaFacetOnMemberFactory;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;
@@ -35,7 +33,7 @@ import static org.junit.Assert.assertThat;
public class CssClassFaAnnotationOnMemberFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
@Test
- public void testCssClassAnnotationPickedUpOnClass() {
+ public void testCssClassFaAnnotationPickedUpOnClass() {
final CssClassFaFacetOnMemberFactory facetFactory = new CssClassFaFacetOnMemberFactory();
facetFactory.setSpecificationLookup(mockSpecificationLoaderSpi);
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstractTest.java
new file mode 100644
index 0000000..cc03f80
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstractTest.java
@@ -0,0 +1,28 @@
+package org.apache.isis.core.metamodel.facets.members.cssclassfa;
+
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class CssClassFaFacetAbstractTest {
+
+ public static class Sanitize extends CssClassFaFacetAbstractTest {
+
+ @Test
+ public void present() throws Exception {
+ assertThat(CssClassFaFacetAbstract.sanitize("fa foo"), is("fa foo"));
+ }
+
+ @Test
+ public void presentAtEnd() throws Exception {
+ assertThat(CssClassFaFacetAbstract.sanitize("foo fa "), is("foo fa "));
+ }
+
+ @Test
+ public void missing() throws Exception {
+ assertThat(CssClassFaFacetAbstract.sanitize("foo"), is("fa foo"));
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstractTest.java
deleted file mode 100644
index 109cd42..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/cssclass/CssClassFaFacetAbstractTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass;
-
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class CssClassFaFacetAbstractTest {
-
- public static class Sanitize extends CssClassFaFacetAbstractTest {
-
- @Test
- public void present() throws Exception {
- assertThat(CssClassFaFacetAbstract.sanitize("fa foo"), is("fa foo"));
- }
-
- @Test
- public void presentAtEnd() throws Exception {
- assertThat(CssClassFaFacetAbstract.sanitize("foo fa "), is("foo fa "));
- }
-
- @Test
- public void missing() throws Exception {
- assertThat(CssClassFaFacetAbstract.sanitize("foo"), is("fa foo"));
- }
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/dcaf3f51/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
index 9bc8c9e..d0f3333 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
@@ -23,8 +23,8 @@ import org.apache.isis.applib.annotation.CssClassFa;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.FacetFactory;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.cssclass.CssClassFaFacetAbstract;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
import org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation.annotation.CssClassFaFacetOnTypeAnnotationFactory;
import static org.hamcrest.CoreMatchers.*;