@Override public void widgetSelected(SelectionEvent e) { button.setEnabled(false); UpdateJob complianceStartJob = new UpdateJob("合规开关") { @Override protected Object heavyWork() throws Exception { boolean reverseStatus = getStatus() == false; return setStatus(reverseStatus); } @Override protected void runInUIThread(Object alertInfo) { if (alertInfo != null) { MessageDialog.openWarning( getSite().getShell(), getPartName(), "操作成功\n" + alertInfo); } else { MessageDialog.openInformation(getSite().getShell(), getPartName(), "操作成功"); } } @Override protected void allwaysDo() { button.setEnabled(true); button.setText(getButtonText(getStatus())); label.setText(getLabelText(getStatus())); } }; complianceStartJob.setUser(true); complianceStartJob.schedule(); }