diff options
author | Artur Signell <artur@vaadin.com> | 2015-02-05 01:48:58 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-02-05 14:18:46 +0000 |
commit | 713b8f0bbb714a0266145d956fe6699b98941d82 (patch) | |
tree | 2219096785abf374b55af6029ac772a1d5093b14 /server/src/com/vaadin/ui/Link.java | |
parent | db7899e6140294989664939d49c7bf1c9229d91f (diff) | |
download | vaadin-framework-713b8f0bbb714a0266145d956fe6699b98941d82.tar.gz vaadin-framework-713b8f0bbb714a0266145d956fe6699b98941d82.zip |
Declarative support for Link (#16322)
Change-Id: I02f36b5e89bdf2673696de6dd8fd217835e759d1
Diffstat (limited to 'server/src/com/vaadin/ui/Link.java')
-rw-r--r-- | server/src/com/vaadin/ui/Link.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/Link.java b/server/src/com/vaadin/ui/Link.java index 2731e93ef2..b6e127fd38 100644 --- a/server/src/com/vaadin/ui/Link.java +++ b/server/src/com/vaadin/ui/Link.java @@ -16,10 +16,16 @@ package com.vaadin.ui; +import java.util.Collection; + +import org.jsoup.nodes.Element; + import com.vaadin.server.Resource; import com.vaadin.shared.ui.BorderStyle; import com.vaadin.shared.ui.link.LinkConstants; import com.vaadin.shared.ui.link.LinkState; +import com.vaadin.ui.declarative.DesignAttributeHandler; +import com.vaadin.ui.declarative.DesignContext; /** * Link is used to create external or internal URL links. @@ -202,4 +208,34 @@ public class Link extends AbstractComponent { setResource(LinkConstants.HREF_RESOURCE, resource); } + @Override + public void readDesign(Element design, DesignContext designContext) { + super.readDesign(design, designContext); + if (design.hasAttr("target")) { + setTargetName(DesignAttributeHandler.getFormatter().parse( + design.attr("target"), String.class)); + } + if (design.hasAttr("href")) { + setResource(DesignAttributeHandler.getFormatter().parse( + design.attr("href"), Resource.class)); + } + } + + @Override + public void writeDesign(Element design, DesignContext designContext) { + super.writeDesign(design, designContext); + Link def = designContext.getDefaultInstance(this); + DesignAttributeHandler.writeAttribute("target", design.attributes(), + getTargetName(), def.getTargetName(), String.class); + DesignAttributeHandler.writeAttribute("href", design.attributes(), + getResource(), def.getResource(), Resource.class); + } + + @Override + protected Collection<String> getCustomAttributes() { + Collection<String> a = super.getCustomAttributes(); + a.add("target-name"); + a.add("resource"); + return a; + } } |