Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java209
1 files changed, 99 insertions, 110 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java
index 9d446d270..ccaecb392 100644
--- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java
+++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2015 WindRiver Corporation and others.
+ * Copyright (c) 2011, 2017 WindRiver Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -37,7 +37,6 @@ import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager;
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
import org.eclipse.equinox.p2.ui.ProvisioningUI;
import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.*;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.osgi.util.NLS;
@@ -89,7 +88,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
*
*/
final class ImportExportFilteredTree extends FilteredTree {
- ArrayList<Object> checkState = new ArrayList<Object>();
+ ArrayList<Object> checkState = new ArrayList<>();
ImportExportFilteredTree(Composite parent, int treeStyle, PatternFilter filter, boolean useNewLook) {
super(parent, treeStyle, filter, useNewLook);
@@ -106,42 +105,36 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void aboutToRun(IJobChangeEvent event) {
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- Object[] checked = viewer.getCheckedElements();
- if (checkState == null)
- checkState = new ArrayList<Object>(checked.length);
- for (int i = 0; i < checked.length; i++)
- if (!viewer.getGrayed(checked[i]))
- if (!checkState.contains(checked[i]))
- checkState.add(checked[i]);
- }
+ Display.getDefault().syncExec(() -> {
+ Object[] checked = viewer.getCheckedElements();
+ if (checkState == null)
+ checkState = new ArrayList<>(checked.length);
+ for (int i = 0; i < checked.length; i++)
+ if (!viewer.getGrayed(checked[i]))
+ if (!checkState.contains(checked[i]))
+ checkState.add(checked[i]);
});
}
@Override
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
- Display.getDefault().asyncExec(new Runnable() {
-
- public void run() {
- if (viewer == null || viewer.getTree().isDisposed())
- return;
- if (checkState == null)
- return;
-
- viewer.setCheckedElements(new Object[0]);
- viewer.setGrayedElements(new Object[0]);
- // Now we are only going to set the check state of the leaf nodes
- // and rely on our container checked code to update the parents properly.
- Iterator<Object> iter = checkState.iterator();
- while (iter.hasNext()) {
- viewer.setChecked(iter.next(), true);
- }
-
- updatePageCompletion();
+ Display.getDefault().asyncExec(() -> {
+ if (viewer == null || viewer.getTree().isDisposed())
+ return;
+ if (checkState == null)
+ return;
+
+ viewer.setCheckedElements(new Object[0]);
+ viewer.setGrayedElements(new Object[0]);
+ // Now we are only going to set the check state of the leaf nodes
+ // and rely on our container checked code to update the parents properly.
+ Iterator<Object> iter = checkState.iterator();
+ while (iter.hasNext()) {
+ viewer.setChecked(iter.next(), true);
}
+
+ updatePageCompletion();
});
}
}
@@ -228,7 +221,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
static {
BundleContext context = Platform.getBundle(ProvUIActivator.PLUGIN_ID).getBundleContext();
- ServiceTracker<IProvisioningAgent, IProvisioningAgent> tracker = new ServiceTracker<IProvisioningAgent, IProvisioningAgent>(context, IProvisioningAgent.class, null);
+ ServiceTracker<IProvisioningAgent, IProvisioningAgent> tracker = new ServiceTracker<>(context, IProvisioningAgent.class, null);
tracker.open();
agent = tracker.getService();
tracker.close();
@@ -305,6 +298,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
viewer.refresh(false);
}
+ @Override
public void createControl(Composite parent) {
initializeDialogUnits(parent);
// initializeService();
@@ -368,40 +362,37 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
final ITreeContentProvider contentProvider = getContentProvider();
viewer.setContentProvider(contentProvider);
viewer.setLabelProvider(getLabelProvider());
- viewer.addCheckStateListener(new ICheckStateListener() {
-
- public void checkStateChanged(CheckStateChangedEvent event) {
- if (!event.getChecked() && filteredTree.checkState != null) {
- ArrayList<Object> toRemove = new ArrayList<Object>(1);
- // See bug 258117. Ideally we would get check state changes
- // for children when the parent state changed, but we aren't, so
- // we need to remove all children from the additive check state
- // cache.
- if (contentProvider.hasChildren(event.getElement())) {
- Set<Object> unchecked = new HashSet<Object>();
- Object[] children = contentProvider.getChildren(event.getElement());
- for (int i = 0; i < children.length; i++) {
- unchecked.add(children[i]);
- }
- Iterator<Object> iter = filteredTree.checkState.iterator();
- while (iter.hasNext()) {
- Object current = iter.next();
- if (current != null && unchecked.contains(current)) {
- toRemove.add(current);
- }
+ viewer.addCheckStateListener(event -> {
+ if (!event.getChecked() && filteredTree.checkState != null) {
+ ArrayList<Object> toRemove = new ArrayList<>(1);
+ // See bug 258117. Ideally we would get check state changes
+ // for children when the parent state changed, but we aren't, so
+ // we need to remove all children from the additive check state
+ // cache.
+ if (contentProvider.hasChildren(event.getElement())) {
+ Set<Object> unchecked = new HashSet<>();
+ Object[] children = contentProvider.getChildren(event.getElement());
+ for (int i = 0; i < children.length; i++) {
+ unchecked.add(children[i]);
+ }
+ Iterator<Object> iter = filteredTree.checkState.iterator();
+ while (iter.hasNext()) {
+ Object current = iter.next();
+ if (current != null && unchecked.contains(current)) {
+ toRemove.add(current);
}
- } else {
- for (Object element : filteredTree.checkState) {
- if (viewer.getComparer().equals(element, event.getElement())) {
- toRemove.add(element);
- // Do not break out of the loop. We may have duplicate equal
- // elements in the cache. Since the cache is additive, we want
- // to be sure we've gotten everything.
- }
+ }
+ } else {
+ for (Object element : filteredTree.checkState) {
+ if (viewer.getComparer().equals(element, event.getElement())) {
+ toRemove.add(element);
+ // Do not break out of the loop. We may have duplicate equal
+ // elements in the cache. Since the cache is additive, we want
+ // to be sure we've gotten everything.
}
}
- filteredTree.checkState.removeAll(toRemove);
}
+ filteredTree.checkState.removeAll(toRemove);
}
});
parent.addControlListener(new ControlAdapter() {
@@ -452,27 +443,21 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
if (provider != null)
viewer.setCheckStateProvider(provider);
else
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- updatePageCompletion();
- }
- });
+ viewer.addSelectionChangedListener(event -> updatePageCompletion());
viewer.getControl().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
viewer.setInput(getInput());
- viewer.getTree().addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- if (event.item instanceof TreeItem && event.detail == SWT.CHECK) {
- TreeItem treeItem = (TreeItem) event.item;
- IInstallableUnit iu = ProvUI.getAdapter(event.item.getData(), IInstallableUnit.class);
- if (treeItem.getChecked()) {
- selectedUnitsToMigrate.add(iu);
- } else {
- selectedUnitsToMigrate.remove(iu);
- }
+ viewer.getTree().addListener(SWT.Selection, event -> {
+ if (event.item instanceof TreeItem && event.detail == SWT.CHECK) {
+ TreeItem treeItem = (TreeItem) event.item;
+ IInstallableUnit iu = ProvUI.getAdapter(event.item.getData(), IInstallableUnit.class);
+ if (treeItem.getChecked()) {
+ selectedUnitsToMigrate.add(iu);
+ } else {
+ selectedUnitsToMigrate.remove(iu);
}
- updatePageCompletion();
}
+ updatePageCompletion();
});
Composite buttons = new Composite(sashComposite, SWT.NONE);
@@ -522,7 +507,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
private Set<IInstallableUnit> identifyUnitsToBeMigrated() {
- Set<IInstallableUnit> ius = new HashSet<IInstallableUnit>();
+ Set<IInstallableUnit> ius = new HashSet<>();
if (profile != null) {
for (IInstallableUnit iu : unitsToMigrate) {
IQueryResult<IInstallableUnit> collector = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), new NullProgressMonitor());
@@ -556,10 +541,12 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
protected ICheckStateProvider getViewerDefaultState() {
return new ICheckStateProvider() {
+ @Override
public boolean isGrayed(Object element) {
return false;
}
+ @Override
public boolean isChecked(Object element) {
IInstallableUnit iu = ProvUI.getAdapter(element, IInstallableUnit.class);
if (selectedUnitsToMigrate.contains(iu)) {
@@ -610,6 +597,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
}
//TODO remove the implementation of Listener
+ @Override
public void handleEvent(Event event) {
// Widget source = event.widget;
//
@@ -690,7 +678,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
protected Object getInput() {
IUElementListRoot root = new IUElementListRoot(ui);
- List<AvailableIUElement> elements = new ArrayList<AvailableIUElement>(unitsToMigrate.size());
+ List<AvailableIUElement> elements = new ArrayList<>(unitsToMigrate.size());
for (IInstallableUnit unit : unitsToMigrate) {
elements.add(new AvailableIUElement(root, unit, toImportFrom.getProfileId(), false));
}
@@ -756,10 +744,13 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
// Both checkedElements and checkedElementsUpdates and the logic inside the getCheckedIUElements method
// are used to prevent unnecessary call to getUpdates method due to computational cost.
- @SuppressWarnings("rawtypes") private Set checkedElements;
- @SuppressWarnings("rawtypes") private Set checkedElementsUpdates;
+ @SuppressWarnings("rawtypes")
+ private Set checkedElements;
+ @SuppressWarnings("rawtypes")
+ private Set checkedElementsUpdates;
private boolean getUpdatesCanceled;
+ @Override
public Object[] getCheckedIUElements() {
if (isUpdateToLatest()) {
@@ -799,11 +790,13 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
return this.checkedElementsUpdates.toArray();
}
+ @Override
public Object[] getSelectedIUElements() {
// TODO Auto-generated method stub
return null;
}
+ @Override
public void setCheckedElements(Object[] elements) {
new UnsupportedOperationException();
}
@@ -811,40 +804,36 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
// Look for update of the current selected installation units and replace the old ons with the updated version
private Object[] getUpdates(final Object[] _checkedElements) {
- final Collection<IInstallableUnit> toInstall = new ArrayList<IInstallableUnit>();
+ final Collection<IInstallableUnit> toInstall = new ArrayList<>();
try {
- getContainer().run(false, true, new IRunnableWithProgress() {
+ getContainer().run(false, true, monitor -> {
+ SubMonitor sub = SubMonitor.convert(monitor, _checkedElements.length);
+ ProvisioningContext context = new ProvisioningContext(getProvisioningUI().getSession().getProvisioningAgent());
- public void run(IProgressMonitor monitor) {
- SubMonitor sub = SubMonitor.convert(monitor, _checkedElements.length);
- ProvisioningContext context = new ProvisioningContext(getProvisioningUI().getSession().getProvisioningAgent());
+ for (Object iu : _checkedElements) {
- for (Object iu : _checkedElements) {
-
- if (sub.isCanceled()) {
- MigrationPage.this.getUpdatesCanceled = true;
- toInstall.clear();
- sub.done();
- return;
- }
-
- if (iu instanceof AvailableIUElement) {
- IInstallableUnit unit = ((AvailableIUElement) iu).getIU();
- IuUpdateAndPatches updateAndPatches = filterToInstall(unit, updatesFor(unit, context, sub.newChild(1)));
- if (updateAndPatches.update != null) {
- toInstall.add(updateAndPatches.update);
- } else {
- toInstall.add(updateAndPatches.iu); // because it is not yet installed
- toInstall.addAll(updateAndPatches.patches);
- }
+ if (sub.isCanceled()) {
+ MigrationPage.this.getUpdatesCanceled = true;
+ toInstall.clear();
+ sub.done();
+ return;
+ }
+ if (iu instanceof AvailableIUElement) {
+ IInstallableUnit unit = ((AvailableIUElement) iu).getIU();
+ IuUpdateAndPatches updateAndPatches = filterToInstall(unit, updatesFor(unit, context, sub.newChild(1)));
+ if (updateAndPatches.update != null) {
+ toInstall.add(updateAndPatches.update);
+ } else {
+ toInstall.add(updateAndPatches.iu); // because it is not yet installed
+ toInstall.addAll(updateAndPatches.patches);
}
- sub.worked(1);
}
- }
+ sub.worked(1);
+ }
});
} catch (InterruptedException e) {
// Nothing to report if thread was interrupted
@@ -877,7 +866,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
// IPlanner planner = (IPlanner) getProvisioningUI().getSession().getProvisioningAgent().getService(IPlanner.SERVICE_NAME);
// return planner.updatesFor(toUpdate, context, monitor).toSet();
- Map<String, IInstallableUnit> resultsMap = new HashMap<String, IInstallableUnit>();
+ Map<String, IInstallableUnit> resultsMap = new HashMap<>();
SubMonitor sub = SubMonitor.convert(monitor, 1000);
IQueryable<IInstallableUnit> queryable = context.getMetadata(sub.newChild(500));
@@ -900,7 +889,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis
IuUpdateAndPatches(IInstallableUnit iu) {
this.iu = iu;
- this.patches = new ArrayList<IInstallableUnit>();
+ this.patches = new ArrayList<>();
}
}

Back to the top