📄 dbdataview.java
字号:
//viewer.getControl().setMenu(menu); sqlText.setMenu(menu); } private void hookContextMenu() { MenuManager menuMgr = new MenuManager("#PopupMenu"); menuMgr.setRemoveAllWhenShown(true); menuMgr.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { DBDataView.this.fillContextMenu(manager); } }); Menu menu = menuMgr.createContextMenu(viewer.getControl()); viewer.getControl().setMenu(menu); getSite().registerContextMenu(menuMgr, viewer); } private void contributeToActionBars() { IActionBars bars = getViewSite().getActionBars(); fillLocalPullDown(bars.getMenuManager()); fillLocalToolBar(bars.getToolBarManager()); } /**下拉菜单*/ private void fillLocalPullDown(IMenuManager manager) { manager.add(firstPageAction); manager.add(prePageAction); manager.add(nextPageAction); manager.add(endPageAction); manager.add(new Separator("Additions")); manager.add(hideSqlTextAction); } private void fillContextMenu(IMenuManager manager) { manager.add(firstPageAction); manager.add(prePageAction); manager.add(nextPageAction); manager.add(endPageAction); // Other plug-ins can contribute there actions here manager.add(new Separator("Additions")); } private void fillLocalToolBar(IToolBarManager manager) { manager.add(firstPageAction); manager.add(prePageAction); manager.add(nextPageAction); manager.add(endPageAction); manager.add(new Separator("Additions")); manager.add(hideSqlTextAction); manager.add(new Separator("Additions")); //manager.add(exceteSqlAction); //manager.add(new Separator("Additions")); } private void makeActions() { //浏览第一页的事件 firstPageAction = new Action() { public void run() { pageList.setCurrentPage(1); changeTableData(); } }; firstPageAction.setText(res.getString("DatabaseView.FirstPage")); firstPageAction.setToolTipText(res.getString("DatabaseView.FirstPage")); firstPageAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK)); //浏览上一页的事件 prePageAction = new Action() { public void run() { pageList.setCurrentPage(pageList.getCurrentPage()-1); changeTableData(); //showMessage("Goto the next Page"); } }; prePageAction.setText(res.getString("DatabaseView.PrePage")); prePageAction.setToolTipText(res.getString("DatabaseView.PrePage")); prePageAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK)); //浏览下一页的事件 nextPageAction = new Action() { public void run() { pageList.setCurrentPage(pageList.getCurrentPage()+1); changeTableData(); } }; nextPageAction.setText(res.getString("DatabaseView.NextPage")); nextPageAction.setToolTipText(res.getString("DatabaseView.NextPage")); nextPageAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK)); //浏览下一页的事件 endPageAction = new Action() { public void run() { pageList.setCurrentPage(pageList.getTotalPage()); changeTableData(); } }; endPageAction.setText(res.getString("DatabaseView.EndPage")); endPageAction.setToolTipText(res.getString("DatabaseView.EndPage")); endPageAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK)); //隐藏/显示输入筐的事件 hideSqlTextAction = new Action() { public void run() { //TO DO ddd if(hideSqlText){ fullForm.setWeights(new int[] {20, 80}); hideSqlTextAction.setText(res.getString("DatabaseView.SQLText.Hide")); hideSqlTextAction.setToolTipText(res.getString("DatabaseView.SQLText.Hide")); }else{ fullForm.setWeights(new int[] {0, 80}); hideSqlTextAction.setText(res.getString("DatabaseView.SQLText.Show")); hideSqlTextAction.setToolTipText(res.getString("DatabaseView.SQLText.Show")); } hideSqlText = !hideSqlText; } }; hideSqlText = false; hideSqlTextAction.setText(res.getString("DatabaseView.SQLText.Hide")); hideSqlTextAction.setToolTipText(res.getString("DatabaseView.SQLText.Hide")); hideSqlTextAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK)); //执行SQL语句的Action exceteSqlAction = new Action() { public void run() { //TO DO 执行SQL语句的Action executSQL(); } }; exceteSqlAction.setText(res.getString("DatabaseView.SQL.Execute")); exceteSqlAction.setToolTipText(res.getString("DatabaseView.SQL.Execute")); exceteSqlAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK)); //鼠标双击事件 doubleClickAction = new Action() { public void run() {// ISelection selection = viewer.getSelection();// Object obj = ((IStructuredSelection)selection).getFirstElement();// showMessage("Double-click detected on "+obj.toString()); } }; } private void hookDoubleClickAction() { viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { doubleClickAction.run(); } }); } 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() { viewer.getControl().setFocus(); } /** * @return */ protected List getDataList() { return dataList; } protected void executSQL(){ //TO DO executge SQL //changDatas(); String sql = ""; if(!DealString.equalsIgnoreCase(sqlText.getText(),"")){ sql = DealString.trim(sqlText.getText()); }else{ MessageDialog.openError(this.parent.getShell(),res.getString("TanghanPlugin.ExecuteSQL.Error"),res.getString("TanghanPlugin.ExecuteSQL.MissSQL")); return; } if(dbConn != null){ AbstractDealDatabaseInfo dealTable = AbstractDealDatabaseInfo.getInstance(ITanghanConstants.DEALDATABASEINFO,dbConn); try{ SQLResult sqlRes = dealTable.executeSQL(sql); switch(sqlRes.getResultType()){ case SQLResult.COUNT: MessageDialog.openInformation(this.parent.getShell(),res.getString("TanghanPlugin.ExecuteSQL.Result"),sqlRes.getCount()+res.getString("TanghanPlugin.ExecuteSQL.UpdateCount")); break; case SQLResult.LIST: changDatas(sqlRes.getList()); firstPageAction.setEnabled(false); prePageAction.setEnabled(false); nextPageAction.setEnabled(false); endPageAction.setEnabled(false); break; default: break; } }catch(TanghanException ex){ ErrorDialog.openError(this.parent.getShell(),res.getString("TanghanPlugin.ExecuteSQL.Error"),res.getString("TanghanPlugin.ExecuteSQL.Error"), new Status(IStatus.ERROR,ITanghanConstants.PLUGIN_ID,IStatus.OK,ex.getCauseException().getMessage(),ex.getCauseException())); }catch(Exception ex){ ErrorDialog.openError(this.parent.getShell(),res.getString("TanghanPlugin.ExecuteSQL.Error"),res.getString("TanghanPlugin.ExecuteSQL.Error"), new Status(IStatus.ERROR,ITanghanConstants.PLUGIN_ID,IStatus.OK,ex.getMessage(),ex)); } return; }else{ MessageDialog.openError(this.parent.getShell(),res.getString("TanghanPlugin.ExecuteSQL.Error"),res.getString("TanghanPlugin.ExecuteSQL.MissConnectionInfo")); return; } } /** * @param list 新的列表数据 */ protected void setDataList(List list) { Assert.isNotNull(list); dataList = list; if(list.size()<2){ dataIndexs = EmptyDataIndexs; }else{ dataIndexs = new Integer[dataList.size()-1]; for(int i=1;i<dataList.size();i++){ dataIndexs[i-1] = new Integer(i); } } } /**更新列表数据,并更新显示 * @param list 新的列表数据 * */ public void changDatas(List list){ setDataList(list); clearDatas(); createColumns(); viewer.refresh(); } /**更新列表数据,并更新显示 * @param datas 新的列表数据 * */ public void changDatas(String[][] datas){ int ll = datas[0].length; int ww = datas.length; ArrayList arrayls = new ArrayList(ll+1); for (int w = 0; w < ll; w++) { String[] strs = new String[ww]; for (int i = 0; i < ww; i++) { strs[i] = DealString.trim(datas[i][w]); } arrayls.add(strs); } changDatas(arrayls); } /**修改当前连接信息*/ public void changeDBConnection(DBConnection connInfo){ Assert.isNotNull(connInfo); this.setTitle(connInfo.getConnectionName()); dbConn = connInfo; this.tableName = ""; clearDatas(); } /**修改显示的数据*/ public void changeTableData( DBConnection connInfo, String tableName, PageList pl) { Assert.isNotNull(connInfo); //Assert.isTrue(!DealString.equals(tableName,"")); changeDBConnection(connInfo); this.tableName = tableName; if (pl == null) { //TO DO 添加分页显示的条件 //pl = new PageList(1, 11); pl = TanghanPlugin.getDefault().getDefaultPageList(); pl.setCurrentPage(1); } pageList = pl; changeTableData(); /* DealDatabaseInfo dealTable = DealDatabaseInfo.getInstance("standard",dbConn); String[][] dataStrs = dealTable.getNotes(tableName, pageList); //1,20); if (dataStrs == null) return; changDatas(dataStrs); changActionStatus();*/ } /**修改显示的数据*/ protected void changeTableData(){ Assert.isNotNull(dbConn); AbstractDealDatabaseInfo dealTable = AbstractDealDatabaseInfo.getInstance(ITanghanConstants.DEALDATABASEINFO,dbConn); String[][] dataStrs = dealTable.getNotes(tableName, pageList); //1,20); if (dataStrs == null) return; changDatas(dataStrs); changActionStatus(); } private void changActionStatus(){ if(pageList!=null&&(!pageList.isShowAll())){ if(pageList.getCurrentPage()<2){ firstPageAction.setEnabled(false); prePageAction.setEnabled(false); }else{ firstPageAction.setEnabled(true); prePageAction.setEnabled(true); } if(pageList.getCurrentPage()<pageList.getTotalPage()){ nextPageAction.setEnabled(true); endPageAction.setEnabled(true); }else{ nextPageAction.setEnabled(false); endPageAction.setEnabled(false); } }else{ firstPageAction.setEnabled(false); prePageAction.setEnabled(false); nextPageAction.setEnabled(false); endPageAction.setEnabled(false); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -