/*
* Copyright 2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.sf.jsfcomp.chartcreator.component;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
/**
* @author Cagatay Civici (latest modification by $Author: cagatay_civici $)
* @version $Revision: 744 $ $Date: 2007-05-08 10:10:00 +0300 (Tue, 08 May 2007) $
*
* Core component representing a chart axis
*/
public class UIChartAxis extends UIComponentBase {
public static final String COMPONENT_TYPE = "net.sf.jsfcomp.chartcreator.UIChartAxis";
public static final String COMPONENT_FAMILY = "net.sf.jsfcomp.chartcreator";
private Object datasource;
private String label;
private Boolean domain;
private String type;
private String format;
private String colors;
private Boolean verticalTickLabels;
private Float tickLabelFontSize;
private Boolean tickLabels;
private Boolean tickMarks;
public UIChartAxis() {
super();
setRendererType(null);
}
public String getFamily() {
return COMPONENT_FAMILY;
}
/**
* Colors attributes for bar charts
*/
public String getColors() {
if(colors != null)
return colors;
ValueBinding vb = getValueBinding("colors");
String v = vb != null ? (String)vb.getValue(getFacesContext()) : null;
return v != null ? v: null;
}
public void setColors(String colors) {
this.colors = colors;
}
/**
* DataSource attribute
*/
public Object getDatasource() {
if(datasource != null)
return datasource;
ValueBinding vb = getValueBinding("datasource");
Object v = vb != null ? vb.getValue(getFacesContext()) : null;
return v != null ? v: null;
}
public void setDatasource(Object datasource) {
this.datasource = datasource;
}
/**
* Y-axis attribute
*/
public String getLabel() {
if(label != null)
return label;
ValueBinding vb = getValueBinding("label");
String v = vb != null ? (String)vb.getValue(getFacesContext()) : null;
return v != null ? v: null;
}
public void setLabel(String label) {
this.label = label;
}
public boolean getDomain() {
if(domain != null)
return domain.booleanValue();
ValueBinding vb = getValueBinding("domain");
Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
return v != null ? v.booleanValue(): false;
}
public void setDomain(boolean domain) {
this.domain = Boolean.valueOf(domain);
}
public String getFormat() {
if(format != null)
return format;
ValueBinding vb = getValueBinding("format");
String v = vb != null ? (String)vb.getValue(getFacesContext()) : null;
return v != null ? v: null;
}
public void setFormat(String format) {
this.format = format;
}
public String getType() {
if(type != null)
return type;
ValueBinding vb = getValueBinding("type");
String v = vb != null ? (String)vb.getValue(getFacesContext()) : null;
return v != null ? v: "number";
}
public void setType(String type) {
this.type = type;
}
public boolean getVerticalTickLabels() {
if(verticalTickLabels != null)
return verticalTickLabels.booleanValue();
ValueBinding vb = getValueBinding("verticalTickLabels");
Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
return v != null ? v.booleanValue(): false;
}
public void setVerticalTickLabels(boolean verticalTickLabels) {
this.verticalTickLabels = Boolean.valueOf(verticalTickLabels);
}
/**
* @return the tickLabelFontSize
*/
public float getTickLabelFontSize() {
if(tickLabelFontSize != null)
return tickLabelFontSize.floatValue();
ValueBinding vb = getValueBinding("tickLabelFontSize");
Float v = vb != null ? (Float)vb.getValue(getFacesContext()) : null;
return v != null ? v.floatValue(): 0;
}
/**
* @param tickLabelFontSize the tickLabelFontSize to set
*/
public void setTickLabelFontSize(float tickLabelFontSize) {
this.tickLabelFontSize = new Float(tickLabelFontSize);
}
public boolean getTickLabels() {
if(tickLabels != null)
return tickLabels.booleanValue();
ValueBinding vb = getValueBinding("tickLabels");
Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
return v != null ? v.booleanValue(): true;
}
public void setTickLabels(boolean tickLabels) {
this.tickLabels = Boolean.valueOf(tickLabels);
}
public boolean getTickMarks() {
if(tickMarks != null)
return tickMarks.booleanValue();
ValueBinding vb = getValueBinding("tickMarks");
Boolean v = vb != null ? (Boolean)vb.getValue(getFacesContext()) : null;
return v != null ? v.booleanValue(): true;
}
public void setTickMarks(boolean tickMarks) {
this.tickMarks = Boolean.valueOf(tickMarks);
}
public Object saveState(FacesContext context) {
Object values[] = new Object[26];
values[0] = super.saveState(context);
values[1] = datasource;
values[2] = label;
values[3] = colors;
values[4] = domain;
values[5] = type;
values[6] = format;
values[7] = tickLabelFontSize;
values[8] = verticalTickLabels;
values[9] = tickLabels;
values[10] = tickMarks;
return values;
}
public void restoreState(FacesContext context, Object state) {
Object values[] = (Object[]) state;
super.restoreState(context, values[0]);
this.datasource = values [1];
this.label = (String) values[2];
this.colors = (String) values[3];
this.domain = (Boolean) values[4];
this.type = (String) values[5];
this.format = (String) values[6];
this.tickLabelFontSize = (Float) values[7];
this.verticalTickLabels = (Boolean) values[8];
this.tickLabels = (Boolean) values[9];
this.tickMarks = (Boolean) values[10];
}
}