X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.selection.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fselection%2Fui%2Fhandlers%2FEditElementSelector.java;h=69fcbccdb234b62cdab00e38dd8a0dfecab20067;hb=7d92384ac5455e67e69c02bff9a53e1f0cc256b2;hp=f914d1618ce10adf7ea36243777cd8453bcf304e;hpb=09b78f5c26bb8b521beb6eeeb5c3f44ac1aa4d07;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.selection.ui/src/org/simantics/district/selection/ui/handlers/EditElementSelector.java b/org.simantics.district.selection.ui/src/org/simantics/district/selection/ui/handlers/EditElementSelector.java index f914d161..69fcbccd 100644 --- a/org.simantics.district.selection.ui/src/org/simantics/district/selection/ui/handlers/EditElementSelector.java +++ b/org.simantics.district.selection.ui/src/org/simantics/district/selection/ui/handlers/EditElementSelector.java @@ -1,20 +1,26 @@ package org.simantics.district.selection.ui.handlers; +import java.util.Collection; + import javax.inject.Inject; -import org.eclipse.e4.core.contexts.ContextInjectionFactory; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.core.di.annotations.CanExecute; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.e4.ui.model.application.ui.basic.MPart; +import org.eclipse.e4.ui.services.IServiceConstants; import org.eclipse.e4.ui.workbench.IWorkbench; import org.eclipse.e4.ui.workbench.modeling.EPartService; import org.eclipse.e4.ui.workbench.modeling.ESelectionService; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; +import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; +import org.simantics.district.selection.ElementSelector; +import org.simantics.district.selection.ElementSelector.ExplicitGenerator; import org.simantics.district.selection.ui.parts.EditSelectorDialog; import org.simantics.district.selection.ui.parts.ElementSelectionView; +import org.simantics.utils.ui.AdaptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,6 +46,8 @@ public class EditElementSelector { @Execute public void editElementSelector(IEclipseContext context, IWorkbench workbench) { + Object currentSelection = context.get(IServiceConstants.ACTIVE_SELECTION); + MPart part = partService.getActivePart(); if (part == null) return; @@ -49,8 +57,17 @@ public class EditElementSelector { ElementSelectionView view = (ElementSelectionView)object; + Collection selection; + ElementSelector selectedItem = view.getSelectedItem(); + if (selectedItem.getGenerator() instanceof ExplicitGenerator) { + selection = ((ExplicitGenerator)selectedItem.getGenerator()).elements; + } + else { + selection = AdaptionUtils.adaptToCollection(currentSelection, Resource.class); + } + Shell shell = context.getActive(Shell.class); - EditSelectorDialog dialog = new EditSelectorDialog(shell, view.getSelectedItem()); + EditSelectorDialog dialog = new EditSelectorDialog(shell, selectedItem, selection); LOGGER.debug("Opening dialog"); int result = dialog.open();