Search in sources :

Example 21 with Job

use of org.eclipse.core.runtime.jobs.Job in project tdi-studio-se by Talend.

the class CodeGeneratorService method refreshTemplates.

/*
     * (non-Javadoc)
     * 
     * @see org.talend.designer.codegen.ICodeGeneratorService#refreshTemplates()
     */
@Override
public Job refreshTemplates() {
    Element oldComponent = null;
    IComponentSettingsView viewer = null;
    if (!CommonUIPlugin.isFullyHeadless()) {
        // TDI-25866:In case select a component and sctrl+shift+f3,need clean its componentSetting view
        IWorkbenchWindow wwindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        if (wwindow != null && wwindow.getActivePage() != null) {
            viewer = (IComponentSettingsView) wwindow.getActivePage().findView(IComponentSettingsView.ID);
            if (viewer != null) {
                oldComponent = viewer.getElement();
                viewer.cleanDisplay();
            }
        }
    }
    ComponentCompilations.deleteMarkers();
    ComponentsFactoryProvider.getInstance().resetCache();
    ILibraryManagerService librairesManagerService = (ILibraryManagerService) GlobalServiceRegister.getDefault().getService(ILibraryManagerService.class);
    librairesManagerService.clearCache();
    CorePlugin.getDefault().getLibrariesService().syncLibraries();
    Job job = CodeGeneratorEmittersPoolFactory.initialize();
    // achen modify to record ctrl+shift+f3 is pressed to fix bug 0006107
    IDesignerCoreService designerCoreService = (IDesignerCoreService) GlobalServiceRegister.getDefault().getService(IDesignerCoreService.class);
    designerCoreService.getLastGeneratedJobsDateMap().clear();
    if (oldComponent != null && viewer != null) {
        viewer.setElement(oldComponent);
    }
    if (!CommonUIPlugin.isFullyHeadless()) {
        CorePlugin.getDefault().getDesignerCoreService().synchronizeDesignerUI(new PropertyChangeEvent(this, IComponentConstants.NORMAL, null, null));
    }
    return job;
}
Also used : IComponentSettingsView(org.talend.core.views.IComponentSettingsView) IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) PropertyChangeEvent(java.beans.PropertyChangeEvent) ILibraryManagerService(org.talend.core.ILibraryManagerService) Element(org.talend.core.model.process.Element) IDesignerCoreService(org.talend.designer.core.IDesignerCoreService) Job(org.eclipse.core.runtime.jobs.Job)

Example 22 with Job

use of org.eclipse.core.runtime.jobs.Job in project tdi-studio-se by Talend.

the class CodeGeneratorEmittersPoolFactory method initialize.

public static Job initialize() {
    Job job = new //$NON-NLS-1$
    Job(//$NON-NLS-1$
    Messages.getString("CodeGeneratorEmittersPoolFactory.initMessage")) {

        @Override
        protected IStatus run(IProgressMonitor monitor) {
            synchronized (delegateMonitor) {
                if (jobRunnable == null) {
                    //$NON-NLS-1$
                    jobRunnable = new JobRunnable(Messages.getString("CodeGeneratorEmittersPoolFactory.codeThread"));
                    jobRunnable.start();
                }
            }
            delegateMonitor.addDelegate(monitor);
            while (jobRunnable != null && jobRunnable.isAlive()) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                // do nothing
                }
            }
            delegateMonitor.clearDelegate();
            synchronized (delegateMonitor) {
                jobRunnable = null;
            }
            return status;
        }
    };
    job.setUser(false);
    job.setPriority(Job.LONG);
    job.schedule();
    // start as soon as possible
    job.wakeUp();
    return job;
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Job(org.eclipse.core.runtime.jobs.Job)

Example 23 with Job

use of org.eclipse.core.runtime.jobs.Job in project ACS by ACS-Community.

the class MyStatusBar method getNotified.

@Inject
@Optional
private void getNotified(@UIEventTopic(STATUS_BAR_TOPIC_ID) MessageWithTime msgWithTime) {
    if (slm != null) {
        String flashMsg = msgWithTime.msg;
        int timeSeconds = msgWithTime.timeSeconds;
        slm.setMessage(flashMsg);
        // TODO fix truncation of larger strings, e.g.
        //			slm.getControl().pack(true); ??
        clearFlashJob();
        msgRestoreJob = new Job(MyStatusBar.class.getSimpleName() + "RemoveFlashMessage") {

            @Override
            protected IStatus run(IProgressMonitor monitor) {
                // restore the previous message
                uiSync.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        slm.setMessage(permanentMessage);
                    }
                });
                return Status.OK_STATUS;
            }
        };
        msgRestoreJob.schedule(timeSeconds * 1000);
    }
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) IStatus(org.eclipse.core.runtime.IStatus) Job(org.eclipse.core.runtime.jobs.Job) Inject(javax.inject.Inject) Optional(org.eclipse.e4.core.di.annotations.Optional)

Example 24 with Job

use of org.eclipse.core.runtime.jobs.Job in project cubrid-manager by CUBRID.

the class ApplicationWorkbenchWindowAdvisor method preWindowShellClose.

/**
	 * Performs arbitrary actions as the window's shell is being closed
	 * directly, and possibly veto the close.
	 *
	 * @return <code>true</code> to allow the window to close, and
	 *         <code>false</code> to prevent the window from closing
	 * @see org.eclipse.ui.IWorkbenchWindow#close
	 * @see WorkbenchAdvisor#preShutdown()
	 */
public boolean preWindowShellClose() {
    Shell shell = getWindowConfigurer().getWindow().getShell();
    GeneralPreference.setMaximizeWindowOnStartUp(shell.getMaximized());
    if (timer != null) {
        timer.cancel();
        HeartBeatTaskManager.getInstance().cancel();
    }
    /*Close the information window*/
    InfoWindowManager.dispose();
    /*All opened queryEditor*/
    List<QueryEditorPart> editorPartList = QueryEditorUtil.getAllQueryEditorPart();
    boolean isNeedSaveQueryEditor = isNeedSaveQueryEditor(editorPartList);
    boolean hasJobRunning = false;
    final JobFamily jobFamily = new JobFamily();
    jobFamily.setServerName(JobFamily.ALL_SERVER);
    Job[] jobs = Job.getJobManager().find(jobFamily);
    if (jobs.length > 0) {
        hasJobRunning = true;
    }
    boolean isExit = false;
    if (hasJobRunning) {
        isExit = CommonUITool.openConfirmBox(getWindowConfigurer().getWindow().getShell(), Messages.msgExistConfirmWithJob);
        if (isExit) {
            Display.getDefault().asyncExec(new Runnable() {

                public void run() {
                    try {
                        Job.getJobManager().cancel(jobFamily);
                    } catch (Exception e) {
                        LOGGER.error("Stopping background jobs was failed.", e);
                    }
                }
            });
            if (isNeedSaveQueryEditor) {
                processSaveQueryEditor();
            }
        }
    } else {
        if (isNeedSaveQueryEditor) {
            processSaveQueryEditor();
            return true;
        } else {
            if (GeneralPreference.isAlwaysExit()) {
                return true;
            }
            MessageDialogWithToggle dialog = MessageDialogWithToggle.openOkCancelConfirm(getWindowConfigurer().getWindow().getShell(), com.cubrid.common.ui.common.Messages.titleExitConfirm, Messages.msgExistConfirm, com.cubrid.common.ui.common.Messages.msgToggleExitConfirm, false, CommonUIPlugin.getDefault().getPreferenceStore(), GeneralPreference.IS_ALWAYS_EXIT);
            isExit = dialog.getReturnCode() == 0 ? true : false;
        }
    }
    if (isExit) {
        for (List<IEditorReference> list : perspectiveEditorMap.values()) {
            IEditorReference[] references = new IEditorReference[list.size()];
            list.toArray(references);
            getWindowConfigurer().getWindow().getActivePage().closeEditors(references, false);
        }
    }
    return isExit;
}
Also used : JobFamily(com.cubrid.common.ui.spi.progress.JobFamily) Shell(org.eclipse.swt.widgets.Shell) QueryEditorPart(com.cubrid.common.ui.query.editor.QueryEditorPart) IEditorReference(org.eclipse.ui.IEditorReference) MessageDialogWithToggle(org.eclipse.jface.dialogs.MessageDialogWithToggle) Job(org.eclipse.core.runtime.jobs.Job)

Example 25 with Job

use of org.eclipse.core.runtime.jobs.Job in project cubrid-manager by CUBRID.

the class CubridNavigatorView method showQuickView.

public void showQuickView(final DatabaseInfo databaseInfo, final String schemaName, final boolean isTable) {
    final CubridColumnNavigatorView columnNav = CubridColumnNavigatorView.getInstance();
    final CubridDdlNavigatorView ddlNav = CubridDdlNavigatorView.getInstance();
    final CubridIndexNavigatorView indexNav = CubridIndexNavigatorView.getInstance();
    if (databaseInfo == null || schemaName == null) {
        if (columnNav != null) {
            columnNav.cleanView();
        }
        if (indexNav != null) {
            indexNav.cleanView();
        }
        if (ddlNav != null) {
            ddlNav.cleanView();
        }
    } else {
        Job job = new Job("Getting the schema data...") {

            protected IStatus run(IProgressMonitor monitor) {
                currentSchemaInfo = databaseInfo.getSchemaInfo(schemaName);
                GetSchemaDDLTask task = new GetSchemaDDLTask(databaseInfo, schemaName, isTable, monitor);
                task.execute();
                if (task.isSuccess()) {
                    currentSchemaDDL = task.getCreateDDL();
                }
                Display.getDefault().syncExec(new Runnable() {

                    public void run() {
                        if (columnNav != null) {
                            columnNav.updateView(databaseInfo, currentSchemaInfo);
                        }
                        if (indexNav != null) {
                            indexNav.updateView(currentSchemaInfo);
                        }
                        if (ddlNav != null) {
                            ddlNav.updateView(currentSchemaDDL == null ? "" : currentSchemaDDL);
                        }
                    }
                });
                return Status.OK_STATUS;
            }
        };
        job.schedule();
    }
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Job(org.eclipse.core.runtime.jobs.Job)

Aggregations

Job (org.eclipse.core.runtime.jobs.Job)177 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)134 IStatus (org.eclipse.core.runtime.IStatus)33 IOException (java.io.IOException)27 File (java.io.File)20 Status (org.eclipse.core.runtime.Status)20 IJobChangeEvent (org.eclipse.core.runtime.jobs.IJobChangeEvent)20 JobChangeAdapter (org.eclipse.core.runtime.jobs.JobChangeAdapter)20 CoreException (org.eclipse.core.runtime.CoreException)17 IDockerConnection (org.eclipse.linuxtools.docker.core.IDockerConnection)17 JobFamily (com.cubrid.common.ui.spi.progress.JobFamily)14 DockerException (org.eclipse.linuxtools.docker.core.DockerException)14 IFile (org.eclipse.core.resources.IFile)13 URL (java.net.URL)11 ArrayList (java.util.ArrayList)11 IPath (org.eclipse.core.runtime.IPath)10 OperationCanceledException (org.eclipse.core.runtime.OperationCanceledException)9 IWorkbenchPart (org.eclipse.ui.IWorkbenchPart)9 DockerConnection (org.eclipse.linuxtools.internal.docker.core.DockerConnection)8 Display (org.eclipse.swt.widgets.Display)8