All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zkoss.zul.Style Maven / Gradle / Ivy

There is a newer version: 10.0.0-jakarta
Show newest version
/* Style.java

{{IS_NOTE
	Purpose:
		
	Description:
		
	History:
		Thu Jul 20 15:17:40     2006, Created by tomyeh
}}IS_NOTE

Copyright (C) 2006 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
}}IS_RIGHT
*/
package org.zkoss.zul;

import org.zkoss.lang.Objects;
import org.zkoss.zk.ui.AbstractComponent;
import org.zkoss.zk.ui.Desktop;

/**
 * The style component used to specify CSS styles for the owner desktop.
 *
 * 

Note: a style component can appear anywhere in a ZUML page, but it * affects all components in the same desktop. * *

There are two formats when used in a ZUML page: * *

Method 1: Specify the URL of the CSS file *

<style src="my.css"/>
 * 
* *

Method 2: Specify the CSS directly *

<style>
 * .mycls {
 *  border: 1px outset #777;
 * }
 *</style>
 * 
* *

Note: if the src and content properties are both set, the later one * overrides the previous one. * * @author tomyeh */ public class Style extends AbstractComponent { private String _src; /** _src and _content cannot be nonnull at the same time. */ private String _content; private String _media; public Style() { super.setVisible(false); } /** * @param src the URI of an external style sheet. */ public Style(String src) { this(); setSrc(src); } /** * @param src the URI of an external style sheet. * @param media the media dependencies for the style sheet. * @since 5.0.3 */ public Style(String src, String media) { this(src); setMedia(media); } /** @deprecated As of release 5.0.0, it is decided automatically. */ public void setDynamic(boolean dynamic) { } /** @deprecated As of release 5.0.0, it is decided automatically. */ public boolean isDynamic() { return true; } /** Returns the URI of an external style sheet. * *

Default: null. */ public String getSrc() { return _src; } /** Sets the URI of an external style sheet. * *

Calling this method implies setContent(null). * In other words, the last invocation of {@link #setSrc} overrides * the previous {@link #setContent}, if any. * * @param src the URI of an external style sheet * @see #setContent */ public void setSrc(String src) { if (src != null && src.length() == 0) src = null; if (_content != null || !Objects.equals(_src, src)) { _src = src; _content = null; smartUpdate("src", new EncodedURL()); } } /** Returns the media dependencies for this style sheet. * *

Default: null. *

Refer to media-depedent style sheet for details. * @since 5.0.3 */ public String getMedia() { return _media; } /** Sets the media dependencies for this style sheet. *

Refer to media-depedent style sheet for details. * * @param media the media dependencies for this style sheet * @since 5.0.3 */ public void setMedia(String media) { if (media != null && media.length() == 0) media = null; if (!Objects.equals(_media, media)) { _media = media; smartUpdate("media", _media); } } /** Returns the content of the style element. * By content we mean the CSS rules that will be sent to the client. * *

Default: null. * *

Deriving class can override this method to return whatever * it prefers (ignored if null). * @since 3.0.0 */ public String getContent() { return _content; } /** Sets the content of the style element. * By content we mean the CSS rules that will be sent to the client. * *

Calling this method implies setSrc(null). * In other words, the last invocation of {@link #setContent} overrides * the previous {@link #setSrc}, if any. * @since 3.0.0 * @see #setSrc */ public void setContent(String content) { if (content != null && content.length() == 0) content = null; if (_src != null || !Objects.equals(_content, content)) { _content = content; _src = null; smartUpdate("content", _content); } } //super// protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws java.io.IOException { super.renderProperties(renderer); render(renderer, "media", _media); final String cnt = getContent(); if (cnt != null) render(renderer, "content", cnt); else render(renderer, "src", getEncodedURL()); } //Component// /** Not allowed. */ public boolean setVisible(boolean visible) { throw new UnsupportedOperationException("style is always invisible"); } /** Not childable. */ protected boolean isChildable() { return false; } /** Returns the encoded URL of the image (never null). */ private String getEncodedURL() { if (_src != null) { final Desktop dt = getDesktop(); if (dt != null) return dt.getExecution().encodeURL(_src); } return ""; } private class EncodedURL implements org.zkoss.zk.au.DeferredValue { public Object getValue() { return getEncodedURL(); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy