package com.yisin.dbc.form;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import com.yisin.dbc.db.DBHelper;
import com.yisin.dbc.db.DbCache;
import com.yisin.dbc.entity.DbTable;
import com.yisin.dbc.entity.DbTableColumn;
import com.yisin.dbc.entity.MysqlDbColumn;
import com.yisin.dbc.main.CreateThread;
import com.yisin.dbc.util.CommonUtils;
@SuppressWarnings("serial")
public class MainForm extends BasePanel {
private int width = 900;
private int height = 600;
private boolean configInited = false;
private boolean loadding = false;
private static JTree tree_1 = null;
private static JTree tree_2 = null;
private DefaultMutableTreeNode dbNode1;
private DefaultMutableTreeNode dbNode2;
private JScrollPane jScrollPanel_1;
private JScrollPane jScrollPanel_2;
public static Map<String, Vector<Object>> columnMap1 = new HashMap<String, Vector<Object>>();
public static Map<String, Vector<Object>> columnMap2 = new HashMap<String, Vector<Object>>();
public MainForm() {
this.setBackground(Color.white);
this.setLayout(null);
DBHelper.initDbConfig();
initTreeThread(1);
initCompant();
}
public MainForm(int width, int height) {
this.width = width;
this.height = height;
this.setBackground(Color.white);
this.setLayout(null);
DBHelper.initDbConfig();
initTreeThread(1);
initCompant();
}
public List<DbTable> getDbTable(int state) {
List<DbTable> list = DBHelper.getDbTables(state);
return list;
}
public List<?> getTableColumn(String table, int state) {
return DBHelper.getTableColumns(table, state);
}
public Map<String, List<DbTableColumn>> getTableColumn(int state) {
return DBHelper.getMutilTableColumns(state);
}
private JButton seekTableDataBtn1;
private JButton seekTableDataBtn2;
private JButton singleCreateBtn;
private JButton mutilCreateBtn;
private JCheckBox showBox;
private JLabel nameLabel1 = new JLabel("数据库1");
private JLabel nameLabel2 = new JLabel("数据库2");
// 0禁用,1启用, 1查看表数据1, 2查看表数据2, 3对比全部表,4对比选择的表
public int[] btnDisabledState = {0, 0, 0, 0};
private String chooseTable = null;
private int chooseDb = 1;
JFileChooser jfc = new JFileChooser();// 文件选择器
public static List<DbTable> tableDatas1 = new ArrayList<DbTable>();
public static List<DbTable> tableDatas2 = new ArrayList<DbTable>();
public void bakDisabled(){
btnDisabledState[0] = seekTableDataBtn1.isEnabled() ? 1 : 0;
btnDisabledState[1] = seekTableDataBtn2.isEnabled() ? 1 : 0;
btnDisabledState[2] = singleCreateBtn.isEnabled() ? 1 : 0;
btnDisabledState[3] = mutilCreateBtn.isEnabled() ? 1 : 0;
seekTableDataBtn1.setEnabled(false);
seekTableDataBtn2.setEnabled(false);
singleCreateBtn.setEnabled(false);
mutilCreateBtn.setEnabled(false);
}
public void resetDisabled(){
seekTableDataBtn1.setEnabled(btnDisabledState[0] == 1);
seekTableDataBtn2.setEnabled(btnDisabledState[1] == 1);
singleCreateBtn.setEnabled(btnDisabledState[2] == 1);
mutilCreateBtn.setEnabled(btnDisabledState[3] == 1);
}
public void initCompant() {
int left = 200, btnWidth = 95, labelTextHeight = 25, textWidth = 150;
nameLabel1.setBounds(5, 5, textWidth, labelTextHeight);
add(nameLabel1);
nameLabel2.setBounds(535, 5, textWidth, labelTextHeight);
add(nameLabel2);
// 按钮层
seekTableDataBtn1 = new JButton("查看表数据1");
seekTableDataBtn1.setBounds(left, 5, textWidth, labelTextHeight);
add(seekTableDataBtn1);
seekTableDataBtn1.setEnabled(false);
seekTableDataBtn2 = new JButton("查看表数据2");
seekTableDataBtn2.setBounds(530 + left, 5, textWidth, labelTextHeight);
add(seekTableDataBtn2);
seekTableDataBtn2.setEnabled(false);
mutilCreateBtn = new JButton("对比全部表");
mutilCreateBtn.setBounds(366, 120, btnWidth + 60, labelTextHeight);
add(mutilCreateBtn);
singleCreateBtn = new JButton("对比选择的表");
singleCreateBtn.setBounds(366, 180, btnWidth + 60, labelTextHeight);
add(singleCreateBtn);
singleCreateBtn.setEnabled(false);
showBox = new JCheckBox("只显示不一致的结果");
showBox.setBounds(366, 250, btnWidth + 60, labelTextHeight);
add(showBox);
showBox.setSelected(false);
seekTableDataBtn1.addActionListener(new BtnActionListener());
seekTableDataBtn2.addActionListener(new BtnActionListener());
singleCreateBtn.addActionListener(new BtnActionListener());
mutilCreateBtn.addActionListener(new BtnActionListener());
configInited = false;
}
public void initTreeThread(int flag) {
if(loadding){
/*int count = dbNode.getChildCount();
if(count > 0){
}*/
return;
}
new Thread() {
public void run() {
loadding = true;
MainWindow.mainWindow.showProcessPanel();
initTree(1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
initTree(2);
nameLabel1.setText(DBHelper.connName1);
nameLabel2.setText(DBHelper.connName2);
MainWindow.mainWindow.hideProcessPanel();
loadding = false;
}
}.start();
}
public void initTree(int state) {
// 创建没有父节点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。
// public DefaultMutableTreeNode(Object TreeObject)
int tableSize = -1;
DbTable table = null;
DefaultMutableTreeNode node = null;
if(state == 1){
if (jScrollPanel_1 != null) {
jScrollPanel_1.removeAll();
this.remove(jScrollPanel_1);
}
dbNode1 = new DefaultMutableTreeNode(new User(DBHelper.getSchema(state)));
tableDatas1 = getDbTable(state);
if (tableDatas1 != null) {
tableSize = tableDatas1.size();
}
for (int i = 0; i < tableSize; i++) {
table = tableDatas1.get(i);
node = new DefaultMutableTreeNode(new User(table.getTableName()));
dbNode1.add(node);
}
} else {
if (jScrollPanel_2 != null) {
jScrollPanel_2.removeAll();
this.remove(jScrollPanel_2);
}
dbNode2 = new DefaultMutableTreeNode(new User(DBHelper.getSchema(state)));
tableDatas2 = getDbTable(state);
if (tableDatas2 != null) {
tableSize = tableDatas2.size();
}
for (int i = 0; i < tableSize; i++) {
table = tableDatas2.get(i);
node = new DefaultMutableTreeNode(new User(table.getTableName()));
dbNode2.add(node);
}
}
if(state == 1){
tree_1 = new JTree(dbNode1);
tree_1.setName("tree_1");
jScrollPanel_1 = new JScrollPane();
jScrollPanel_1.getViewport().add(tree_1);
jScr
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
DBCompare-master.zip (55个子文件)
DBCompare-master
lib
commons-logging-1.1.jar 52KB
slf4j-api-1.6.1.jar 25KB
beautyeye_lnf.jar 522KB
mysql-connector-java-5.1.18.jar 771KB
slf4j-log4j12-1.6.1.jar 10KB
YsDevKit-1.5.jar 126KB
log4j-1.2.16.jar 470KB
.classpath 747B
.settings
org.eclipse.jdt.core.prefs 598B
org.eclipse.core.resources.prefs 57B
src
dbcompare-cfg.ini 293B
template
table-head.tpl 104B
table-ok.tpl 65B
table-no.tpl 71B
table-tdvalue.tpl 758B
table-trtd.tpl 166B
table.tpl 63B
html.tpl 1KB
table-7td.tpl 447B
43630.gif 71KB
log4j.xml 1KB
com
yisin
dbc
StartApp.java 1KB
entity
CreAttr.java 12KB
MysqlDbColumn.java 6KB
DbTableColumn.java 69B
DbTable.java 2KB
main
CreateResult.java 417B
CreateThread.java 12KB
util
Utililies.java 13KB
ListUtil.java 2KB
DateUtil.java 12KB
IniReader.java 6KB
CommonUtils.java 25KB
Constants.java 17KB
Consts.java 2KB
SQLFormatter.java 12KB
Test.java 611B
FileUtils.java 3KB
form
DatabaseSetting.java 7KB
TableDataPanel.java 7KB
ProcessPanel.java 3KB
MainForm.java 27KB
OracleSetPanel.java 861B
MainWindow.java 7KB
AboutForm.java 1KB
MySqlSetPanel.java 14KB
BasePanel.java 1KB
SqlServerSetPanel.java 870B
db
DBConnection.java 4KB
DBHelper.java 11KB
DbCache.java 632B
MANIFEST.MF 280B
LICENSE 1KB
.project 385B
.gitignore 6B
共 55 条
- 1
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功