package com.wistron.StereoUI;
import java.util.ArrayList;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.widget.AbsoluteLayout;
/**
* Copyright(c)2011 Wistron SWPC ALL rights reserved.
* @datetime: 2011-09-02 15:04:49
* @author :WH1107028
* @purpose:统一管理立体控件的ViewGroup
*
*/
@SuppressWarnings({ "unused", "deprecation" })
public class CSViewGroup extends Object {
protected ArrayList<CSView> m_ctrl_list = null;
private ViewGroup m_layout = null;
boolean state = false;
public CSViewGroup() {
m_ctrl_list = new ArrayList<CSView>();
}
/**
* 添加CSControlBase對象
*
* @param csview
* @return
*/
public boolean add(CSView csview) {
boolean state = false;
if (m_ctrl_list == null) {
return state;
}
state = m_ctrl_list.add(csview);
return state;
}
/**
* 移除控件
*
* @param index
*/
public void remove(int index) {
if (m_ctrl_list == null) {
return;
}
m_ctrl_list.remove(index);
}
/**
* 添加2D控件到ViewGroup
*
* @param layout
*/
public boolean addToLayout(ViewGroup layout) {
//备份layout
m_layout = layout;
//开始遍历layout
if(m_ctrl_list != null || layout != null){
for (CSView ctrl : m_ctrl_list) {
ctrl.addToLayout(layout);
}
state = true;
}else{
state = false;
}
return state;
}
/**
* 分發觸摸事件
*
* @param event
* @return
*/
public boolean dispatchTouchEvent(MotionEvent event) {
boolean stateSum = false;
boolean state = false;
for (CSView ctrl : m_ctrl_list) {
state = ctrl.touchEvent(event);
stateSum |= state;
}
return stateSum;
}
/**
* 更新CSViewGroup
*/
public void invalidate() {
if (m_layout != null) {
m_layout.removeAllViews();
for (CSView ctrl : m_ctrl_list) {
ctrl.addToLayout(m_layout);
}
}
}
/**
* 设置包含在其内部的所有控件的2/3D模式
*/
public void setDimension(boolean is3D){
if(m_ctrl_list != null){
for (CSView ctrl : m_ctrl_list) {
ctrl.setDimension(is3D);
}
}
}
}