X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2Fscl%2Fimports%2FModuleSelectionDialog.java;fp=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2Fscl%2Fimports%2FModuleSelectionDialog.java;h=8d07d60b1bb111ab1fbd96619e4b3eedc84a84d3;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=2ef16b1e1db23e1dc96d472c6d8da22e7a36aceb;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/imports/ModuleSelectionDialog.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/imports/ModuleSelectionDialog.java index 2ef16b1e1..8d07d60b1 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/imports/ModuleSelectionDialog.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/scl/imports/ModuleSelectionDialog.java @@ -1,122 +1,122 @@ -package org.simantics.modeling.ui.scl.imports; - -import java.util.Collection; -import java.util.Comparator; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog; -import org.eclipse.ui.dialogs.SearchPattern; -import org.simantics.Simantics; -import org.simantics.db.common.procedure.adapter.TransientCacheListener; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.request.Read; -import org.simantics.modeling.ui.Activator; -import org.simantics.utils.ui.dialogs.ShowError; - -public class ModuleSelectionDialog extends FilteredItemsSelectionDialog { - - private static final String SCL_MODULE_SELECTION_DIALOG = "SCL_MODULE_SELECTION_DIALOG"; - - Read> query; - - public ModuleSelectionDialog(Shell shell, Read> query) { - super(shell, true); - this.query = query; - } - - @Override - protected Control createExtendedContentArea(Composite parent) { - return null; - } - - @Override - protected IDialogSettings getDialogSettings() { - IDialogSettings settings = Activator.getDefault() - .getDialogSettings().getSection(SCL_MODULE_SELECTION_DIALOG); - if (settings == null) - settings = Activator.getDefault() - .getDialogSettings().addNewSection(SCL_MODULE_SELECTION_DIALOG); - return settings; - } - - @Override - protected IStatus validateItem(Object item) { - return Status.OK_STATUS; - } - - @Override - protected ItemsFilter createFilter() { - return new ItemsFilter() { - { - String patternText = getPattern(); - patternMatcher = new SearchPattern(); - if(patternText != null && patternText.length() > 0) - patternMatcher.setPattern(patternText); - else - patternMatcher.setPattern("*"); - } - - @Override - public boolean matchItem(Object item) { - if(getPattern().indexOf('/') > 0) - return matches((String)item); - else { - for(String part : ((String)item).split("/")) - if(matches(part)) - return true; - return false; - } - } - - @Override - public boolean isConsistentItem(Object item) { - return true; - } - - }; - } - - Comparator comparator = new Comparator() { - @Override - public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }; - - @SuppressWarnings("rawtypes") - @Override - protected Comparator getItemsComparator() { - return comparator; - } - - @Override - protected void fillContentProvider(final AbstractContentProvider contentProvider, - final ItemsFilter itemsFilter, IProgressMonitor progressMonitor) - throws CoreException { - try { - for(String module : Simantics.getSession().syncRequest(query, - TransientCacheListener.>instance())) - contentProvider.add(module, itemsFilter); - } catch (DatabaseException e) { - ShowError.showError("Failed to find modules", - "Exception was thrown during search for modules", e); - close(); - } - - if(progressMonitor != null) - progressMonitor.done(); - } - - @Override - public String getElementName(Object item) { - return (String)item; - } - -} +package org.simantics.modeling.ui.scl.imports; + +import java.util.Collection; +import java.util.Comparator; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.dialogs.IDialogSettings; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog; +import org.eclipse.ui.dialogs.SearchPattern; +import org.simantics.Simantics; +import org.simantics.db.common.procedure.adapter.TransientCacheListener; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.request.Read; +import org.simantics.modeling.ui.Activator; +import org.simantics.utils.ui.dialogs.ShowError; + +public class ModuleSelectionDialog extends FilteredItemsSelectionDialog { + + private static final String SCL_MODULE_SELECTION_DIALOG = "SCL_MODULE_SELECTION_DIALOG"; + + Read> query; + + public ModuleSelectionDialog(Shell shell, Read> query) { + super(shell, true); + this.query = query; + } + + @Override + protected Control createExtendedContentArea(Composite parent) { + return null; + } + + @Override + protected IDialogSettings getDialogSettings() { + IDialogSettings settings = Activator.getDefault() + .getDialogSettings().getSection(SCL_MODULE_SELECTION_DIALOG); + if (settings == null) + settings = Activator.getDefault() + .getDialogSettings().addNewSection(SCL_MODULE_SELECTION_DIALOG); + return settings; + } + + @Override + protected IStatus validateItem(Object item) { + return Status.OK_STATUS; + } + + @Override + protected ItemsFilter createFilter() { + return new ItemsFilter() { + { + String patternText = getPattern(); + patternMatcher = new SearchPattern(); + if(patternText != null && patternText.length() > 0) + patternMatcher.setPattern(patternText); + else + patternMatcher.setPattern("*"); + } + + @Override + public boolean matchItem(Object item) { + if(getPattern().indexOf('/') > 0) + return matches((String)item); + else { + for(String part : ((String)item).split("/")) + if(matches(part)) + return true; + return false; + } + } + + @Override + public boolean isConsistentItem(Object item) { + return true; + } + + }; + } + + Comparator comparator = new Comparator() { + @Override + public int compare(String o1, String o2) { + return o1.compareTo(o2); + } + }; + + @SuppressWarnings("rawtypes") + @Override + protected Comparator getItemsComparator() { + return comparator; + } + + @Override + protected void fillContentProvider(final AbstractContentProvider contentProvider, + final ItemsFilter itemsFilter, IProgressMonitor progressMonitor) + throws CoreException { + try { + for(String module : Simantics.getSession().syncRequest(query, + TransientCacheListener.>instance())) + contentProvider.add(module, itemsFilter); + } catch (DatabaseException e) { + ShowError.showError("Failed to find modules", + "Exception was thrown during search for modules", e); + close(); + } + + if(progressMonitor != null) + progressMonitor.done(); + } + + @Override + public String getElementName(Object item) { + return (String)item; + } + +}