/**
* Copyright (c) 2011-2014, OpenIoT
*
* This file is part of OpenIoT.
*
* OpenIoT is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* OpenIoT is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenIoT. If not, see <http://www.gnu.org/licenses/>.
*
* Contact: OpenIoT mailto: info@openiot.eu
* @author Ali Salehi
*/
package org.openiot.gsn.others.visualization.svg;
public interface SVGElement {
/**
* Draws the SVG tags of this SVGElement and its children on the specified
* input.
*
* @param input The SVG tags will be written on the input.
*/
public void drawOn ( StringBuilder input );
/**
* Gets the name of this SVGElement. The name is typically the toString of
* the internal Object.
*
* @return Null if the internal object is null or toString() method of the
* internal object returns null.
*/
public String getName ( );
/**
* Gets the Opacity value.
*
* @return
*/
public double getOpaqeAlpha ( );
/**
* Sets the opactiy of the SVGElement. Typically the valus is 1. This can be
* used to generate nice looking graphic effects.
*
* @param value
*/
public void setOpacity ( double value );
/**
* Sets the URL link associated with the SVG Element.
*
* @param link
*/
public void setLink ( String link );
/**
* Sets the internal object inside the SVGElement
*
* @param o
*/
public void setObject ( Object o );
/**
* Gets the internal object inside the SVGElement
*
* @return
*/
public Object getObject ( );
/**
* If a SVGElement is disable, it will not be used. Set the value for enable
* field.
*
* @param enable
*/
public void setEnable ( boolean enable );
public boolean isEnable ( );
}