📄 cmtcomponentimpl.java
字号:
package com.swtdesigner.api.cmt;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.swtdesigner.model.JavaInfo;
import com.swtdesigner.model.swing.JavaBeanInfo;
import com.swtdesigner.model.util.model.IJavaInfoVisitor;
/**
* @author scheglov_ke
*/
public class CmtComponentImpl implements CmtComponent {
private final JavaBeanInfo m_component;
private CmtComponent m_parent;
private CmtComponent m_root;
////////////////////////////////////////////////////////////////////////////
//
// Constructor
//
////////////////////////////////////////////////////////////////////////////
public CmtComponentImpl(JavaBeanInfo component) {
m_component = component;
}
////////////////////////////////////////////////////////////////////////////
//
// CmtComponent implementation
//
////////////////////////////////////////////////////////////////////////////
public String getName() {
return m_component.getVariableName();
}
public Object getLiveInstance() {
return m_component.getBeanObject();
}
public CmtComponent getParent() {
if (m_parent == null) {
if (m_component.getParent() != null) {
JavaBeanInfo parentComponent = (JavaBeanInfo) m_component.getParent();
m_parent = new CmtComponentImpl(parentComponent);
}
}
return m_parent;
}
public CmtComponent getRoot() {
if (m_root == null) {
if (m_component.getRoot() != null) {
JavaBeanInfo rootComponent = (JavaBeanInfo) m_component.getRoot();
m_root = new CmtComponentImpl(rootComponent);
}
}
return m_root;
}
public List getChildren(Class componentClazz) {
final List children = new ArrayList();
for (Iterator I = m_component.getChildren().iterator(); I.hasNext();) {
JavaInfo child = (JavaInfo) I.next();
addFilteredChild(children, child, componentClazz);
}
return children;
}
public List getAllChildren(final Class componentClazz) {
final List children = new ArrayList();
m_component.accept(new IJavaInfoVisitor() {
public boolean visit(JavaInfo info) {
addFilteredChild(children, info, componentClazz);
return true;
}
});
return children;
}
private void addFilteredChild(List children, JavaInfo child, Class componentClazz) {
if (child instanceof JavaBeanInfo) {
JavaBeanInfo component = (JavaBeanInfo) child;
if ((componentClazz == null) || componentClazz.isAssignableFrom(component.getComponentClass())) {
children.add(new CmtComponentImpl(component));
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -