1 package com.proalpha.pds.gitutils.external;
3 import java.util.ArrayList;
4 import java.util.Arrays;
7 import org.eclipse.core.resources.IProject;
8 import org.eclipse.core.runtime.IProgressMonitor;
9 import org.eclipse.core.runtime.IStatus;
10 import org.eclipse.core.runtime.Status;
11 import org.eclipse.core.runtime.SubMonitor;
12 import org.eclipse.core.runtime.jobs.Job;
13 import org.eclipse.egit.core.internal.util.ProjectUtil;
14 import org.eclipse.egit.ui.JobFamilies;
15 import org.eclipse.jgit.lib.Repository;
16 import org.eclipse.ui.PlatformUI;
18 import com.proalpha.pds.gitutils.mylyn.ActionResult;
19 import com.proalpha.pds.gitutils.mylyn.ActionResultDialog;
20 import com.proalpha.pds.gitutils.mylyn.ReconcileActionSettings;
21 import com.proalpha.pds.paconnector.Activator;
30 @SuppressWarnings(
"restriction")
35 private final Repository repository;
38 super(
"Running database reconcile and update of binaries");
40 this.recoSettings = recoSettings;
41 this.repository = repository;
45 protected IStatus run(IProgressMonitor monitor) {
46 SubMonitor progressMonitor = SubMonitor.convert(monitor,
"checking for relevant updates on current branch...",
50 IProject[] projects = ProjectUtil.getProjects(repository);
51 ArrayList<IProject> openedProjects =
new ArrayList<>(Arrays.asList(projects));
52 SubMonitor subMonitorArtifacts = SubMonitor.convert(monitor,
"database reconcile and artifact update",
55 if (recoSettings.isLoadDf())
56 Activator.
getDefault().getProjectManager().closeProjects(openedProjects, subMonitorArtifacts);
58 operation.setProgressMonitor(progressMonitor);
61 if (recoSettings.isLoadDf())
62 Activator.
getDefault().getProjectManager().openProjects(openedProjects, subMonitorArtifacts);
63 showResultDialog(operation.getActionResults());
64 return Status.OK_STATUS;
69 public boolean belongsTo(Object family) {
70 if (JobFamilies.CHECKOUT.equals(family))
72 return super.belongsTo(family);
75 private void showResultDialog(List<ActionResult> results) {
76 PlatformUI.getWorkbench().getDisplay().asyncExec(
77 () ->
new ActionResultDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), results)
static Activator getDefault()
List< String > getPaUpdateStages()