public void run() { Job job = createJob(); job.setUser(true); job.setProperty( IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_PSEARCH_OBJ.createImage()); job.schedule(); }
@Override public Object execute(ExecutionEvent event) throws ExecutionException { Job job = new Job(getJobName()) { @Override protected IStatus run(IProgressMonitor monitor) { int i = 0; while (i < MAX_ATTEMPTS) { refreshAll(monitor); cleanAll(monitor); List<IMarker> errorMarkers = getErrorMarkers(); if (errorMarkers.isEmpty()) { buildAll(monitor); return Status.OK_STATUS; } boolean hasOtherProblems = wsHasProblemsThatCantBeSolvedByCleanRefresh(errorMarkers); if (hasOtherProblems) { return new Status( IStatus.ERROR, Activator.PLUGIN_ID, "Workspace has problems that can't be solved by clean-refresh", null); } monitor.worked(1); i++; } return new Status( IStatus.ERROR, Activator.PLUGIN_ID, "Workspace problems were not resolved within " + MAX_ATTEMPTS + " clean-refresh attempts", null); } }; job.setUser(true); job.setProperty(IProgressConstants2.SHOW_IN_TASKBAR_ICON_PROPERTY, Boolean.TRUE); job.schedule(); return "Done"; }
/** {@inheritDoc} */ @Override public Object execute(final ExecutionEvent event) throws ExecutionException { final StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event); if (selection.isEmpty()) { return null; } final int size = selection.size(); MessageBox confirmDelete = new MessageBox(HandlerUtil.getActiveShell(event), SWT.OK | SWT.CANCEL | SWT.ICON_QUESTION); confirmDelete.setText("Confirm Delete"); confirmDelete.setMessage( "Are you sure you want to delete the " + size + " selected environment" + ((size > 1) ? "s" : "") + "?"); boolean confirmed = SWT.OK == confirmDelete.open(); if (confirmed) { Job deleteEnvironmentsJob = new Job("Delete Environment(s) Job") { @Override protected IStatus run(IProgressMonitor monitor) { List<Status> statuses = new ArrayList<>(); for (Iterator<?> it = selection.iterator(); it.hasNext(); ) { Object selected = it.next(); if (selected instanceof IEnvironmentProvider) { CmrRepositoryDefinition repositoryDefinition = ((IEnvironmentProvider) selected).getCmrRepositoryDefinition(); Environment environment = ((IEnvironmentProvider) selected).getEnvironment(); try { if (repositoryDefinition.getOnlineStatus() != OnlineStatus.OFFLINE) { repositoryDefinition .getConfigurationInterfaceService() .deleteEnvironment(environment); InspectIT.getDefault() .getInspectITConfigurationInterfaceManager() .environmentDeleted(environment, repositoryDefinition); } } catch (BusinessException e) { statuses.add( new Status( IStatus.ERROR, InspectIT.ID, "Error deleting environment " + environment.getName() + " from the CMR.", e)); } } } if (CollectionUtils.isNotEmpty(statuses)) { if (1 == statuses.size()) { return statuses.iterator().next(); } else { return new MultiStatus( InspectIT.ID, IStatus.OK, statuses.toArray(new Status[statuses.size()]), "Delete of several environments failed.", null); } } else { return Status.OK_STATUS; } } }; deleteEnvironmentsJob.setUser(true); deleteEnvironmentsJob.setProperty( IProgressConstants.ICON_PROPERTY, InspectIT.getDefault().getImageDescriptor(InspectITImages.IMG_BLOCK)); deleteEnvironmentsJob.schedule(); } return null; }
private void internalExecute(final Resource resource, final Shell shell) { if (resource != null) { final JdbcSource source = JdbcUtil.findJdbcSource(resource); if (source != null) { final List emfTables = RelationalUtil.findTables(resource); final Map tblStats = createTableInfos(emfTables); if (tblStats != null && tblStats.size() > 0) { CostAnalysisDialog dialog = new CostAnalysisDialog( shell, InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.taskDescription"), //$NON-NLS-1$ InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.passwordPrompt", new Object[] {source.getUrl(), source.getUsername()}), null, null); //$NON-NLS-1$ dialog.open(); final String password = dialog.getValue(); if (password != null) { final Job job = new Job( InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.jobDescription")) { //$NON-NLS-1$ @Override protected IStatus run(IProgressMonitor monitor) { try { monitor.beginTask( InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.taskDescription"), calculateNumberOfWorkIncrements(tblStats.values())); // $NON-NLS-1$ CostAnalyzer costAnalyzer = CostAnalyzerFactory.getCostAnalyzerFactory() .getCostAnalyzer(source, password); // log output to standard out // costAnalyzer.setOutputStream(System.out); costAnalyzer.collectStatistics(tblStats, monitor); if (!monitor.isCanceled()) { populateEmfColumnStatistics(emfTables, tblStats); } monitor.done(); if (monitor.isCanceled()) { return Status.CANCEL_STATUS; } return new Status( IStatus.OK, ModelerJdbcUiConstants.PLUGIN_ID, IStatus.OK, InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.statusFinished", emfTables.size()), null); //$NON-NLS-1$ } catch (Exception e) { InternalModelerJdbcUiPluginConstants.Util.log(e); return new Status( IStatus.ERROR, ModelerJdbcUiConstants.PLUGIN_ID, IStatus.ERROR, InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.errorMessage"), e); //$NON-NLS-1$ } finally { } } }; job.setSystem(false); job.setUser(true); job.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean.TRUE); // start as soon as possible job.schedule(); } } else { MessageDialog.openInformation( shell, InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.taskDescription"), InternalModelerJdbcUiPluginConstants.Util.getString( "CostAnalysisAction.noValidTablesMessage")); //$NON-NLS-1$ //$NON-NLS-2$ } } } }
/** Create the update job that handles the updatesInfo. */ private void createUpdateJob() { updateJob = new WorkbenchJob(ProgressMessages.ProgressContentProvider_UpdateProgressJob) { @Override public IStatus runInUIThread(IProgressMonitor monitor) { synchronized (updateScheduled) { // updates requested while we are running should cause it to // be rescheduled updateScheduled.value = false; } // Abort the job if there isn't anything if (collectors.length == 0) { return Status.CANCEL_STATUS; } if (currentInfo.updateAll) { synchronized (updateLock) { currentInfo.reset(); } for (int i = 0; i < collectors.length; i++) { collectors[i].refresh(); } } else { // Lock while getting local copies of the caches. Object[] updateItems; Object[] additionItems; Object[] deletionItems; synchronized (updateLock) { currentInfo.processForUpdate(); updateItems = currentInfo.refreshes.toArray(); additionItems = currentInfo.additions.toArray(); deletionItems = currentInfo.deletions.toArray(); currentInfo.reset(); } for (int v = 0; v < collectors.length; v++) { IProgressUpdateCollector collector = collectors[v]; if (updateItems.length > 0) { collector.refresh(updateItems); } if (additionItems.length > 0) { collector.add(additionItems); } if (deletionItems.length > 0) { collector.remove(deletionItems); } } } return Status.OK_STATUS; } @Override protected void canceling() { synchronized (updateScheduled) { updateScheduled.value = false; } } }; updateJob.setSystem(true); updateJob.setPriority(Job.DECORATE); updateJob.setProperty(ProgressManagerUtil.INFRASTRUCTURE_PROPERTY, new Object()); }
/* * (non-Javadoc) * * @see * org.eclipse.ptp.rtsystem.IRuntimeSystem#startup(org.eclipse.core.runtime * .IProgressMonitor) */ public void startup(IProgressMonitor monitor) throws CoreException { SubMonitor subMon = SubMonitor.convert(monitor, 100); synchronized (this) { startupMonitor = subMon; } initialize(); subMon.subTask(Messages.AbstractToolRuntimeSystem_1); DebugUtil.trace( DebugUtil.RTS_TRACING, "RTS {0}: startup", getResourceManager().getConfiguration().getName()); // $NON-NLS-1$ try { remoteServices = PTPRemoteCorePlugin.getDefault() .getRemoteServices( getResourceManager().getControlConfiguration().getRemoteServicesId(), subMon.newChild(10)); if (remoteServices == null) { throw new CoreException( new Status( IStatus.ERROR, RMCorePlugin.PLUGIN_ID, Messages.AbstractToolRuntimeSystem_Exception_NoRemoteServices)); } IRemoteConnectionManager connectionManager = remoteServices.getConnectionManager(); Assert.isNotNull(connectionManager); subMon.worked(10); subMon.subTask(Messages.AbstractToolRuntimeSystem_2); connection = connectionManager.getConnection( getResourceManager().getControlConfiguration().getConnectionName()); if (connection == null) { throw new CoreException( new Status( IStatus.ERROR, RMCorePlugin.PLUGIN_ID, Messages.AbstractToolRuntimeSystem_Exception_NoConnection)); } if (!connection.isOpen()) { try { connection.open(subMon.newChild(50)); } catch (RemoteConnectionException e) { throw new CoreException( new Status(IStatus.ERROR, RMCorePlugin.PLUGIN_ID, e.getMessage())); } } if (subMon.isCanceled()) { connection.close(); return; } try { doStartup(subMon.newChild(40)); } catch (CoreException e) { connection.close(); throw e; } if (subMon.isCanceled()) { connection.close(); return; } /* * Wait for discover job to complete so we can check it's status and * throw an exception if it fails. */ Job discoverJob = createDiscoverJob(); if (discoverJob != null) { /* * Disable error messages being displayed on job's progress * monitor. These are handled by the progress service starting * the RM. */ discoverJob.setProperty( IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY, Boolean.TRUE); discoverJob.schedule(); try { discoverJob.join(); } catch (InterruptedException e) { // Just check result } IStatus status = discoverJob.getResult(); if (!status.isOK()) { throw new CoreException(status); } } if (jobQueueThread == null) { jobQueueThread = new Thread( new JobRunner(), Messages.AbstractToolRuntimeSystem_JobQueueManagerThreadTitle); jobQueueThread.start(); } /* * Register for connection events */ connection.addConnectionChangeListener(fConnectionChangeHandler); fireRuntimeRunningStateEvent(eventFactory.newRuntimeRunningStateEvent()); } finally { synchronized (this) { startupMonitor = null; } if (monitor != null) { monitor.done(); } } }