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

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

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

	Purpose:
		
	Description:
		
	History:
		Jul 25, 2008 5:15:48 PM , Created by jumperchen

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

{{IS_RIGHT
	This program is distributed under LGPL Version 2.1 in the hope that
	it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zul;

import org.zkoss.lang.Objects;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.UiException;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.OpenEvent;
import org.zkoss.zul.impl.XulElement;

/**
 * The detail component is used to display a detailed section where a master row and 
 * multiple detail rows are on the same row.
 * 

Available in ZK PE and ZK EE. *

Event: *

    *
  1. onOpen is sent when this component is opened or closed by user.
  2. *
*

* *

Default {@link #getZclass}: z-detail. * *

Default {@link #getWidth}: 18px. It depends on the width of the icon of * the detail. * * @author jumperchen * @since 3.5.0 */ public class Detail extends XulElement { private boolean _open; /** The style used for the content block. */ private String _cntStyle; /** The style class used for the content block. */ private String _cntscls; static { addClientEvent(Detail.class, Events.ON_OPEN, CE_IMPORTANT); } /** * Returns the CSS style for the content block of the window. */ public String getContentStyle() { return _cntStyle; } /** * Sets the CSS style for the content block of the window. * *

Default: null. */ public void setContentStyle(String style) { if (!Objects.equals(_cntStyle, style)) { _cntStyle = style; smartUpdate("contentStyle", getContentStyle()); } } /** * Returns the style class used for the content block. */ public String getContentSclass() { return _cntscls; } /** * Sets the style class used for the content block. */ public void setContentSclass(String scls) { if (!Objects.equals(_cntscls, scls)) { _cntscls = scls; smartUpdate("contentSclass", _cntscls); } } /** * Sets whether the detail is open. */ public void setOpen(boolean open) { if (_open != open) { _open = open; smartUpdate("open", _open); } } /** * Returns whether the detail is open. */ public boolean isOpen() { return _open; } //-- Component --// public String getZclass() { return _zclass == null ? "z-detail" : _zclass; } // super protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws java.io.IOException { super.renderProperties(renderer); render(renderer, "open", this.isOpen()); render(renderer, "contentSclass", this.getContentSclass()); render(renderer, "contentStyle", this.getContentStyle()); } public void beforeParentChanged(Component parent) { if (parent != null && !(parent instanceof Row)) throw new UiException("Unsupported parent for detail: " + parent); super.beforeParentChanged(parent); } //-- ComponentCtrl --// /** Processes an AU request. * *

Default: in addition to what are handled by {@link XulElement#service}, * it also handles onOpen. * @since 5.0.0 */ public void service(org.zkoss.zk.au.AuRequest request, boolean everError) { final String cmd = request.getCommand(); if (cmd.equals(Events.ON_OPEN)) { OpenEvent evt = OpenEvent.getOpenEvent(request); _open = evt.isOpen(); Events.postEvent(evt); } else super.service(request, everError); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy