summaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/ui/Link.java
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/com/vaadin/ui/Link.java')
-rw-r--r--server/src/com/vaadin/ui/Link.java242
1 files changed, 242 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/Link.java b/server/src/com/vaadin/ui/Link.java
new file mode 100644
index 0000000000..fd105f3255
--- /dev/null
+++ b/server/src/com/vaadin/ui/Link.java
@@ -0,0 +1,242 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.ui;
+
+import java.util.Map;
+
+import com.vaadin.terminal.Page;
+import com.vaadin.terminal.PaintException;
+import com.vaadin.terminal.PaintTarget;
+import com.vaadin.terminal.Resource;
+import com.vaadin.terminal.Vaadin6Component;
+
+/**
+ * Link is used to create external or internal URL links.
+ *
+ * @author Vaadin Ltd.
+ * @version
+ * @VERSION@
+ * @since 3.0
+ */
+@SuppressWarnings("serial")
+public class Link extends AbstractComponent implements Vaadin6Component {
+
+ /* Target window border type constant: No window border */
+ public static final int TARGET_BORDER_NONE = Page.BORDER_NONE;
+
+ /* Target window border type constant: Minimal window border */
+ public static final int TARGET_BORDER_MINIMAL = Page.BORDER_MINIMAL;
+
+ /* Target window border type constant: Default window border */
+ public static final int TARGET_BORDER_DEFAULT = Page.BORDER_DEFAULT;
+
+ private Resource resource = null;
+
+ private String targetName;
+
+ private int targetBorder = TARGET_BORDER_DEFAULT;
+
+ private int targetWidth = -1;
+
+ private int targetHeight = -1;
+
+ /**
+ * Creates a new link.
+ */
+ public Link() {
+
+ }
+
+ /**
+ * Creates a new instance of Link.
+ *
+ * @param caption
+ * @param resource
+ */
+ public Link(String caption, Resource resource) {
+ setCaption(caption);
+ this.resource = resource;
+ }
+
+ /**
+ * Creates a new instance of Link that opens a new window.
+ *
+ *
+ * @param caption
+ * the Link text.
+ * @param targetName
+ * the name of the target window where the link opens to. Empty
+ * name of null implies that the target is opened to the window
+ * containing the link.
+ * @param width
+ * the Width of the target window.
+ * @param height
+ * the Height of the target window.
+ * @param border
+ * the Border style of the target window.
+ *
+ */
+ public Link(String caption, Resource resource, String targetName,
+ int width, int height, int border) {
+ setCaption(caption);
+ this.resource = resource;
+ setTargetName(targetName);
+ setTargetWidth(width);
+ setTargetHeight(height);
+ setTargetBorder(border);
+ }
+
+ /**
+ * Paints the content of this component.
+ *
+ * @param target
+ * the Paint Event.
+ * @throws PaintException
+ * if the paint operation failed.
+ */
+ @Override
+ public void paintContent(PaintTarget target) throws PaintException {
+
+ if (resource != null) {
+ target.addAttribute("src", resource);
+ } else {
+ return;
+ }
+
+ // Target window name
+ final String name = getTargetName();
+ if (name != null && name.length() > 0) {
+ target.addAttribute("name", name);
+ }
+
+ // Target window size
+ if (getTargetWidth() >= 0) {
+ target.addAttribute("targetWidth", getTargetWidth());
+ }
+ if (getTargetHeight() >= 0) {
+ target.addAttribute("targetHeight", getTargetHeight());
+ }
+
+ // Target window border
+ switch (getTargetBorder()) {
+ case TARGET_BORDER_MINIMAL:
+ target.addAttribute("border", "minimal");
+ break;
+ case TARGET_BORDER_NONE:
+ target.addAttribute("border", "none");
+ break;
+ }
+ }
+
+ /**
+ * Returns the target window border.
+ *
+ * @return the target window border.
+ */
+ public int getTargetBorder() {
+ return targetBorder;
+ }
+
+ /**
+ * Returns the target window height or -1 if not set.
+ *
+ * @return the target window height.
+ */
+ public int getTargetHeight() {
+ return targetHeight < 0 ? -1 : targetHeight;
+ }
+
+ /**
+ * Returns the target window name. Empty name of null implies that the
+ * target is opened to the window containing the link.
+ *
+ * @return the target window name.
+ */
+ public String getTargetName() {
+ return targetName;
+ }
+
+ /**
+ * Returns the target window width or -1 if not set.
+ *
+ * @return the target window width.
+ */
+ public int getTargetWidth() {
+ return targetWidth < 0 ? -1 : targetWidth;
+ }
+
+ /**
+ * Sets the border of the target window.
+ *
+ * @param targetBorder
+ * the targetBorder to set.
+ */
+ public void setTargetBorder(int targetBorder) {
+ if (targetBorder == TARGET_BORDER_DEFAULT
+ || targetBorder == TARGET_BORDER_MINIMAL
+ || targetBorder == TARGET_BORDER_NONE) {
+ this.targetBorder = targetBorder;
+ requestRepaint();
+ }
+ }
+
+ /**
+ * Sets the target window height.
+ *
+ * @param targetHeight
+ * the targetHeight to set.
+ */
+ public void setTargetHeight(int targetHeight) {
+ this.targetHeight = targetHeight;
+ requestRepaint();
+ }
+
+ /**
+ * Sets the target window name.
+ *
+ * @param targetName
+ * the targetName to set.
+ */
+ public void setTargetName(String targetName) {
+ this.targetName = targetName;
+ requestRepaint();
+ }
+
+ /**
+ * Sets the target window width.
+ *
+ * @param targetWidth
+ * the targetWidth to set.
+ */
+ public void setTargetWidth(int targetWidth) {
+ this.targetWidth = targetWidth;
+ requestRepaint();
+ }
+
+ /**
+ * Returns the resource this link opens.
+ *
+ * @return the Resource.
+ */
+ public Resource getResource() {
+ return resource;
+ }
+
+ /**
+ * Sets the resource this link opens.
+ *
+ * @param resource
+ * the resource to set.
+ */
+ public void setResource(Resource resource) {
+ this.resource = resource;
+ requestRepaint();
+ }
+
+ @Override
+ public void changeVariables(Object source, Map<String, Object> variables) {
+ // TODO Remove once Vaadin6Component is no longer implemented
+ }
+}