Vaadin的組件注射器,瞎寫,隨便看
来源:互联网 发布:python字符串截取 编辑:程序博客网 时间:2024/04/27 22:38
TableInjector類
package com.arlen.injectors;
import org.apache.log4j.Logger;
import com.arlen.tableset.TableSet;
import com.vaadin.ui.Table;
import com.vaadin.ui.Component;
public class TableInjectorimplements IFContainerInjector<Table>{
privatestaticfinallongserialVersionUID = -1537743412190976017L;
private TableSetbean;
private Stringid;
private Loggerlogger = Logger.getLogger(TableInjector.class);
@Override
public Table injectIntoComponent(Component component) {
Table table = null;
if(Table.class.isInstance(component)){
table = (Table)component;
int Ccount =bean.getColumnNum();
if(Ccount>0){
Object[] labels=bean.getColumnNames();
for(int i=0;i<Ccount;i++)
table.addContainerProperty(labels[i].toString(), String.class,null);
if(bean.first()){
bean.next();
for(int i = 0;bean.hasNext();i++){
table.addItem(bean.nextRow().toArray(),new Integer(i));
}
}
}
else{
logger.error("No data related to this table!");
}
}
else{
logger.error("Failed to initialize the page component due to wrong parameter!");
}
return table;
}
@Override
publicvoid setID(String id) {
this.id=id;
}
@Override
public String getID() {
returnid;
}
public TableSet getBean() {
returnbean;
}
publicvoid setBean(TableSet bean) {
this.bean = bean;
}
}
package com.arlen.injectors;
import java.io.Serializable;
import com.vaadin.ui.Component;
public interface IFContainerInjector<T> extends Serializable{
public String getID();
public void setID(String dataSetName);
public T injectIntoComponent(Component component);
}
TableSet
package com.arlen.tableset;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.log4j.Logger;
import com.arlen.dbUtil.DataOp;
public class TableSet {
private ArrayList<Row> rows = new ArrayList<Row>();
private String tableName;
private int rowNum=0;
private int columnNum=0;
private int currentRow=0;
private Logger logger = Logger.getLogger(TableSet.class);
public TableSet(){}
public TableSet(String tableName){
init(tableName,null);
}
private void init(String tableName,String condition){
ResultSet rsRows=null;
ResultSet rsColumns=null;
DataOp dataOp=null;
int currentNum = 1;
ArrayList<String> tempRow = new ArrayList<String>();
this.tableName = tableName;
try{
dataOp = new DataOp();
ArrayList<String> columnNames = new ArrayList<String>();
rsColumns= dataOp.executeSQL("select name from syscolumns where id=object_id('"+tableName+"')");
StringBuffer sb = new StringBuffer("SELECT ");
if(rsColumns!=null&&rsColumns.next()){
while(true){
columnNames.add(rsColumns.getString(1));
sb.append(rsColumns.getString(1));
if(!rsColumns.next())
break;
else
sb.append(",");
}
sb.append(" FROM ").append(tableName);
if(condition!=null){
sb.append(" WHERE ").append(condition);
}
rsRows = dataOp.executeSQL(sb.toString());
this.columnNum = columnNames.size();
rows.add(new Row(0,columnNames));
if(rsRows!=null){
while(rsRows.next()){
for(int i=1;i<=columnNum;i++){
if(rsRows.getObject(i)!=null)
tempRow.add(rsRows.getObject(i).toString());
else
tempRow.add(" ");
}
rows.add(new Row(currentNum,tempRow));
tempRow=new ArrayList<String>();
rowNum = rows.size();
currentNum++;
}
}
tempRow=null;
}
else{
logger.debug("No such table :"+tableName+"existed in database ,please check...");
}
}
catch(SQLException e){
e.printStackTrace();
}
finally{
try {
dataOp.close();
if(rsColumns!=null){
rsColumns.close();
}
if(rsRows!=null){
rsRows.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public boolean hasNext(){
if(rows!=null&&rows.size()>0){
return currentRow>=rowNum?false:true;
}
else
return false;
}
public void next(){
currentRow++;
}
public ArrayList<String> nextRow(){
return rows.get(currentRow++).getRow();
}
public int getRowNum() {
return rowNum;
}
public int getColumnNum() {
return columnNum;
}
public String getString(int index){
return rows.get(currentRow).getRow().get(index);
}
public String getString(String columnName){
int index =rows.get(0).getRow().indexOf(columnName.trim());
return getString(index);
}
public boolean first(){
if(rows!=null&&rows.size()>0){
currentRow = 0;
return true;
}
else
return false;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public Object[] getColumnNames(){
return rows.get(0).getRow().toArray();
}
}
/**
* Private class for row
* @author Arlen_Li
*
*/
class Row{
private int rownum=0;
private ArrayList<String> contents=new ArrayList<String>();
public Row(){}
public Row(int currentRow,ArrayList<String> contents){
if(contents!=null&&contents.size()>0){
rownum = currentRow;
this.contents=contents;
}
}
public ArrayList<String> getRow(){
if(contents!=null&&contents.size()>0){
return contents;
}
else
return null;
}
public String toString(){
StringBuffer sb = new StringBuffer("Column");
sb.append(rownum).append(":");
if(contents!=null&&contents.size()>0){
Iterator<String> it = contents.iterator();
while(it.hasNext()){
sb.append(it.next()).append(" ");
}
}
return sb.toString();
}
}
- Vaadin的組件注射器,瞎寫,隨便看
- 注射器,救命的注射器
- Vaadin
- spring+vaadin的一个记录
- vaadin的spring 整合的例子
- vaadin与grails的集成应用开发
- Vaadin 的基本概况和基础开发
- Vaadin 的体系结构和功能扩展
- 新建Vaadin web项目时的问题
- vaadin 显示table组件的全部项目
- 研究一下vaadin的valo这个theme
- Vaadin 的基本概况和基础开发
- 这才叫“扎心了老铁”!有种急救,真的会拿注射器扎你心脏!
- iOS Injection II 注射器
- Vaadin Web应用开发教程(5):Vaadin Web应用的基本组成部分
- vaadin控件table的使用之隐藏表格头
- vaadin之Servlet 与 URL 模式的映射
- Vaadin开发中charts插件的安装、配置和使用
- android pull 创建xml文件
- 【RedHat】Redhat如何查看和修改IP地址
- 第5章 表达式
- Linux之父Linus Torvalds:C++一无是处
- 【RedHat】RHEL5.3-FTP—vsftpd服务安装和配置
- Vaadin的組件注射器,瞎寫,隨便看
- SSH的一些安全设置,用于Scientific Linux6.1
- 经过15年的练习
- ttyLinux 源代码编译--armv5交叉编译环境的建立过程
- 堆和栈的区别
- 北京DNS 列表
- C# 监控U盘插入与拔出
- 设置 Maven 忽略 Test
- VNC简介