GitTraceLocation.REPOSITORIESVIEW.getLocation(),
"Pending refresh job, returning"); //$NON-NLS-1$
return scheduledJob;
}
final CommonViewer tv = getCommonViewer();
final boolean needsNewInput = lastInputChange > lastInputUpdate;
if (trace)
GitTraceLocation.getTrace().trace(
GitTraceLocation.REPOSITORIESVIEW.getLocation(),
"New input required: " + needsNewInput); //$NON-NLS-1$
Job job = new Job("Refreshing Git Repositories view") { //$NON-NLS-1$
@Override
protected IStatus run(IProgressMonitor monitor) {
boolean actTrace = GitTraceLocation.REPOSITORIESVIEW.isActive();
if (actTrace)
GitTraceLocation.getTrace().trace(
GitTraceLocation.REPOSITORIESVIEW.getLocation(),
"Running the update"); //$NON-NLS-1$
lastInputUpdate = System.currentTimeMillis();
if (needsNewInput)
initRepositoriesAndListeners();
if (!UIUtils.isUsable(tv))
return Status.CANCEL_STATUS;
PlatformUI.getWorkbench().getDisplay()
.asyncExec(new Runnable() {
public void run() {
if (!UIUtils.isUsable(tv))
return;
long start = 0;
boolean traceActive = GitTraceLocation.REPOSITORIESVIEW
.isActive();
if (traceActive) {
start = System.currentTimeMillis();
GitTraceLocation.getTrace().trace(
GitTraceLocation.REPOSITORIESVIEW
.getLocation(),
"Starting async update job"); //$NON-NLS-1$
}
if (needsNewInput) {
// keep expansion state and selection so that we can
// restore the tree
// after update
Object[] expanded = tv.getExpandedElements();
tv.setInput(ResourcesPlugin.getWorkspace()
.getRoot());
tv.setExpandedElements(expanded);
} else
tv.refresh(true);
IViewPart part = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage()
.findView(IPageLayout.ID_PROP_SHEET);
if (part instanceof PropertySheet) {