Wicket-5801 Responsive Images - CORS settings

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6b31d4c6
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6b31d4c6
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6b31d4c6

Branch: refs/heads/master
Commit: 6b31d4c64b8ee0dd3b513025eebec9ae75ff2893
Parents: 0880713
Author: klopfdreh <noctur...@googlemail.com>
Authored: Thu Jan 22 12:28:52 2015 +0100
Committer: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Committed: Wed Jan 28 18:53:33 2015 +0200

----------------------------------------------------------------------
 .../apache/wicket/markup/html/image/Image.java  | 60 ++++++++++++++++++++
 .../apache/wicket/markup/html/image/Source.java | 16 ++++++
 2 files changed, 76 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/6b31d4c6/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
index 74b6512..644e491 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
@@ -67,6 +67,11 @@ public class Image extends WebComponent implements 
IResourceListener
        private List<String> sizes = null;
 
        /**
+        * Cross origin settings
+        */
+       private Cors crossorigin = null;
+
+       /**
         * This constructor can be used if you override {@link 
#getImageResourceReference()} or
         * {@link #getImageResource()}
         * 
@@ -347,8 +352,13 @@ public class Image extends WebComponent implements 
IResourceListener
                        String srcAttribute = this.buildSrcAttribute(tag);
                        this.buildSrcSetAttribute(tag);
                        tag.put("src", srcAttribute);
+
                }
                this.buildSizesAttribute(tag);
+
+               if (this.crossorigin != null) {
+                       tag.put("crossorigin", this.crossorigin.getRealName());
+               }
        }
 
        /**
@@ -514,4 +524,54 @@ public class Image extends WebComponent implements 
IResourceListener
                        return super.canCallListenerInterface(method);
                }
        }
+
+       /**
+        * Gets the cross origin settings
+        *
+        * @see {@link #setCrossorigin(Cors)}
+        *
+        * @return the cross origins settings
+        */
+       public Cors getCrossorigin() {
+               return this.crossorigin;
+       }
+
+       /**
+        * Sets the cross origin settings<br>
+        * <br>
+        *
+        * <b>anonymous</b>: Cross-origin CORS requests for the element will 
not have the credentials flag set.<br>
+        * <br>
+        * <b>use_credentials</b>: Cross-origin CORS requests for the element 
will have the credentials flag set.<br>
+        * <br>
+        * <b>no_cores</b>: The empty string is also a valid keyword, and maps 
to the Anonymous state. The attribute's invalid value default is the
+        * Anonymous state. The missing value default, used when the attribute 
is omitted, is the No CORS state
+        *
+        * @param crossorigin
+        *            the cross origins settings to set
+        */
+       public void setCrossorigin(Cors crossorigin) {
+               this.crossorigin = crossorigin;
+       }
+
+       /**
+        * To be used for the crossorigin attribute
+        *
+        * @see {@link #setCrossorigin(Cors)}
+        */
+       public enum Cors {
+               anonymous("anonymous"),
+               use_credentials("user-credentials"),
+               no_cors("");
+
+               private String realName;
+
+               private Cors(String realName) {
+                       this.realName = realName;
+               }
+
+               public String getRealName() {
+                       return this.realName;
+               }
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/6b31d4c6/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Source.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Source.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Source.java
index cb074e9..b38f5fc 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Source.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Source.java
@@ -120,4 +120,20 @@ public class Source extends Image
        {
                return media;
        }
+
+       /**
+        * Unsupported for source tag
+        */
+       @Override
+       public void setCrossorigin(Cors crossorigin) {
+               throw new UnsupportedOperationException("It is not allowed to 
set the crossorigin attribute for source tag");
+       }
+
+       /**
+        * Unsupported for source tag
+        */
+       @Override
+       public Cors getCrossorigin() {
+               throw new UnsupportedOperationException("It is not allowed to 
get the crossorigin attribute for source tag");
+       }
 }

Reply via email to