⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbview.java

📁 eclipse的hibernate插件,支持eclipse2.*版本
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					loadJDBCDriver(driver);					addNewDriver(dealDataSave.addJDBCDriver(driver));					viewer.refresh(getDataRoot(TreeObject.DRIVERS_NOTE_ITEM));				}							}		};		addDriverAction.setText(res.getString("Tree.View.Action.NewDriver.Name"));		addDriverAction.setToolTipText(res.getString("Tree.View.Action.NewDriver.Tip"));		addDriverAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));					//修改驱动的动作。		editDriverAction = new Action() {			public void run() {				if(selectObject!=null&&selectObject.getObject()!=null){					if(selectObject.getObject() instanceof Driver){						DriverInfoDialog dlg = new DriverInfoDialog(parent.getShell());						Driver driver1 = (Driver)selectObject.getObject();						Driver driver = dlg.open(driver1);//						DBConnection dbConn = connDia.open(dbConn1);						if(driver!=null){							driver1.setDriverName(driver.getDriverName());							if(!DealString.equals(driver1.getJarFileName(),driver.getJarFileName())){								driver1.setJarFileName(driver.getJarFileName());								loadJDBCDriver(driver1);							}							driver1.setDriverClass(driver.getDriverClass());							driver1.setURLPrefix(driver.getURLPrefix());														selectObject.setName(driver.getDriverName());							viewer.refresh(selectObject);							dealDataSave.updateJDBCDriver(driver1);						}					}				}						}		};		editDriverAction.setText(res.getString("Tree.View.Action.EditDriver.Name"));		editDriverAction.setToolTipText(res.getString("Tree.View.Action.EditDriver.Tip"));		editDriverAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));		//删除驱动的动作。		deleteDriverAction = new Action() {			public void run() {				if(selectObject!=null&&selectObject.getObject()!=null){					if(selectObject.getObject() instanceof Driver){						Driver driver = (Driver)selectObject.getObject();						if(driver!=null){							//TO_DO 添加删除数据库连接的事件							if(MessageDialog.openConfirm(parent.getShell(),res.getString("TanghanPlugin.Message.ifDeleteTitle"),res.getString("TanghanPlugin.Message.ifDelete"))){								removeDatabase(selectObject);								dealDataSave.removeJDBCDriver(driver);								viewer.refresh();							}													}					}				}			}		};		deleteDriverAction.setText(res.getString("Tree.View.Action.DeleteDriver.Name"));		deleteDriverAction.setToolTipText(res.getString("Tree.View.Action.DeleteDriver.Tip"));		deleteDriverAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));			}	/**	 * 创建有关数据库连接的Action	 */	private void makeConnectionsActions() {		aboutDialog = new Action() {		public void run() {			(new AboutDialog(parent.getShell())).open();		}	};	aboutDialog.setText(res.getString("Tree.View.Action.About.Name"));	aboutDialog.setToolTipText(res.getString("Tree.View.Action.About.Tip"));	aboutDialog.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().		getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));						//TO DO 添加新的数据库的动作 complete		createConnAction = new Action() {			public void run() {				ConnectionInfoDialog connDia = new ConnectionInfoDialog(parent.getShell());				DBConnection dbConn = null;				if(selectObject!=null&&selectObject.getType()==TreeObject.DRIVER_NOTE_ITEM&&selectObject.getObject()!=null){					Driver driver = (Driver) selectObject.getObject();					dbConn = new DBConnection();					dbConn.setJdbcDriverName(driver.getDriverName());					dbConn.setJdbcDriverClass(driver.getDriverClass());					dbConn.setDatabaseURL(driver.getURLPrefix());				}				dbConn = connDia.open(dbConn,getDriverList());				if(dbConn!=null){					addNewDatabase(dealDataSave.addDBConnectionInfo(dbConn));				}			}		};		createConnAction.setText(res.getString("Tree.View.Action.NewConn.Name"));		createConnAction.setToolTipText(res.getString("Tree.View.Action.NewConn.Tip"));		createConnAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));					//修改数据库信息的事件		editConnInfoAction = new Action() {			public void run() {				if(selectObject!=null&&selectObject.getObject()!=null){					if(selectObject.getObject() instanceof DBConnection){						ConnectionInfoDialog connDia = new ConnectionInfoDialog(parent.getShell());						DBConnection dbConn1 = (DBConnection)selectObject.getObject();						DBConnection dbConn = connDia.open(dbConn1,getDriverList());						if(dbConn!=null){							dbConn1.setConnectionName(dbConn.getConnectionName());							dbConn1.setJdbcDriverClass(dbConn.getJdbcDriverClass());							dbConn1.setJdbcDriverName(dbConn.getJdbcDriverName());							dbConn1.setDatabaseURL(dbConn.getDatabaseURL());							dbConn1.setPassword(dbConn.getPassword());							dbConn1.setUserName(dbConn.getUserName());							selectObject.setName(dbConn.getConnectionName());							viewer.refresh(selectObject);							dealDataSave.updateDBConnectionInfo(dbConn1);						}					}				}			}		};		editConnInfoAction.setText(res.getString("Tree.View.Action.EditConn.Name"));		editConnInfoAction.setToolTipText(res.getString("Tree.View.Action.EditConn.Tip"));		editConnInfoAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));		//删除数据库连接的事件				delConnInfoAction = new Action() {			public void run() {				if(selectObject!=null&&selectObject.getObject()!=null){					if(selectObject.getObject() instanceof DBConnection){						DBConnection dbConn = (DBConnection)selectObject.getObject();						if(dbConn!=null){							//TO_DO 添加删除数据库连接的事件							if(MessageDialog.openConfirm(parent.getShell(),res.getString("TanghanPlugin.Message.ifDeleteTitle"),res.getString("TanghanPlugin.Message.ifDelete"))){								removeDatabase(selectObject);								dealDataSave.removeDBConnectionInfo(dbConn);								viewer.refresh();							}						}					}				}			}		};		delConnInfoAction.setText(res.getString("Tree.View.Action.DeleteConn.Name"));		delConnInfoAction.setToolTipText(res.getString("Tree.View.Action.DeleteConn.Tip"));		delConnInfoAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));				//连接数据库的事件		connectDBAction = new Action() {			public void run() {				if(selectObject!=null&&selectObject.getObject()!=null){					if(selectObject.getObject() instanceof DBConnection){						addDatabaseTables((TreeParent)selectObject);					}				}			}		};				connectDBAction.setText(res.getString("Tree.View.Action.ConnectDatabase"));		connectDBAction.setToolTipText(res.getString("Tree.View.Action.ConnectDatabase"));				//connectDBAction.setImageDescriptor()		connectDBAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));		//断开数据库连接的动作		disconnectDBAction = new Action() {			public void run() {				if(selectObject!=null&&selectObject.getObject()!=null){					if(selectObject.getObject() instanceof DBConnection){						TreeParent trPa = (TreeParent)selectObject;						TreeObject[] trObjs = trPa.getChildren();						for(int i=0;i<trObjs.length;i++){							trPa.removeChild(trObjs[i]);						}						((DBConnection)selectObject.getObject()).setConnected(false);						viewer.refresh(selectObject);					}				}			}		};				disconnectDBAction.setText(res.getString("Tree.View.Action.DisconnectDatabase"));		disconnectDBAction.setToolTipText(res.getString("Tree.View.Action.DisconnectDatabase"));				disconnectDBAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));					viewDataAction = new Action(){			public void run() {				//viewData				ISelection selection = viewer.getSelection();				Object obj = ((IStructuredSelection)selection).getFirstElement();				if(obj instanceof TreeParent){					TreeParent treObj = (TreeParent)obj;					if(treObj.getType()== TreeObject.TABLE_ITEM){						TreeParent conObj = treObj.getParent().getParent();						viewData((DBConnection)conObj.getObject(),((Table)treObj.getObject()).getTableName());					}				}							}		};		viewDataAction.setText(res.getString("Tree.View.Action.ViewData"));		viewDataAction.setToolTipText(res.getString("Tree.View.Action.ViewData"));				viewDataAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));		//鼠标双击事件		doubleClickAction = new Action() {			public void run() {				// TO DO 修改鼠标双击事件 complete				ISelection selection = viewer.getSelection();				Object obj = ((IStructuredSelection)selection).getFirstElement();				if(obj instanceof TreeParent){					TreeParent treObj = (TreeParent)obj;					switch(treObj.getType()){						case TreeObject.TABLE_ITEM:							if(treObj.getChildren().length<1){								addTableFields(treObj);							}							break;						default:							//showMessage("修改"+obj.toString()+"数据库连接信息");							break;					}				}							}		};	}	/**添加数据*/	private void hookViewsListnerAction() {				/**为视图添加双击时间*/		viewer.addDoubleClickListener(new IDoubleClickListener() {			public void doubleClick(DoubleClickEvent event) {				doubleClickAction.run();				//event.			}		});		/**视图被选项转换是触发的事件*/		viewer.addSelectionChangedListener(new ISelectionChangedListener(){			public void selectionChanged(SelectionChangedEvent event){				ISelection selection = viewer.getSelection();				Object obj = ((IStructuredSelection)selection).getFirstElement();				if(obj instanceof TreeObject){					selectObject = (TreeObject)obj;					if(selectObject.getType()==TreeObject.CONNECTION_ITEM){						editConnInfoAction.setEnabled(true);						DBConnection dbConn = (DBConnection)selectObject.getObject();						if(dbConn!=null&&dbConn.isConnected()){							DBDataView ppDataView = (DBDataView)getSite().getPage().findView(ITanghanConstants.DB_DATAS_VIEW_ID);							if(ppDataView!=null){								ppDataView.changeDBConnection(dbConn);							}						}					}else{						editConnInfoAction.setEnabled(false);					}								}else{					selectObject = null;				}								}		});	}	private void showMessage(String message) {		MessageDialog.openInformation(			viewer.getControl().getShell(),			res.getString("DatabaseView.Title"),			message);	}	/**	 * Passing the focus request to the viewer's control.	 */	public void setFocus() {		//this.fullForm.getParent().getC		viewer.getControl().setFocus();	}	/**删除数据联结*/	private void removeDatabase(TreeObject obj){		TreeParent parent = obj.getParent();		obj.setParent(null);		parent.removeChild(obj);	}	/**添加数据库节点*/	private void addNewDatabase(DBConnection dbConn){		TreeParent root = getDataRoot(TreeObject.DATABASE_NOTE_ITEM); 		if(root==null){			return;		}		TreeParent dbItem = new TreeParent(dbConn.getConnectionName(),dbConn,TreeObject.CONNECTION_ITEM);		dbItem.setObject(dbConn);		root.addChild(dbItem);		viewer.refresh(root);	}	/**check JDBC Drivers*/	private void loadJDBCDriver(Driver driver){		tanghanClassLoader.loadJarFile(driver.getJarFileName());		try{			Object cl = Class.forName(driver.getDriverClass(),true, tanghanClassLoader.getClassLoader()).newInstance();			if(cl instanceof java.sql.Driver){				tanghanClassLoader.loadClass(driver.getDriverClass());				driver.setActive(true);			}else{				driver.setActive(false);			}		}catch(Exception ex){			driver.setActive(false);		}	}	/**添加数据库节点*/	private void addNewDriver(Driver driver){		TreeParent root = getDataRoot(TreeObject.DRIVERS_NOTE_ITEM); 		if(root==null){			return;		}		TreeParent driverItem = new TreeParent(driver.getDriverName(),driver,TreeObject.DRIVER_NOTE_ITEM);		driverItem.setObject(driver);		root.addChild(driverItem);		viewer.refresh(root);	}	/**为数据库添加表节点*/	private void addDatabaseTables(TreeParent parent){		DBConnection dbConn = (DBConnection)parent.getObject();		List tableList = null;		try{			AbstractDealDatabaseInfo dealDB = AbstractDealDatabaseInfo.getInstance(ITanghanConstants.DEALDATABASEINFO,dbConn);			List ls = dealDB.getSchemas();			String selectSchema = null;			if(ls!=null&&ls.size()>0){				ConnectDialog connDia = new ConnectDialog(this.parent.getShell());				selectSchema = connDia.open(ls);			}			dbConn.setDefaultSchema(selectSchema);			tableList = dealDB.getTableList();		}catch(TanghanException ex){			ErrorDialog.openError(this.parent.getShell(),res.getString("TanghanPlugin.Run.Error"),res.getString("TanghanPlugin.Error.DB.Connected.Error"),								new Status(IStatus.ERROR,ITanghanConstants.PLUGIN_ID,IStatus.OK,ex.getCauseException().getMessage(),ex.getCauseException()));			return;		}catch(Exception ex){			ErrorDialog.openError(this.parent.getShell(),res.getString("TanghanPlugin.Run.Error"),res.getString("TanghanPlugin.Error.DB.Connected.Error"),							new Status(IStatus.ERROR,ITanghanConstants.PLUGIN_ID,IStatus.OK,ex.getMessage(),ex));			return;		}		dbConn.setConnected(true);						TreeParent tables = new TreeParent(res.getString("Tree.View.Table"),TreeObject.TABLE_NOTE_ITEM);		TreeParent table = null;		for(int i = 0;i<tableList.size();i++){			Table tbInfo= (Table) tableList.get(i);			table = new TreeParent(tbInfo.getTableName(),TreeObject.TABLE_ITEM);			table.setObject(tbInfo);			tables.addChild(table);				}		parent.addChild(tables);		viewer.refresh(parent);	}	/**为表添加该表的字段节点*/	private void addTableFields(TreeParent parent){		Table table = (Table)parent.getObject();		DBConnection dbConn = (DBConnection)parent.getParent().getParent().getObject();				AbstractDealDatabaseInfo dealDB = AbstractDealDatabaseInfo.getInstance(ITanghanConstants.DEALDATABASEINFO,dbConn);		List fieldList = dealDB.getTableField(table.getTableName());		table.setFieldList(fieldList);		TreeParent field = null;		for(int i = 0;i<fieldList.size();i++){			Field fdInfo= (Field) fieldList.get(i);			field = new TreeParent(fdInfo.getFieldName(),TreeObject.TABLEFIELD_ITEM);			field.setObject(fdInfo);			parent.addChild(field);			}		viewer.refresh(parent);	}	/**查看表格数据*/	private void viewData(DBConnection connInfo,String tableName){		try{			DBDataView ppDataView = (DBDataView)TanghanPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("com.tanghan.plugin.dbviews.DBDataView");			Assert.isNotNull(ppDataView);			ppDataView.changeTableData(connInfo,tableName,null);		}catch(PartInitException ex){		}	}				/**	 * 得到数据的相应根目录	 * */	private TreeParent getDataRoot(int type){		ITreeContentProvider content = (ITreeContentProvider)viewer.getContentProvider();		Object[] objs = content.getElements(ResourcesPlugin.getWorkspace());		TreeParent root = null;		for(int i = 0;i<objs.length;i++){			TreeParent tp = (TreeParent)objs[i];			if(tp.getType()==type){				root = tp;				break;			}		} 		return root;		}	/**得到驱动程序的列表*/	private List getDriverList(){		TreeParent parent = getDataRoot(TreeObject.DRIVERS_NOTE_ITEM);		Object[] objs = parent.getChildren();		ArrayList ls = new ArrayList();		for(int i = 0;i<objs.length;i++){			TreeObject tp = (TreeObject)objs[i];			if(tp.getObject()!=null&&(tp.getObject() instanceof Driver)){				ls.add(tp.getObject());			}		} 		return ls;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -