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;
}
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;
}
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);
}
}
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;
}
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();
}
}
Aggregations