@Override protected void doRun() { selectObj = getSelectedObject().get(0); JobOptionsDialog dialog = new JobOptionsDialog( getShell(), Messages.JobProcesssDialogTiggerTitle_title, Execution.EMBEDDED); dialog.setBlockOnOpen(true); int ret = dialog.open(); if (ret == Dialog.CANCEL) { return; } String jobName = ""; // $NON-NLS-1$ String jobVersion = ""; // $NON-NLS-1$ if (selectObj instanceof IRepositoryViewObject) { jobName = ((IRepositoryViewObject) selectObj).getProperty().getLabel(); jobVersion = ((IRepositoryViewObject) selectObj).getProperty().getVersion(); } // check exist IValidateService validateService = (IValidateService) GlobalServiceRegister.getDefault().getService(IValidateService.class); if (validateService != null) { boolean result = validateService.validateAndAlertObjectExistence( IServerObjectRepositoryType.TYPE_ROUTINGRULE, getNewTriggerName(jobName), null); if (!result) { return; } } // WSRoutingRuleE routingRule = createTrigger(jobName, jobVersion, dialog); // if the new objectect is opened ,than close it before regenerating IRepositoryViewObject toDelete = RepositoryResourceUtil.findViewObjectByName( IServerObjectRepositoryType.TYPE_ROUTINGRULE, PREFIX + jobName); if (toDelete != null) { IEditorPart openedEditor = UIUtil.findOpenedEditor(toDelete); if (openedEditor != null) { UIUtil.closeEditor(openedEditor, false); } // delete directly RepositoryResourceUtil.removeViewObjectPhysically(toDelete, jobVersion); } AttachToTriggerView(jobName, routingRule); }