X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Fimports%2Finternal%2FSCLModuleSelectionDialog.java;h=32a42a47355e2087883e980a8d44a74e68430d32;hp=6eb447b190a1418f46bf37569a6a2b7f296bfba2;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/imports/internal/SCLModuleSelectionDialog.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/imports/internal/SCLModuleSelectionDialog.java index 6eb447b19..32a42a473 100644 --- a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/imports/internal/SCLModuleSelectionDialog.java +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/imports/internal/SCLModuleSelectionDialog.java @@ -1,113 +1,113 @@ -package org.simantics.scl.ui.imports.internal; - -import gnu.trove.procedure.TObjectProcedure; - -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.scl.osgi.SCLOsgi; -import org.simantics.scl.ui.Activator; - -public class SCLModuleSelectionDialog extends FilteredItemsSelectionDialog { - - private static final String SCL_MODULE_SELECTION_DIALOG = "SCL_MODULE_SELECTION_DIALOG"; - - public SCLModuleSelectionDialog(Shell shell) { - super(shell, true); - } - - @Override - protected Control createExtendedContentArea(Composite parent) { - return null; - } - - @Override - protected IDialogSettings getDialogSettings() { - IDialogSettings settings = org.simantics.scl.ui.Activator.getInstance() - .getDialogSettings().getSection(SCL_MODULE_SELECTION_DIALOG); - if (settings == null) - settings = Activator.getInstance() - .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 { - SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure() { - @Override - public boolean execute(String module) { - contentProvider.add(module, itemsFilter); - return true; - } - }); - if(progressMonitor != null) - progressMonitor.done(); - } - - @Override - public String getElementName(Object item) { - return (String)item; - } - -} +package org.simantics.scl.ui.imports.internal; + +import gnu.trove.procedure.TObjectProcedure; + +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.scl.osgi.SCLOsgi; +import org.simantics.scl.ui.Activator; + +public class SCLModuleSelectionDialog extends FilteredItemsSelectionDialog { + + private static final String SCL_MODULE_SELECTION_DIALOG = "SCL_MODULE_SELECTION_DIALOG"; + + public SCLModuleSelectionDialog(Shell shell) { + super(shell, true); + } + + @Override + protected Control createExtendedContentArea(Composite parent) { + return null; + } + + @Override + protected IDialogSettings getDialogSettings() { + IDialogSettings settings = org.simantics.scl.ui.Activator.getInstance() + .getDialogSettings().getSection(SCL_MODULE_SELECTION_DIALOG); + if (settings == null) + settings = Activator.getInstance() + .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 { + SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure() { + @Override + public boolean execute(String module) { + contentProvider.add(module, itemsFilter); + return true; + } + }); + if(progressMonitor != null) + progressMonitor.done(); + } + + @Override + public String getElementName(Object item) { + return (String)item; + } + +}