private void setContent() { CatFormInit init = new CatFormInit(cfg); Label lblName = init.lblName(this); txtName = init.txtName(this, lblName); Label lblAbbrev = init.lblAbbrev(this, lblName); txtAbbrev = init.txtAbbrev(this, lblAbbrev); virtCheck = init.virtCheck(this, txtAbbrev); Label lblRate = init.lblRate(this, lblAbbrev); Composite tableContainer = new Composite(this, SWT.SHADOW_ETCHED_IN); rateViewer = init.catRateViewer(tableContainer, getShell(), contentProvider); init.tableContainer(lblRate, tableContainer); tblRate = rateViewer.getTable(); addBtn = init.addBtn(this, lblRate, tableContainer); delBtn = init.delBtn(this, lblRate, tableContainer); Label lblComment = init.lblComment(this, tableContainer); txtComment = init.txtComment(this, lblComment); txtName.addFocusListener(new RefreshFocusLsnr()); txtAbbrev.addFocusListener(new RefreshFocusLsnr()); txtComment.addFocusListener(new RefreshFocusLsnr()); virtCheck.addListener( SWT.Selection, new Listener() { public void handleEvent(Event event) { tblRate.setEnabled(!virtCheck.getSelection()); addBtn.setEnabled(!virtCheck.getSelection()); delBtn.setEnabled(!virtCheck.getSelection()); refreshListener.refresh(); // освежим данные в дереве и в базе } }); addBtn.addListener( SWT.Selection, new Listener() { public void handleEvent(Event event) { contentProvider.append(); rateViewer.refresh(); } }); delBtn.addListener( SWT.Selection, new Listener() { public void handleEvent(Event event) { int selIdx = rateViewer.getTable().getSelectionIndex(); if (selIdx >= 0) { contentProvider.deleteAt(selIdx); } rateViewer.refresh(); Table table = rateViewer.getTable(); int lastPos = table.getItemCount() - 1; table.setSelection(lastPos); } }); }